Bạn đã bao giờ thấy mệt mỏi khi phải thao tác tay để dựng hạ tầng chưa? Lần đầu tiên học Cloud, chúng ta thường đăng nhập vào giao diện (Console) của AWS, hì hục click tạo từng cái VPC, cấu hình từng cái Subnet, rồi bật từng con EC2. Mọi thứ rất trực quan cho đến khi sếp bảo: "Em nhân bản toàn bộ hệ thống này sang một Region khác giúp anh nhé!"
Đó là lúc bạn cần đến Terraform và khái niệm Infrastructure as Code (IaC).
Nói một cách dễ hiểu, thay vì click chuột, bạn viết ra các file code (file text). Terraform sẽ đọc đoạn code đó và tự động gọi API lên nền tảng Cloud để xây dựng hệ thống chính xác như những gì bạn miêu tả.
3 Khái niệm "Nhập Môn" Cần Nắm
Để hiểu cách Terraform vận hành, bạn chỉ cần làm quen với 3 "nhân vật" chính sau:
Một khi đã viết xong file cấu hình (ví dụ: main.tf), quy trình làm việc chuẩn của bạn sẽ luôn xoay quanh 4 câu lệnh "thần thánh" này:
Đó là lúc bạn cần đến Terraform và khái niệm Infrastructure as Code (IaC).
Nói một cách dễ hiểu, thay vì click chuột, bạn viết ra các file code (file text). Terraform sẽ đọc đoạn code đó và tự động gọi API lên nền tảng Cloud để xây dựng hệ thống chính xác như những gì bạn miêu tả.
3 Khái niệm "Nhập Môn" Cần Nắm
Để hiểu cách Terraform vận hành, bạn chỉ cần làm quen với 3 "nhân vật" chính sau:
- HCL (HashiCorp Configuration Language): Đây là ngôn ngữ khai báo do HashiCorp tạo ra. Nó rất dễ đọc, gần giống với tiếng Anh. Bạn không cần chỉ cho Terraform làm như thế nào (How), bạn chỉ cần miêu tả bạn muốn cái gì (What).
- Provider: Hãy tưởng tượng Provider như một "thông dịch viên". Code của bạn là HCL, nhưng AWS, Azure hay Cloudflare lại nói các ngôn ngữ API khác nhau. Provider sẽ đứng giữa để dịch lệnh từ Terraform sang API tương ứng của nền tảng đó.
- State (File .tfstate): Đây là cuốn sổ nhật ký sinh tử của Terraform. Nó lưu trữ trạng thái hiện tại của hạ tầng thực tế. Mỗi lần bạn chạy lệnh, Terraform sẽ so sánh file code của bạn với cuốn sổ này để biết cần phải thêm, sửa, hay xóa tài nguyên nào.
Một khi đã viết xong file cấu hình (ví dụ: main.tf), quy trình làm việc chuẩn của bạn sẽ luôn xoay quanh 4 câu lệnh "thần thánh" này:
- terraform init (Khởi tạo): Giống như việc chuẩn bị đồ nghề trước khi xây nhà. Lệnh này sẽ tải các Provider cần thiết (như AWS Provider) và thiết lập thư mục làm việc.
- terraform plan (Lên kế hoạch): Đây là bước "nháp". Terraform sẽ báo cho bạn biết chính xác nó sẽ làm gì (tạo mới bao nhiêu resource, sửa gì, xóa gì) trước khi thực sự chạm vào hạ tầng của bạn. Nhờ bước này, bạn tránh được những pha "lỡ tay" xóa nhầm database.
- terraform apply (Triển khai): Chốt đơn! Nếu bạn đồng ý với bản kế hoạch ở bước 2, gõ lệnh này để Terraform chính thức "thi công" hạ tầng trên Cloud.
- terraform destroy (Dọn dẹp): Khi dự án kết thúc hoặc bạn muốn dọn sạch môi trường Lab để tránh mất tiền oan, lệnh này sẽ quét sạch mọi thứ được tạo ra từ file cấu hình của bạn chỉ trong một nốt nhạc.