Khóa luận tốt nghiệp công nghệ thông tin nghiên cứu giải pháp container hoá và kubernetes ứng dụng triển khai vận hành và giám sát phần mềm tại công ty cổ phần công nghệ proton

Khóa luận nghiên cứu giải pháp container hóa và Kubernetes trong triển khai, vận hành, giám sát phần mềm tại công ty cổ phần công nghệ Proton.

Trường đại học

Học viện Ngân hàng

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

91
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

NHẬN XÉT CỦA GVHD

DANH MỤC TỪ VIẾT TẮT

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG BIỂU

LỜI MỞ ĐẦU

0.1. Lý do chọn đề tài

0.2. Mục đích nghiên cứu

0.3. Đối tượng và phạm vi nghiên cứu

0.4. Phương pháp nghiên cứu

0.5. Bố cục đề tài

1. CHƯƠNG 1: TỔNG QUAN VỀ TRIỂN KHAI, VẬN HÀNH VÀ GIÁM SÁT PHẦN MỀM

1.1. Giới thiệu về triển khai, vận hành và giám sát phần mềm

1.2. Phát triển phần mềm

1.2.1. Khái niệm phát triển phần mềm

1.2.2. Quy trình phát triển

1.2.3. Phương pháp phát triển phần mềm

1.3. Triển khai phần mềm

1.4. So sánh giải pháp Container hóa và Ảo hóa

1.5. Vận hành và giám sát phần mềm

1.5.1. Quá trình vận hành và giám sát phần mềm

1.5.2. Tầm quan trọng của quá trình vận hành và giám sát phần mềm

2. CHƯƠNG II: THỰC TRẠNG TRIỂN KHAI, VẬN HÀNH VÀ GIÁM SÁT PHẦN MỀM CỦA CÔNG TY CỔ PHẦN CÔNG NGHỆ PROTON VÀ ĐỀ XUẤT GIẢI PHÁP

2.1. Thực trạng quy trình triển khai, vận hành và giám sát phần mềm của công ty cổ phần Công nghệ Proton. Đề xuất phương hướng giải quyết

2.2. Nền tảng Kubernetes

3. CHƯƠNG III: ỨNG DỤNG GIẢI PHÁP CONTAINER HÓA, SỬ DỤNG KUBERNETES TRONG QUY TRÌNH PHÁT TRIỂN VÀ VẬN HÀNH PHẦN MỀM TẠI CÔNG TY CỔ PHẦN CÔNG NGHỆ PROTON

3.1. Xây dựng hệ thống CI/CD cho dự án phát triển hệ thống quản lý sân bóng sử dụng Docker và Kubernetes

3.1.1. Tổng quan về CI/CD

3.1.2. Giới thiệu về các công cụ hỗ trợ

3.1.3. Triển khai trên hệ thống quản lý sân bóng

3.1.3.1. Tổng quan về hệ thống quản lý sân bóng
3.1.3.2. Luồng hoạt động của quy trình CI/CD

3.2. Giám sát trạng thái hoạt động của ứng dụng và toàn bộ hệ thống đang triển khai cho khách hàng

3.2.1. Giới thiệu công cụ hỗ trợ

3.2.2. Chi tiết một số metric cơ bản và quan trọng cần phải theo dõi khi vận hành ứng dụng

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Container hóa và Kubernetes trong triển khai phần mềm

Container hóa và Kubernetes đã trở thành những công nghệ chủ chốt trong việc triển khai phần mềm hiện đại. Container hóa cho phép đóng gói ứng dụng và tất cả các phụ thuộc của nó vào một đơn vị độc lập, giúp dễ dàng triển khai và quản lý. Kubernetes, một hệ thống quản lý container, cung cấp khả năng tự động hóa việc triển khai, mở rộng và quản lý ứng dụng container. Việc áp dụng hai công nghệ này không chỉ giúp tăng cường hiệu suất mà còn cải thiện tính linh hoạt và khả năng mở rộng của hệ thống.

1.1. Khái niệm về Container hóa và lợi ích của nó

Container hóa là một phương pháp ảo hóa ở mức hệ điều hành, cho phép chạy nhiều ứng dụng trên cùng một máy chủ mà không cần máy ảo. Lợi ích chính bao gồm tiết kiệm tài nguyên, tăng tốc độ triển khai và khả năng di động cao giữa các môi trường khác nhau.

1.2. Giới thiệu về Kubernetes và vai trò của nó

