navigation

Serverless - CI/CD với CodePipeline

Tổng quan

Continuous Integration, Continuous Delivery, Continuous Deployment (CI/CD) là các phương pháp phát triển phần mềm để sản xuất phần mềm trong các chu kỳ ngắn giữa hợp nhất thay đổi mã nguồn và cập nhật ứng dụng. Mục tiêu cuối của các phương pháp này là giảm chi phí, thời gian và rủi ro bằng cách phân phối phần mềm thành các phần nhỏ.

Trong bài số 7 của series này, chúng ta sẽ tìm hiểu về cách xây dựng luồng CI/CD để mỗi khi bạn thay đổi source của ứng dụng và đưa lên git repository, nó sẽ được tự động cập nhật lại các dịch vụ và ứng dụng của chúng ta. Có rất nhiều tool để ta xây dựng CI/CD, phổ biến nhất là Jenkins, Gitlab CI, Circle CI. Trong bài này chúng ta sẽ sử dụng CodePipeline của AWS.

Kiến trúc CI/CD cho back-end: SeverlessExample

  • Nhà phát triển tạo một git repo trên CodeCommit và đưa code của SAM project lên đó
  • Mỗi khi source code được cập nhật, CodeBuild sẽ tự động build lại và chuẩn bị CloudFormation template
  • CloudFormation tạo/cập nhật các dịch vụ không máy chủ

Kiến trúc CI/CD cho front-end của web:

SeverlessExample

  • Nhà phát triển tạo một git repo trên CodeCommit và đưa front-end code lên đó
  • Mỗi khi source code được cập nhật, CodeBuild sẽ tự động build lại sau đó đóng gói thư mục build
  • Cuối cùng thư mục build được đẩy vào S3 bucket với static hosting website đã được kích hoạt

Nội dung

  1. Chuẩn bị
  2. Xây dựng SAM pipeline
  3. Xây dụng pipeline cho frontend
  4. Kiểm tra hoạt động
  5. Dọn dẹp tài nguyên