Serverless là gì?
Serverless là mô hình computing trong đó người dùng không cần quản lý server. AWS sẽ tự động lo việc cấp phát, vận hành, và mở rộng hạ tầng. Ứng dụng của bạn chỉ cần tập trung vào develop logic và được tính chi phí dựa trên lượng tài nguyên thực sự sử dụng.
Đặc điểm của Serverless
- Không quản lý hạ tầng: không cần lo việc cài đặt OS, Patch, hay Scaling Server.
- Event-driven: ứng dụng thường được kích hoạt từ một sự kiện (ví dụ: upload file lên S3 sẽ trigger Lambda).
- Event-driven architecture: kiến trúc mà một hành động (Event) sẽ kích hoạt một Process (function).
- Pay-per-use: chỉ trả tiền khi code chạy hoặc khi dịch vụ được gọi.
- Scale tự động: AWS sẽ lo việc mở rộng để đáp ứng nhu cầu.
Lợi ích
- Tăng tốc phát triển ứng dụng (chỉ tập trung vào business logic).
- Tiết kiệm chi phí vì không cần chạy máy chủ 24/7.
- Hỗ trợ khả năng mở rộng gần như vô hạn.
- Dễ dàng tích hợp với nhiều dịch vụ khác trong AWS.
Hạn chế
- Cold start: thời gian khởi tạo resource ban đầu có thể gây độ trễ.
- Giới hạn runtime: một số dịch vụ (như Lambda) có giới hạn thời gian chạy.
Các dịch vụ Serverless chính trong AWS
- AWS Lambda - dịch vụ compute không cần server.
- Amazon API Gateway - xây dựng API serverless.
- Amazon DynamoDB - cơ sở dữ liệu NoSQL serverless.
- Amazon Cognito - quản lý xác thực và phân quyền người dùng.
- AWS Step Functions - điều phối nhiều service trong workflow.
- Aurora Serverless - phiên bản Serverless của Aurora
Khi nào nên dùng Serverless?
- Xây dựng ứng dụng web/mobile nhanh chóng.
- Xử lý dữ liệu theo sự kiện (event-driven).
- Các hệ thống backend nhỏ, không cần chạy liên tục.