Kubernetes là một nền tảng mã nguồn mở giúp quản lý container. Nó tự động hóa việc triển khai, mở rộng và quản lý ứng dụng container, giúp giảm thiểu sự can thiệp thủ công và tăng cường tính ổn định của hệ thống.

II. Thách thức trong triển khai phần mềm tại Công ty ProtonTech

Công ty ProtonTech đang đối mặt với nhiều thách thức trong việc triển khai phần mềm. Các vấn đề như thời gian triển khai lâu, khó khăn trong việc quản lý và giám sát ứng dụng, cũng như sự phức tạp trong việc duy trì tính bảo mật là những yếu tố cần được giải quyết. Việc không áp dụng công nghệ hiện đại có thể dẫn đến việc giảm uy tín và khả năng cạnh tranh của công ty.

2.1. Vấn đề về thời gian triển khai và hiệu suất

Thời gian triển khai lâu có thể làm giảm sự hài lòng của khách hàng và ảnh hưởng đến doanh thu. Việc không tối ưu hóa quy trình triển khai dẫn đến việc sản phẩm không được đưa ra thị trường kịp thời.

2.2. Khó khăn trong quản lý và giám sát ứng dụng

Quản lý và giám sát ứng dụng trở nên phức tạp khi số lượng ứng dụng tăng lên. Việc thiếu công cụ hỗ trợ có thể dẫn đến việc không phát hiện kịp thời các sự cố và lỗi trong hệ thống.

III. Giải pháp Container hóa và Kubernetes cho ProtonTech

Để giải quyết các thách thức hiện tại, việc áp dụng giải pháp Container hóa và Kubernetes là cần thiết. Giải pháp này không chỉ giúp tối ưu hóa quy trình triển khai mà còn cải thiện khả năng quản lý và giám sát ứng dụng. Việc sử dụng Kubernetes sẽ giúp tự động hóa nhiều quy trình, từ đó giảm thiểu sai sót và tăng cường hiệu suất.

3.1. Lợi ích của việc áp dụng Container hóa

Container hóa giúp giảm thiểu sự phụ thuộc vào môi trường, cho phép ứng dụng chạy nhất quán trên nhiều nền tảng khác nhau. Điều này giúp tăng cường tính linh hoạt và khả năng mở rộng của hệ thống.

3.2. Tích hợp Kubernetes vào quy trình phát triển

Kubernetes cung cấp các tính năng như tự động mở rộng, cân bằng tải và phục hồi tự động, giúp cải thiện tính ổn định và khả năng phục hồi của ứng dụng. Việc tích hợp Kubernetes vào quy trình phát triển sẽ giúp giảm thiểu thời gian triển khai và nâng cao hiệu suất.

IV. Ứng dụng thực tiễn của Container hóa và Kubernetes tại ProtonTech

Việc áp dụng Container hóa và Kubernetes tại ProtonTech đã mang lại nhiều kết quả tích cực. Các ứng dụng được triển khai nhanh chóng hơn, khả năng quản lý và giám sát được cải thiện rõ rệt. Điều này không chỉ giúp tăng cường hiệu suất mà còn nâng cao sự hài lòng của khách hàng.

4.1. Kết quả triển khai ứng dụng Container hóa

Sau khi triển khai giải pháp Container hóa, thời gian triển khai ứng dụng đã giảm đáng kể. Điều này giúp công ty đáp ứng nhanh chóng hơn với nhu cầu của khách hàng và thị trường.

4.2. Cải thiện quản lý và giám sát ứng dụng

Sử dụng Kubernetes đã giúp cải thiện khả năng giám sát ứng dụng. Các công cụ giám sát tích hợp cho phép phát hiện và xử lý sự cố kịp thời, từ đó nâng cao tính ổn định của hệ thống.

V. Kết luận và tương lai của Container hóa và Kubernetes tại ProtonTech

Container hóa và Kubernetes sẽ tiếp tục đóng vai trò quan trọng trong việc triển khai phần mềm tại ProtonTech. Việc áp dụng các công nghệ này không chỉ giúp cải thiện quy trình hiện tại mà còn mở ra nhiều cơ hội mới cho sự phát triển trong tương lai. Công ty cần tiếp tục đầu tư vào công nghệ và đào tạo nhân lực để duy trì lợi thế cạnh tranh.

5.1. Tương lai của Container hóa tại ProtonTech

Container hóa sẽ tiếp tục được mở rộng và áp dụng cho nhiều dự án khác nhau, giúp tối ưu hóa quy trình phát triển và triển khai phần mềm.

