intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:3

2
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. 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
  2. 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
  3. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
24=>0