Từ “cú click chuột” sang mã lệnh điều khiển hạ tầng
Bạn còn nhớ thời mình click từng nút trên giao diện web để tạo VM, mở port, gán IP...? Cứ mỗi lần làm là mỗi lần… run rẩy vì sợ quên bước. Rồi team DevOps xuất hiện, mang đến một "chân ái" mang tên Terraform. Và câu chuyện bắt đầu từ đây...
📖 Chuyện kể rằng…
Năm 2014, thế giới IaC (Infrastructure as Code) chào đón một nhân vật mới tên là Terraform, sinh ra bởi nhà HashiCorp. Trong thời điểm mà hạ tầng đám mây như AWS, Azure, GCP ngày càng phổ biến, việc mô tả và triển khai hạ tầng bằng tay trở thành rào cản lớn – vừa chậm, vừa dễ sai.
Terraform xuất hiện với một triết lý mạnh mẽ:
Tuy nhiên, đừng nhầm Terraform là công cụ quản lý cấu hình kiểu Ansible hay Chef. Terraform không SSH vào thiết bị. Nó không chỉnh sửa từng dòng config. Thay vào đó, nó nói chuyện bằng API REST – đúng chuẩn kỷ nguyên cloud-native.
💡 Vậy Terraform làm gì?
Terraform cho phép bạn:
Ví dụ bạn cần tạo 1 VPC + 2 subnet + 1 firewall rule, chỉ cần mô tả bằng file .tf là xong. Terraform sẽ tự hiểu và thực hiện các bước cần thiết theo đúng thứ tự.
⚙️ Cách dùng Terraform? Chỉ 4 bước là xong:
Bạn muốn áp dụng mà không cần xác nhận thủ công? Thêm -auto-approve.
Bạn muốn chắc chắn giữa plan và apply không bị thay đổi? Lưu -out plan.tf.
🔍 Một số lệnh “ít dùng nhưng rất đáng giá”:
🧠 Tips thực chiến từ cộng đồng:
🎯 Kết
Terraform không chỉ là công cụ, nó là cách tư duy lại về việc quản lý hạ tầng – nơi mọi thứ đều có thể kiểm soát bằng mã nguồn, có thể rollback, và có thể kiểm thử trước khi “nhấn nút”.
Bạn còn nhớ thời mình click từng nút trên giao diện web để tạo VM, mở port, gán IP...? Cứ mỗi lần làm là mỗi lần… run rẩy vì sợ quên bước. Rồi team DevOps xuất hiện, mang đến một "chân ái" mang tên Terraform. Và câu chuyện bắt đầu từ đây...
📖 Chuyện kể rằng…
Năm 2014, thế giới IaC (Infrastructure as Code) chào đón một nhân vật mới tên là Terraform, sinh ra bởi nhà HashiCorp. Trong thời điểm mà hạ tầng đám mây như AWS, Azure, GCP ngày càng phổ biến, việc mô tả và triển khai hạ tầng bằng tay trở thành rào cản lớn – vừa chậm, vừa dễ sai.
Terraform xuất hiện với một triết lý mạnh mẽ:
"Hạ tầng cũng có thể viết ra thành code. Và đã là code thì phải tái sử dụng, tự động hóa, kiểm soát được trạng thái."
Tuy nhiên, đừng nhầm Terraform là công cụ quản lý cấu hình kiểu Ansible hay Chef. Terraform không SSH vào thiết bị. Nó không chỉnh sửa từng dòng config. Thay vào đó, nó nói chuyện bằng API REST – đúng chuẩn kỷ nguyên cloud-native.
💡 Vậy Terraform làm gì?
Terraform cho phép bạn:
- Viết mô hình hạ tầng bằng ngôn ngữ riêng: HCL (HashiCorp Configuration Language).
- Kết nối với các nhà cung cấp hạ tầng (gọi là provider) như AWS, Cisco, Azure, Fortinet, v.v…
- Tự động hóa việc tạo, cập nhật và xóa tài nguyên theo trạng thái cuối cùng (declarative).
Ví dụ bạn cần tạo 1 VPC + 2 subnet + 1 firewall rule, chỉ cần mô tả bằng file .tf là xong. Terraform sẽ tự hiểu và thực hiện các bước cần thiết theo đúng thứ tự.
⚙️ Cách dùng Terraform? Chỉ 4 bước là xong:
- terraform init
👉 Kéo các provider cần thiết về local. - terraform plan
👉 Phân tích file .tf để tạo biểu đồ hành động. Có thể lưu ra plan.tf để sau áp dụng không sai khác. - terraform apply
👉 Thực thi các bước từ biểu đồ để tạo hạ tầng. - terraform destroy
👉 Xóa toàn bộ hạ tầng đã triển khai nếu muốn rollback.
Bạn muốn áp dụng mà không cần xác nhận thủ công? Thêm -auto-approve.
Bạn muốn chắc chắn giữa plan và apply không bị thay đổi? Lưu -out plan.tf.
🔍 Một số lệnh “ít dùng nhưng rất đáng giá”:
- terraform fmt – Dọn đẹp file .tf, tự động căn lề và chuẩn hóa code.
- terraform graph – Xuất biểu đồ phụ thuộc của cấu hình. Có thể render ra ảnh để thuyết trình đẹp như mơ 😍
🧠 Tips thực chiến từ cộng đồng:
- Chia nhỏ cấu hình thành module theo vùng (region), loại tài nguyên (network, security...), giúp dễ bảo trì.
- Không thay đổi file .tf giữa bước plan và apply nếu không có lý do rõ ràng.
- Ghi chú cẩn thận và dùng comment trong file .tf để người khác (và chính bạn sau này) hiểu được mục đích từng block.
🎯 Kết
Terraform không chỉ là công cụ, nó là cách tư duy lại về việc quản lý hạ tầng – nơi mọi thứ đều có thể kiểm soát bằng mã nguồn, có thể rollback, và có thể kiểm thử trước khi “nhấn nút”.
Cuối tuần này, thử viết một file .tf đơn giản – tạo 1 VM trên cloud bạn thích.
Bạn sẽ ngạc nhiên khi thấy: hạ tầng cũng có thể… version control được như code!
Bạn sẽ ngạc nhiên khi thấy: hạ tầng cũng có thể… version control được như code!