5.2. Đầu tư vào công nghệ và nhân lực

Để duy trì lợi thế cạnh tranh, ProtonTech cần đầu tư vào công nghệ mới và đào tạo nhân lực có kỹ năng trong việc quản lý và triển khai các giải pháp Container hóa và Kubernetes.

09/07/2025
Khóa luận tốt nghiệp công nghệ thông tin nghiên cứu giải pháp container hoá và kubernetes ứng dụng triển khai vận hành và giám sát phần mềm tại công ty cổ phần công nghệ proton

Trích đoạn nội dung tài liệu

Chương 1 cung cấp một cái nhìn toàn diện về lý thuyết phát triển, triển khai và vận hành phần mềm, đặc biệt tập trung vào các kỹ thuật và quy trình được áp dụng trong lĩnh vực này, đặc biệt nhấn mạnh vào hai công nghệ mới nhất hiện nay là ảo hóa và container hóa. Bên cạnh đó, chương này cũng nhấn mạnh đến sự quan trọng của việc vận hành và giám sát phần mềm. Giới thiệu về triển khai, vận hành và giám sát phần mềm Trong ngành kỹ thuật phần mềm việc triển khai, vận hành và giám sát là ba giai đoạn quan trọng trong vòng đời của phần mềm. Ba giai đoạn này đóng vai trò thiết yếu trong việc đảm bảo phần mềm hoạt động hiệu quả, đáp ứng nhu cầu của người dùng và mang lại lợi ích cho doanh nghiệp.1: Ba giai đoạn quan trọng trong vòng đời của phần mềm (Nguồn: Tác giả) Giai đoạn triển khai là giai đoạn đầu tiên trong vòng đời của phần mềm.

Nó đảm bảo rằng phần mềm được triển khai một cách hiệu quả và an toàn. Quá trình này bao gồm cài đặt phần mềm và cấu hình hệ thống phù hợp. Sự triển khai hiệu quả đảm bảo rằng phần mềm được chạy đúng cách, đáp ứng đúng nhu cầu của người dùng. Ngoài ra, việc đảm bảo an toàn trong quá trình triển khai giúp tránh các vấn đề bảo mật và mất dữ liệu.

Tiếp theo là giai đoạn vận hành nơi diễn ra sự quản lý liên tục. Trong giai đoạn này, hệ thống phần mềm được duy trì để đảm bảo hoạt động ổn định và đáng tin cậy. Việc theo dõi, kiểm tra định kỳ giúp phát hiện sự cố và lỗi, từ đó đưa ra biện pháp khắc phục kịp thời. Bằng cách duy trì hệ thống phần mềm một cách cẩn thận, các vấn đề tiềm ẩn có thể được giải quyết trước khi chúng gây ảnh hưởng xấu đến người dùng và doanh nghiệp.

Cuối cùng, giai đoạn giám sát là quá trình theo dõi và đánh giá hiệu suất của ứng dụng. Bằng cách thu thập và phân tích dữ liệu, ta có thể đánh giá hiệu suất của hệ thống và Lê Thị Hoài Phương - K23HTTTB 11 Khóa luận tôt nghiệp Nghiên cứu giải pháp Container hóa và Kubernetes, ứng dụng Khóa luận tốt nghiệp triển khai, vận hành và giám sát phần mềm tại CTCP ProtonTech xác định các điểm yếu. Giám sát cung cấp thông tin cần thiết để điều chỉnh nhằm tối ưu hóa hệ thống, từ việc tăng cường khả năng chịu tải đến cải thiện thời gian phản hồi. Ngoài ra, giám sát cũng giúp phát hiện sự cố sớm và đảm bảo rằng hệ thống hoạt động trong điều kiện tối ưu, từ đó đảm bảo sự hài lòng của người dùng và hiệu quả kinh doanh của doanh nghiệp.

Có thể thấy cả ba giai đoạn triển khai, vận hành và giám sát đóng vai trò quan trọng trong vòng đời của phần mềm. Chúng đảm bảo rằng phần mềm hoạt động hiệu quả, duy trì sự ổn định và được điều chỉnh để đáp ứng nhu cầu người dùng, lợi ích của doanh nghiệp. Việc chú trọng vào ba giai đoạn này đóng vai trò cấp thiết trong việc xây dựng và duy trì các hệ thống phần mềm hoạt động thành công. Phát triển phần mềm 1.

