Kỹ sư Cloud · Bước 5/8 · 7 phút
Serverless
Biết khi nào hàm và dịch vụ serverless giúp bớt công sức, và khi nào chúng gây bất ngờ.
Máy chủ bạn không bao giờ thấy
Serverless (phi máy chủ) không có nghĩa là không có máy chủ. Nó có nghĩa là bạn không phải quản lý chúng. Bạn tải lên một hàm hoặc một container, nhà cung cấp chạy nó khi có request hay sự kiện, tự mở rộng, và tính tiền theo số request cùng thời gian chạy.
Ví dụ phổ biến là AWS Lambda, Azure Functions, và Google Cloud Run cùng Cloud Run functions. Nhiều cơ sở dữ liệu, hàng đợi và dịch vụ lưu trữ cũng là serverless theo nghĩa đó.
Mạnh ở đâu
Serverless hợp với công việc đến theo đợt hoặc theo sự kiện: thu nhỏ ảnh khi ảnh được tải lên, chạy báo cáo mỗi đêm, xử lý webhook, phục vụ một API có lưu lượng thất thường. Khi không có gì xảy ra, bạn trả rất ít hoặc không mất gì, và hạn mức miễn phí hằng tháng thường đủ cho các dự án học tập.
Cần để ý gì
Cold start (khởi động lạnh) là độ trễ khi một hàm lâu không chạy và phải khởi động lại. Hàm có giới hạn về thời gian chạy và bộ nhớ. Chi phí có thể tăng vọt nếu có thứ gì gọi hàm của bạn trong một vòng lặp, hoặc kẻ tấn công dội request vào một endpoint công khai.
Đặt giới hạn số lượt chạy đồng thời nếu nhà cung cấp cho phép, bảo vệ các endpoint công khai, và giữ cảnh báo ngân sách ở bước trước luôn bật.
Thử ngay
Thiết kế một luồng serverless trên giấy
- 1.Chọn một việc chạy theo sự kiện, như: khi có ảnh tải lên, tạo ảnh thu nhỏ.
- 2.Hỏi chatbot bằng câu lệnh bên dưới.
- 3.Đánh dấu mọi chỗ mà một vòng lặp hay một đợt request dồn dập có thể đẩy hoá đơn lên, và viết rào chắn cho từng chỗ.
Thiết kế một cách làm serverless để [việc cần làm] trên [AWS, Azure hoặc Google Cloud]. Nêu tên các dịch vụ, vẽ luồng thành các bước đánh số, giải thích cái gì kích hoạt từng bước, và liệt kê các giới hạn cùng rào chắn tôi nên đặt để một lỗi không thể gây ra hoá đơn lớn.