Tự động hóa build với CodeBuild và buildspec.yml

Tự động hóa triển khai trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

CodeBuild làm gì

  • CodeBuild là dịch vụ build quản lý hoàn toàn
  • Không cần cấp phát hay quản lý máy chủ
  • Chạy build của bạn trong container tạm thời
  • Tự động mở rộng; chỉ trả tiền theo phút build
  • Tích hợp với CodePipeline ở bước Build

 

Vòng đời container tạm thời trong dịch vụ CodeBuild quản lý hoàn toàn

Tự động hóa triển khai trên AWS

Tệp buildspec.yml

  • buildspec.yml: Tệp YAML ở thư mục gốc mã nguồn
  • Định nghĩa CodeBuild sẽ làm gì trong quá trình build
  • Bốn pha chạy theo thứ tự:
    • install: Cài phụ thuộc và công cụ
    • pre_build: Thiết lập trước khi build
    • build: Biên dịch, chạy kiểm thử
    • post_build: Đóng gói artifact, dọn dẹp

buildspec

Tự động hóa triển khai trên AWS

Ví dụ buildspec.yml thực tế

  • install: pip install -r requirements.txt
  • pre_build: [ -z "$DB_URL" ] && exit 1
  • build: pytest tests/
  • post_build: zip -r app.zip . rồi echo "Build completed"

Trình soạn thảo giao diện sáng hiển thị buildspec.yml với bốn pha, trong đó build chạy pytest và post_build đóng gói mã vào app.zip, xuất ra artifact của pipeline

Tự động hóa triển khai trên AWS

Cấu hình môi trường build

 

Cấu hình môi trường build: compute, biến môi trường, caching

  • Loại compute: small, medium, large, 2xlarge
    • Chọn theo độ phức tạp và yêu cầu tốc độ build
  • Biến môi trường: Truyền cấu hình vào build
    • Lưu bí mật trong Parameter Store hoặc Secrets Manager
  • Bộ nhớ đệm phụ thuộc: Cache gói đã tải giữa các lần build
    • Giảm đáng kể thời gian build cho dự án lớn
Tự động hóa triển khai trên AWS

Artifact đầu ra và tích hợp pipeline

 

Đầu ra artifact của CodeBuild vào S3 và chuyển cho CodePipeline

  • Phần artifacts định nghĩa CodeBuild xuất ra gì
  • files: Danh sách tệp hoặc mẫu; base-directory: đường dẫn gốc
  • Artifact đầu ra lưu ở S3, tự động chuyển sang bước kế tiếp
  • Đường dẫn artifact sai sẽ làm lỗi deploy dù build thành công
Tự động hóa triển khai trên AWS

Chuỗi build-test-deploy đầy đủ

  • Nhà phát triển đẩy mã lên CodeCommit
  • CodePipeline tự động kích hoạt
  • CodeBuild: install -> pre_build -> build -> post_build
  • Artifact build chuyển sang CodeDeploy
  • Ứng dụng được triển khai tới môi trường đích

Chuỗi CI/CD đầy đủ: CodeCommit, các pha CodeBuild, CodeDeploy

Tự động hóa triển khai trên AWS

Cùng luyện tập nào!

Tự động hóa triển khai trên AWS

Preparing Video For Download...