Bấm chuột 9 canh giờ để dựng các cứ điểm Dev/Test/Prod giống hệt nhau. Chỉ cần lỡ tay chọn nhầm một quy tắc mạng, cứ điểm sụp đổ, đệ tử tìm mãi không ra lỗi vì mọi thứ được làm bằng "trí nhớ". Đó là tà đạo ClickOps.
Sau nhiều năm tu luyện, Tông chủ nhắm mắt cũng có thể tự tay tạo ra một hệ thống hoàn chỉnh: Xây VPC, dựng cổng IGW, mở Security Group, thả linh thú EC2, kéo kho S3, thiết lập Cân bằng tải. Tất cả mất khoảng... 3 canh giờ bấm chuột liên tục trên giao diện AWS Console.
Thế nhưng, khi tông môn phát triển cần nhân bản cứ điểm đó ra 3 môi trường Dev, Test, Prod giống hệt nhau, việc click thủ công trở thành cơn ác mộng. Để đắc đạo thực sự, Tông chủ phải chuyển sang cảnh giới IaC (Infrastructure as Code - Dùng Code Họa Hạ Tầng).
Thượng đế AWS ban tặng bảo vật CloudFormation. Thay vì đi xếp từng viên gạch, Tông chủ chỉ cần ngồi viết một tờ sớ (Template) bằng bùa chú YAML miêu tả lại tông môn:
- Sáng thế (Create Stack): Quẳng tờ sớ vào CloudFormation. Chỉ trong vài phút, sấm chớp đùng đùng, VPC, Subnets, EC2, RDS tự động trồi lên từ mặt đất chính xác từng milimet.
- Hủy diệt (Delete Stack): Khi không cần nữa, Tông chủ búng tay một cái. Toàn bộ hạ tầng Stack tự động tan thành mây khói, dọn dẹp sạch sẽ không còn con linh thú mồ côi nào để cắn trộm linh thạch.
CloudFormation chỉ thờ một chủ AWS. Nếu muốn sang vũ trụ Google Cloud (GCP) hay Azure, Tông chủ cần Terraform:
- HCL (HashiCorp Configuration Language): Ngôn ngữ viết dễ đọc, viết hạ tầng như làm thơ.
- Đại Dịch Chuyển Đa Vũ Trụ: Cùng một phong cách viết, Tông chủ có thể gọi tài nguyên ở AWS, GCP, Azure cùng một lúc.
- Quyển Sổ Thiên Mệnh (State File): Terraform ghi nhớ chính xác những gì đã tạo. Nếu đổi sớ từ 1 EC2 thành 3 EC2, nó đối chiếu sổ, nhận biết chỉ cần đúc thêm 2 con thay vì xây lại từ đầu.
Viết YAML căn lề mệt mỏi, các pháp sư Devs kêu gào đòi dùng ngôn ngữ lập trình thật. Đó là lý do AWS CDK (Cloud Development Kit) ra đời:
- Sức mạnh vòng lặp (For-loop): Thay vì copy-paste 10 đoạn YAML dài ngoằng để tạo 10 Subnets, bạn chỉ cần một vòng lặp
forngắn gọn. - IDE hỗ trợ: Dùng compiler để phát hiện lỗi bùa chú ngay khi gõ code, tránh tẩu hỏa nhập ma lúc deploy. CDK sẽ âm thầm biên dịch đoạn code này ra sớ CloudFormation để deploy lên AWS.
| Tiêu chí | 🖱️ ClickOps (Web UI) | 📜 CloudFormation (AWS) | 🌍 Terraform (HashiCorp) | 🧙♂️ AWS CDK (AWS) |
|---|---|---|---|---|
| Bản chất | Dùng chuột cày bừa | Viết YAML/JSON | Viết code HCL | Viết code thật (Python/TS) |
| Độ khó học | Dễ nhất | Trung bình (YAML format) | Khó (Quản lý State file) | Khó (Đòi hỏi biết lập trình) |
| Nhân bản hạ tầng | Không thể (Làm lại bằng tay) | Nhanh chóng, 100% giống nhau | Nhanh chóng, chuẩn xác | Nhanh chóng, tự động hóa cao |
| Đa Vũ Trụ | Không | Khóa chặt ở AWS | Vô địch (AWS, GCP, Azure...) | Khóa chặt ở AWS |
| Chấm Điểm | 🔴 Tà Đạo | 🟡 Chính Phái truyền thống | 🟢 Đệ Nhất Giang Hồ | 🔵 Tinh Anh Học Giả |
Hệ thống không được vẽ trên giấy, cũng không được ghi trong trí nhớ. Hệ thống phải nằm trong Code. Đốt kho chứa code, Tông môn diệt vong. Giữ được kho code, một nén nhang có thể trùng tu cả đế chế.
Tạo dựng hạ tầng bằng code giúp Tông chủ hô phong hoán vũ tạo ra hàng chục cụm máy chủ trong nháy mắt.
Thế nhưng, tạo càng nhanh thì... Linh thạch bốc hơi càng lẹ. Cuối tháng, Thượng đế AWS sẽ gửi xuống một cuộn sớ đòi nợ dài hàng dặm khiến Tông chủ hộc máu mồm...