
Xây dựng giải pháp tích hợp và triển khai liên tục cho ứng dụng Microservices
lượt xem 1
download

Nghiên cứu này đề xuất một giải pháp tích hợp và triển khai liên tục (CI/CD) cho ứng dụng Microservices, nhằm tăng cường hiệu quả và độ tin cậy trong quá trình phát triển phần mềm. Phương pháp tập trung vào việc xây dựng các pipeline tự động hóa từ việc tích hợp mã nguồn đến triển khai ứng dụng lên môi trường sản xuất.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Xây dựng giải pháp tích hợp và triển khai liên tục cho ứng dụng Microservices
- Tuyển tập Hội nghị Khoa học thường niên năm 2024. ISBN: 978-604-82-8175-5 XÂY DỰNG GIẢI PHÁP TÍCH HỢP VÀ TRIỂN KHAI LIÊN TỤC CHO ỨNG DỤNG MICROSERVICES Đỗ Trường Xuân, Phạm Thanh Bình Trường Đại học Thủy lợi, email: {xuandt, binhpt}@tlu.edu.vn 1. GIỚI THIỆU CHUNG kho lưu trữ chung một cách tự động. Việc này giúp phát hiện sớm các lỗi hợp nhất và Microservices là một xu hướng trong phát xung đột giữa các thành viên trong nhóm, triển phần mềm mang lại tính linh hoạt và đồng thời đảm bảo mã nguồn luôn ổn định. khả năng mở rộng cho ứng dụng phần mềm. Triển khai liên tục liên quan đến việc triển Microservices chia phần mềm thành những khai tự động các phiên bản mới nhất của ứng dịch vụ nhỏ hơn có thể chạy độc lập và riêng dụng vào môi trường sản phẩm hoặc môi biệt. Mỗi dịch vụ nhỏ thực hiện một chức trường thử nghiệm, giúp giảm thời gian và năng riêng biệt ví dụ như quản lý đơn hàng công sức cần thiết để triển khai ứng dụng, hoặc quản lý khách hàng. Việc chia nhỏ này đồng thời tăng tính nhất quán và độ tin cậy sẽ đem lại những lợi ích trong việc bảo trì của quy trình triển khai. Hình 1 miêu tả quá cũng như phát triển thêm những tính năng trình tích hợp liên tục và triển khai liên tục. mới một cách linh hoạt hơn, và khi xảy ra lỗi thì chỉ dịch vụ đó bị ảnh hưởng thay vì toàn bộ ứng dụng. Đặc biệt là hiện nay rất nhiều các công cụ cho phép hỗ trợ triển khai và quản lý các dịch vụ nhỏ này như công cụ triển khai và quản lý container Kubernetes [1]. Kubernetes cho phép triển khai các dịch Hình 1. Quá trình tích hợp thành các container trên một cụm các nốt và triển khai liên tục phần cứng. Công cụ quản lý microservices Quá trình tích hợp bao gồm: cập nhật mã như service mesh Istio [2]. Công cụ này cho nguồn mới (commit code), biên dịch mã phép tăng cường bảo mật giao tiếp giữa các nguồn (build), kiểm thử đơn vị (unit tests), và dịch vụ, cân bằng tải, cũng như giám sát kiểm thử tích hợp (integration tests). Quá thông số của dịch vụ khi chạy. trình triển khai bao gồm: đánh giá mã nguồn Tích hợp liên tục (continuous integration) (review), triển khai trong môi trường staging và triển khai liên tục (continuous delivery) (môi trường cho các kiểm thử viên) và môi [3] là phương pháp tự động hóa quy trình trường thực tế (production). Bài viết trình phát triển phần mềm bao gồm tất cả các khâu bày một giải pháp cụ thể để xây dựng một trong việc phát triển và triển khai ứng dụng. giải pháp tích hợp và triển khai liên tục cho Tích hợp liên tục đề cập đến việc liên tục tích ứng dụng microservices. hợp các thay đổi vào mã nguồn của ứng 2. SO SÁNH CÁC GIẢI PHÁP dụng. Khi một nhóm phát triển làm việc cùng nhau, CI đảm bảo rằng các phiên bản mới Một số công cụ tích hợp liên tục và triển nhất của mã nguồn được tích hợp vào một khai liên tục phổ biến: 110
- Tuyển tập Hội nghị Khoa học thường niên năm 2024. ISBN: 978-604-82-8175-5 Công Ưu điểm Nhược điểm Kho lưu trữ source code: Github. cụ Kho lưu trữ Docker image: Artifact Mã mở, tích hợp sẵn Chỉ sử dụng với Registry của Google cloud platform (GCP). với GitHub, dễ sử các dự án Github Hệ thống triển khai và quản lý container: dụng, cộng đồng lớn Kubernetes của GCP. Github Actions Định nghĩa workflow Hỗ trợ sử dụng Tăng cường giao tiếp bảo mật, cân bằng bằng file YAML. miễn phí và tính tải giữa các microservices, giám sát dịch vụ: phí với hạn chế tính năng Service mesh Istio. Công cụ CI/CD: Github Actions [2]. Mã nguồn mở, nhiều Giao diện khó sử plugin, tùy biến cao, dụng và cấu hình 3.2. Kịch bản của giải pháp miễn phí. Jenkins • Branch develop: nhánh chứa mã nguồn Hỗ trợ cấu hình Yêu cầu triển pipeline bằng file khai host riêng trong quá trình phát triển. Nhánh này sẽ được Jenkinsfile. triển khai lên môi trường phát triển (develop Hỗ trợ build Docker Chi phí sử dụng namespace) trên cụm nốt Kubernetes. Google images. cao • Branch staging: nhánh chứa mã nguồn Cloud Build Tích hợp với hạ tầng Không hỗ trợ đã hoàn thiện và selftest, sau đó biên dịch lên Google Cloud. host riêng môi trường staging để bàn giao cho tester Tích hợp trong GitLab. Chỉ sử dụng được kiểm thử các test case. Nhánh này sẽ được GitLab với dự án GitLab triển khai lên môi trường staging (staging CI/CD Định nghĩa pipeline Chi phí sử dụng namespace) của cụm Kubernetes. bằng file .gitlab-ci.yml. cao • Branch master: nhánh chứa mã nguồn đã vượt qua các bài test case của tester. Nhánh 3. XÂY DỰNG GIẢI PHÁP TÍCH HỢP VÀ này sẽ được triển khai lên môi trường thực tế TRIỂN KHAI LIÊN TỤC (production namespace) của cụm Kubernetes. 3.1. Sơ đồ khối giải pháp sử dụng Github Action Hình 2. Sơ đồ khối giải pháp Các thành phần của giải pháp bao gồm: Một ứng dụng mẫu microservices gồm những dịch vụ sau: gateway (API), auth (xác thực), customer (xử lý nghiệp vụ khách hàng), common (xử lý nghiệp vụ chung), Hình 3. Kịch bản tích hợp recruitment (xử lý nghiệp vụ tuyển dụng). và triển khai liên tục 111
- Tuyển tập Hội nghị Khoa học thường niên năm 2024. ISBN: 978-604-82-8175-5 3.3. Các bước cấu hình chính của giải pháp 4. KẾT LUẬN • Tạo ra các namespace cho từng loại môi Bài viết đã trình bày những xu hướng phát trường triển phần mềm mới microservices, và quy • Tạo ra cụm các nốt Kubernetes trình tự động hóa quá trình phát triển phần • Tạo ra các Service và Deployment cho mềm. Bài viết cũng khảo sát các công cụ tự từng dịch vụ trên Kubernetes động tích hợp và triển khai liên tục với ưu • Thiết lập các cấu hình Istio và thiết lập nhược điểm và trình bày một giải pháp cho PeerAuth để cấu hình bảo mật khi giao tiếp phép thực hiện tích hợp và triển khai liên tục giữa các dịch vụ cho ứng dụng microservices. 3.4. Đánh giá giải pháp 5. TÀI LIỆU THAM KHẢO • Thực hiện thêm mới một API vào mã [1] Linux Foundation. (2024). Kubernetes. nguồn của dịch vụ Recruitment https://kubernetes.io/ • Thực hiện đẩy mã nguồn lên nhánh [2] CNCF Foundation. (2024). Istio service develop, staging, và tạo một tag mới trên mesh. ttps://istio.io/latest/about/service-mesh/ nhánh master. Mã nguồn mới đã được tự [3] Github. (2024). GitHub Actions documentation: động kiểm thử và triển khai trên môi trường https://docs.github.com/en/actions thực tế. Hình 4. Tự động kiểm thử Hình 5. API mới được cập nhật 112

CÓ THỂ BẠN MUỐN DOWNLOAD
-
THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM - Chương 2 Thiết kế phần mềm
57 p |
449 |
80
-
KẾ HOẠCH DỰ ÁN [QUẢN LÝ ĐÀO TẠO THEO HỌC CHẾ TÍN CHỈ]
10 p |
191 |
39
-
Lotus Notes/Domino là gì?
8 p |
547 |
35
-
Đề tài : vTiger
84 p |
79 |
14
-
Bài giảng Phân tích thiết kế hệ thống - Nguyễn Hữu Duyệt (ĐH Sư phạm Đồng Tháp)
143 p |
102 |
13
-
Unfied Messaging-Xu hướng và khả năng áp dụng tại Việt Nam
8 p |
116 |
8
-
Bài giảng Phân tích & thiết kế thuật toán (Algorithms design & analysis): Chương 3 - Huỳnh Thị Thanh Thương
185 p |
3 |
1


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