Khái niệm phát triển phần mềm Theo IBM (International Business Machines) – Tập đoàn công nghệ máy tính đa quốc gia của Mỹ định nghĩa: “Phát triển phần mềm là tập hợp các hoạt động khoa học máy tính dành riêng cho quá trình tạo ra, thiết kế, triển khai và hỗ trợ phần mềm”. Phần mềm là tập hợp các câu lệnh hướng dẫn, dữ liệu hoặc chương trình được sử dụng để vận hành máy tính và thực hiện các tác vụ cụ thể. Tất cả phần mềm đều cung cấp chỉ dẫn, dữ liệu mà máy tính cần để hoạt động và đáp ứng nhu cầu của người dùng. Trong phần mềm có hai loại khác nhau rõ rệt về cách thức hoạt động là phần mềm ứng dụng và phần mềm hệ thống: Phần mềm hệ thống quản lý và kiểm soát các thành phần phần cứng của máy tính như Windows, Linux, Unix, trình điều khiển (driver), phần sụn (firmware) và BIOS, bao gồm hệ điều hành và các công cụ quản lý tài nguyên, nhằm cung cấp nền tảng cho hoạt động của các ứng dụng.

Mục tiêu chính của phần mềm này là quản lý hiệu quả các tài nguyên của hệ thống. Phần mềm ứng dụng cho phép người dùng thực hiện nhiều loại tác vụ khác nhau, từ công việc văn phòng, quản lý dữ liệu, đến các ứng dụng trên web và điện thoại di động cho mục đích mua sắm, giao tiếp, và chia sẻ hình ảnh trên nhiều nền tảng. Các phần mềm này bao gồm cả những sản phẩm được tạo ra theo yêu cầu riêng biệt, phù hợp với nhu cầu cụ thể của cá nhân hoặc tổ chức. Ngoài ra, một số phần mềm được phát triển dựa trên nhu cầu chung của đông đảo người dùng, chẳng hạn như các ứng dụng soạn thảo văn bản (ví dụ: Microsoft Office, OpenOffice), các công cụ bảng tính, phần mềm thiết kế đồ họa (như AutoCad), hay các ứng dụng nghe nhạc và xem phim từ đĩa CD (như Jet Audio hay Mpeg Player).

Lê Thị Hoài Phương - K23HTTTB 12 Khóa luận tôt nghiệp Nghiên cứu giải pháp Container hóa và Kubernetes, ứng dụng Khóa luận tốt nghiệp triển khai, vận hành và giám sát phần mềm tại CTCP ProtonTech Hình 1.2: Cấu trúc hoàn chỉnh của một gói phần mềm đầy đủ (Nguồn: TechTarget) Ngoài các phần mềm ứng dụng, có nhiều loại phần mềm khác như phần mềm lập trình, cung cấp những công cụ thiết yếu cho các nhà phát triển phần mềm; phần mềm trung gian, đóng vai trò là cầu nối giữa phần mềm hệ thống và các ứng dụng; và phần mềm điều khiển, quản lý hoạt động của máy tính và các thiết bị ngoại vi. Quy trình phát triển phần mềm liên kết các loại phần mềm này với nhau, tạo thành một hệ thống liền mạch nhằm tối ưu hóa hoạt động và nâng cao năng suất trong quản lý dự án phần mềm. Quy trình phát triển Quy trình phát triển phần mềm (SDLC - Software Development Life Cycle) bao gồm một tập hợp các hoạt động hữu hạn được sử dụng để phát triển sản phẩm phần mềm. (2000), SDLC chứa một kế hoạch hoàn chỉnh để mô tả cách thiết kế, phát triển, bảo trì và tăng hiệu quả của sản phẩm.

Quá trình SDLC mô tả các Lê Thị Hoài Phương - K23HTTTB 13 Khóa luận tôt nghiệp Nghiên cứu giải pháp Container hóa và Kubernetes, ứng dụng Khóa luận tốt nghiệp triển khai, vận hành và giám sát phần mềm tại CTCP ProtonTech phương pháp cải thiện chất lượng phần mềm tổng thể và quy trình phát triển. Hình dưới đây cho thấy các giai đoạn khác nhau của vòng đời phát triển phần mềm điển hình.3: Sơ đồ quy trình phát triển phần mềm - SDLC (Nguồn: Shylesh S (2017). A Study of Software Development Life Cycle Process Models) Planning (Thu thập yêu cầu và phân tích): Xác định, hiểu rõ nhu cầu, yêu cầu của khách hàng và người dùng cuối. Defining (Thiết kế): Xây dựng bản thiết kế chi tiết dựa trên yêu cầu đã thu thập, bao gồm cả thiết kế hệ thống và thiết kế chi tiết của các phần mềm cụ thể.

