AWS Step Functions là gì?
AWS Step Functions là dịch vụ Orchestration Serverless cho phép bạn xây dựng các Workflow bằng cách kết nối nhiều dịch vụ AWS như Lambda, DynamoDB, SQS, SNS, API Gateway. Thay vì viết code phức tạp để xử lý luồng nghiệp vụ, bạn có thể mô hình hóa quy trình dưới dạng state machine.
Đặc điểm chính
- Serverless: không cần quản lý server.
- Workflow dưới dạng state machine: dễ hình dung và quản lý.
- Tích hợp với hơn 200 dịch vụ AWS.
- Quản lý lỗi và retry tự động.
- Pay-per-use: tính phí dựa trên số lần state transition.
Thành phần cơ bản
- State Machine: định nghĩa toàn bộ workflow.
- States: các bước trong workflow, gồm nhiều loại:
- Task: thực hiện một công việc (ví dụ gọi Lambda).
- Choice: rẽ nhánh logic dựa trên điều kiện.
- Parallel: thực hiện song song nhiều nhánh.
- Wait: chờ trong một khoảng thời gian.
- Fail/Success: trạng thái kết thúc.
- Execution: một lần chạy của state machine.
Quy trình hoạt động
- Một event (ví dụ API Gateway request) khởi chạy Step Functions.
- Step Functions đi qua từng state theo logic đã định nghĩa.
- Các task gọi dịch vụ AWS khác (Lambda, DynamoDB, SNS, SQS, v.v.).
- Workflow kết thúc bằng Success hoặc Fail.
Tích hợp phổ biến
- Lambda: xử lý logic nghiệp vụ.
- DynamoDB: lưu/truy vấn dữ liệu.
- SQS / SNS: giao tiếp bất đồng bộ.
- API Gateway: kích hoạt workflow từ client.
- Glue / EMR / SageMaker: xử lý dữ liệu & Machine Learning pipeline.
Ưu điểm
- Giúp quản lý workflow phức tạp dễ dàng.
- Tích hợp sẵn retry, error handling.
- Có giao diện trực quan để theo dõi tiến trình.
- Serverless, không cần vận hành hạ tầng.
Hạn chế
- Tăng độ trễ nếu workflow có nhiều bước nối tiếp nhau.
- Chi phí có thể cao khi số lượng state transition lớn.
- Cần thiết kế hợp lý để tránh workflow quá phức tạp.
Use cases
- Xử lý đơn hàng: kiểm tra tồn kho → thanh toán → thông báo khách hàng.
- Data pipeline: ETL dữ liệu từ S3 → xử lý → lưu kết quả vào Redshift/DynamoDB.
- Machine Learning: tiền xử lý dữ liệu → train model → deploy.
- Automation workflows: xử lý approval, quản lý tài nguyên AWS.