Link Search Menu Expand Document

Continuous Integration & Continuous Delivery

Continuous Integration & Continuous Delivery (CI/CD) là một tập hợp các qui trình liên quan đến việc triển khai và cập nhật hệ thống phần mềm. Những qui trình này bao gồm:

  • Continuous Integration (CI): Hệ thống quản lý source code sử dụng development branch để phát triển các chức năng sản phẩm. Qui trình CI đảm bảo source code trên development branch thường xuyên được tích hợp vào main branch sau các hoạt động code review, tự động thực hiện việc biên dịch hay thực thi các test cases để đảm bảo chất lượng source code trên main branch.

  • Continous Delivery: Source code trên main branch sau khi cập nhật sẽ được triển khai vào một môi trường thực thi với những điều kiện / trạng thái tương đồng với môi trường sản phẩm trong thực tế (ví dụ: số lượng lớn clients, tần suất yêu cầu phản hồi). Tại môi trường này, các test cases tiếp tục được thực hiện để đảm bảo chất lượng sản phẩm với nhiều tiêu chí khác nhau (i.e, hiệu năng). Một khi chất lượng source code được kiểm thử thành công trên môi trường này, nó sẽ được chấp thuận để đưa vào môi trường sản phẩm.

  • Continuous Deployment: Là quá trình cập nhật thay đổi source code trên main branch vào môi trường sản phẩm thực tế. Tại thời điểm này, tính năng / hiệu năng của hệ thống vẫn được tiếp tục giám sát để bảo bảo không xảy ra bất kì sự cố nào. Trường hợp gặp sự cố, sản phẩm sẽ nhanh chóng được luân chuyển - rollback về trạng thái an toàn được thiết lập trước đó, đảm bảo chất lượng dịch vụ phần mềm luôn được duy trì với bất kì thay đổi nào.

Với mô hình kiến trúc Microservices, quá trình Continous Deployment cho một dịch vụ có thể thực hiện với nhiều cách thức khác nhau:

  • Rolling Update: Việc triển khai phiên bản mới và loại bỏ phiên bản cũ của một dịch vụ được thực hiện một cách đồng thời.
  • Blue-Green Deployment: Phiển bản mới và cũ của dịch vụ được duy trì song song. Các yêu cầu từ Client được chuyển hướng sang phiên bản mới. Trong quá trình giám sát phiên bản mới, nếu xảy ra vấn đề chất lượng thì phiên bản cũ sẽ được hoán chuyển lại để phục hồi về trạng thái ổn định trước đó.
  • Canary Release: Phiên bản mới và cũ của dịch vụ cùng được duy trì và sử dụng đồng thời. Các yêu cầu từ Client được dần dần chuyển hướng sang phiên bản mới song song với quá trình giảm sát để đảm bảo không xảy ra bất kì sự cố nào.

Trong các bài tiếp theo, chúng ta sẽ thực hành việc sử dụng các dịch vụ CI/CD của AWS cùng với dịch vụ RemindersManagement trong ứng dụng FriendRemnders.


Table of contents


Copyright © 2019-2022 Tuan Anh Le.