Designing (Phát triển): Tiến hành viết mã và triển khai các tính năng và chức năng theo thiết kế đã được xác định. Testing (Kiểm thử): Thực hiện các bài kiểm tra để đảm bảo rằng phần mềm đáp ứng được yêu cầu và hoạt động một cách đúng đắn. Building (Triển khai và vận hành): Phát hành phần mềm cho người dùng cuối và duy trì hoạt động của nó trên môi trường sản xuất. Bảo trì và hỗ trợ: Tiếp tục cung cấp sửa chữa, nâng cấp và hỗ trợ cho phần mềm sau khi đã triển khai, đồng thời cải thiện tính ổn định và hiệu suất của nó.

Phương pháp phát triển phần mềm Phương pháp phát triển phần mềm cung cấp một khuôn khổ quy trình cho các kỹ sư phần mềm để họ có thể tạo ra các ứng dụng đáp ứng yêu cầu của người dùng và giảm nguy cơ thất bại trong dự án. Nó bao gồm một loạt các vai trò, quy tắc và phương thức làm việc đã được chấp nhận rộng rãi về cách phát triển và xây dựng ứng dụng. Bài luận này tập trung vào ba phương pháp phát triển phần mềm rất phổ biến: phương pháp Waterfall, mô hình xoắn ốc và phương pháp Agile. Lê Thị Hoài Phương - K23HTTTB 14 Khóa luận tôt nghiệp Nghiên cứu giải pháp Container hóa và Kubernetes, ứng dụng Khóa luận tốt nghiệp triển khai, vận hành và giám sát phần mềm tại CTCP ProtonTech Phương pháp Waterfall Waterfall còn được gọi là mô hình vòng tuần hoàn dạng vòng lặp.

Mô hình này là mô hình quy trình tuần tự, không chồng chéo, giai đoạn này chưa hoàn thành thì giai đoạn tiếp theo không thể bắt đầu.4: Mô hình thác nước Ưu điểm: ● Dễ hiểu và dễ quản lý: Mô hình thác nước rất dễ hiểu và dễ quản lý vì nó có cấu trúc rõ ràng và các giai đoạn được xác định rõ ràng. ● Dễ dàng theo dõi tiến độ: Việc theo dõi tiến độ dự án trong mô hình thác nước rất dễ dàng vì mỗi giai đoạn có một mốc thời gian cụ thể. ● Dễ dàng dự đoán chi phí: Việc dự đoán chi phí cho dự án sử dụng mô hình thác nước cũng dễ dàng hơn so với các mô hình khác vì các yêu cầu được xác định rõ ràng ngay từ đầu. ● Phù hợp với các dự án nhỏ và đơn giản: Mô hình thác nước phù hợp với các dự án nhỏ và đơn giản có yêu cầu được xác định rõ ràng.

Nhược điểm: ● Thiếu tính linh hoạt: Mô hình thác nước thiếu tính linh hoạt vì không thể quay lại các giai đoạn trước để sửa lỗi hoặc thay đổi yêu cầu. ● Khó khăn trong việc phát hiện lỗi sớm: Việc phát hiện lỗi trong mô hình thác nước có thể khó khăn vì các giai đoạn kiểm thử được thực hiện sau khi các giai đoạn phát triển hoàn thành. ● Rủi ro cao: Mô hình thác nước có rủi ro cao vì nếu có lỗi xảy ra trong giai đoạn đầu, nó có thể ảnh hưởng đến toàn bộ dự án. Lê Thị Hoài Phương - K23HTTTB 15 Khóa luận tôt nghiệp Nghiên cứu giải pháp Container hóa và Kubernetes, ứng dụng Khóa luận tốt nghiệp triển khai, vận hành và giám sát phần mềm tại CTCP ProtonTech ● Không phù hợp với các dự án lớn và phức tạp: Mô hình thác nước không phù hợp với các dự án lớn và phức tạp.

Áp dụng  Dự án có quy mô trung bình hoặc nhỏ với các yêu cầu cụ thể và ổn định.  Dự án đòi hỏi sự kiểm soát nghiêm ngặt và ngân sách có thể tiên đoán được.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