Kiểm thử và triển khai API của bạn

Phát triển ứng dụng trên AWS

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code cho nhà phát triển

 

iac

  • Ứng dụng cloud native triển khai bằng Infrastructure-as-Code (IaC).
  • Định nghĩa tài nguyên đám mây trong các tệp cấu hình.
  • Tránh thiết lập thủ công trong AWS Management Console (clickops).
Phát triển ứng dụng trên AWS

AWS CloudFormation

 

cloudformation

  • Dịch vụ IaC nền tảng trong AWS.
  • Định nghĩa tài nguyên AWS bằng mẫu YAML hoặc JSON.
Phát triển ứng dụng trên AWS

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK định nghĩa IaC bằng mã.
  • Viết bằng Python, TypeScript hoặc Java thay vì YAML/JSON.
  • Ứng dụng được tổng hợp thành mẫu CloudFormation khi triển khai.
Phát triển ứng dụng trên AWS

AWS Serverless Application Model (SAM)

  • Mở rộng CloudFormation.
  • Cú pháp đơn giản cho tài nguyên serverless và API.
  • Hoạt động như một lớp chuyển đổi.
  • Chuyển cú pháp SAM thành mẫu CloudFormation đầy đủ.

 

sam

Phát triển ứng dụng trên AWS

Tính năng của SAM

  • Tự tạo IAM role theo nguyên tắc tối thiểu, có thể tinh chỉnh.
  • Định nghĩa pipeline triển khai bằng cấu hình.
  • Đóng gói và triển khai với sam build và sam deploy.
  • Bắt lỗi mẫu sớm với sam validate.
  • Giả lập Lambda cục bộ bằng sam local start-lambda.
    • Cung cấp endpoint cục bộ chạy liên tục

 

sam features

Phát triển ứng dụng trên AWS

Kiểm thử với SAM

  • Build, gọi và kiểm thử ứng dụng serverless cục bộ trước khi triển khai.
  • Kiểm thử Lambda và tích hợp API Gateway.
  • Gọi hàm cục bộ bằng sam local invoke.
    • Gọi một lần (one-shot)
  • Giả lập API Gateway bằng sam local start-api.

 

testing with sam

Phát triển ứng dụng trên AWS

Unit test

 

unit tests

  • Dùng SAM với unit test để xác thực hành vi Lambda.
  • Kiểm thử cục bộ tăng tốc vòng đời phát triển.
  • Kết hợp với framework như pytest, JUnit hoặc Jest.
Phát triển ứng dụng trên AWS

Quy trình kiểm thử

 

test workflow

  • Tạo sự kiện kiểm thử với sam local generate-event.
  • Đầu ra là các tệp sự kiện JSON.
  • Gọi cục bộ bằng sam local invoke FunctionName -e event.json.
  • Thêm assertion của framework để kiểm tra phản hồi trước khi triển khai.
Phát triển ứng dụng trên AWS

Giả lập dịch vụ AWS

 

mocking tests

  • Kết hợp kiểm thử cục bộ với thư viện giả lập như moto.
  • Tương tác với dịch vụ AWS mô phỏng, không gọi thật.
  • Tăng tốc độ kiểm thử.
  • Giảm chi phí kiểm thử.
  • Xác thực kịch bản lỗi như throttling hoặc failure.
Phát triển ứng dụng trên AWS

Tích hợp liên tục và triển khai liên tục (CI/CD)

  • Ứng dụng SAM thường được triển khai qua pipeline CI/CD.
  • Tự động hóa build, kiểm thử, đóng gói và triển khai.
  • AWS CodeCommit lưu trữ mã và mẫu SAM.
  • AWS CodeBuild chạy kiểm thử và sam build.
  • AWS CodePipeline điều phối quy trình.

 

cicd

Phát triển ứng dụng trên AWS

Quy trình CI/CD

  • Commit mã nguồn và mẫu SAM lên repo.
  • Chạy kiểm thử và xác thực tự động.
  • Đóng gói ứng dụng với sam build.
  • Triển khai tài nguyên với sam deploy.
  • Giám sát sau triển khai với CloudWatch.

 

workflow

Phát triển ứng dụng trên AWS

Khắc phục sự cố triển khai

  troubleshooting

  • Khắc phục sự cố là kỹ năng vận hành cốt lõi.
  • Lỗi triển khai thường gặp:
  • Vấn đề quyền IAM.
  • Mẫu SAM hoặc CloudFormation không hợp lệ.
  • Đóng gói Lambda lỗi hoặc thiếu phụ thuộc.
  • Cấu hình API Gateway không đúng.
Phát triển ứng dụng trên AWS

Khắc phục sự cố triển khai

  troubleshooting

  • Triển khai SAM chạy trên CloudFormation ở tầng nền.
  • Cung cấp sự kiện stack và tự động rollback.
  • Giúp xác định lỗi triển khai.
  • Rollback để khôi phục trạng thái môi trường trước đó.
Phát triển ứng dụng trên AWS

Khắc phục sự cố triển khai

  troubleshooting

  • Khắc phục sự cố bằng:
  • CloudWatch Logs.
  • Nhật ký thực thi API Gateway.
  • Nhật ký Lambda.
  • Chỉ số CloudWatch.
Phát triển ứng dụng trên AWS

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

Phát triển ứng dụng trên AWS

Preparing Video For Download...