Tu sĩ giang hồ không chỉ học công kích, mà phải biết lập hộ thân trận pháp. Kẻ không vá được lỗ hổng tu vi của bản thân, sớm muộn cũng tiêu tan sinh mệnh trước thiên kiếp.
Trong bài trước, chúng ta đã chứng kiến cuộc đại chiến lưỡng phái giữa EC2 Phái nuôi linh thú truyền thống và Serverless Đạo triệu hồi linh hồn. Mỗi phái đều có công năng bá đạo, nhưng đồng thời cũng gánh chịu tử huyệt chí mạng:
- Serverless Đạo: Dính linh kiếp
Cold Start(Khởi động lạnh). Request đầu tiên chậm trễ khiến người dùng bỏ đi. - EC2 Phái: Tốc độ
Auto-Scalechậm chạp. Khi bão traffic ập tới, linh thú cần vài phút để "gọi hội", không kịp cứu viện lập tức.
Quyết không chịu khuất phục trước số mệnh, các đại năng của cả hai môn phái đã dốc hết tâm huyết nghiên cứu ra những Hộ Thân Pháp Bảo thượng thừa để vá lại những khuyết điểm này.
Để khắc chế yêu ma Cold Start, các đại năng Serverless Đạo đã sáng chế ra tầng công phu mang tên Provisioned Concurrency (Giữ ấm linh hồn).
Bằng cách hiến tế một lượng linh thạch cố định hàng tháng cho AWS Tông, họ giữ cho một số lượng linh hồn Lambda nhất định luôn ở trạng thái "ấm áp", gọi là đến ngay lập tức, diệt trừ hoàn toàn Cold Start.
- 0ms Cold Start: Linh hồn được khởi tạo sẵn môi trường thực thi, code đã nạp vào bộ nhớ.
- Hệ quả: Mất đi trạng thái "Vô tướng" thuần khiết. Linh thạch sẽ bốc hơi liên tục ngay cả khi tông môn rảnh rỗi không có khách ghé thăm.
Không chịu thua kém, EC2 Phái đã thiết lập trận pháp hộ thân tối thượng bằng sự kết hợp giữa Auto Scaling Group (ASG) và Application Load Balancer (ALB).
Khi thiên kiếp traffic ập tới, trận pháp tự động đúc thêm linh thú mới (Scale out) để chia sẻ gánh nặng. Khi hết quái, trận pháp tự động hóa cốt linh thú (Scale in) để giảm hao tổn linh thạch.
- Scale-Out/In tự động: Giảm tải công việc giám sát 24/7 cho các SRE.
- Hệ quả: Linh thú không thể sinh ra trong vài phần giây như Lambda. Cần 1-3 phút để gọi hội, khởi động OS, tải code, do đó hệ thống có thể bị nghẽn tạm thời lúc đầu.
Mỗi một phương án vá lỗ hổng tu vi đều mang lại ưu và nhược điểm riêng. Hãy cùng đối chiếu hai loại pháp bảo này để biết khi nào nên xuất chiêu:
- Sử dụng Provisioned Concurrency khi bạn xây dựng API cho ứng dụng di động / web thương mại điện tử, yêu cầu response time cực nhanh và đều đặn, chấp nhận chi phí nền cố định.
- Sử dụng Auto Scaling + ALB khi bạn chạy các server truyền thống, container (ECS/EKS) có lượng traffic biến thiên theo chu kỳ ngày/đêm rõ ràng, thời gian scale 1-3 phút không ảnh hưởng nghiêm trọng tới trải nghiệm tổng thể.
Provisioned Concurrency hiến tế linh thạch để giữ ấm linh hồn.
Auto Scaling đúc thêm linh thú để đối mặt thiên kiếp traffic.
Kẻ tu hành thông tuệ không tìm kiếm sự hoàn hảo tuyệt đối,
mà biết lựa chọn hộ thân pháp bảo phù hợp nhất với bản thể.