Học Terraform bằng cách xây hạ tầng thật
19 bài tiếng Việt được biên soạn lại từ series tiếng Anh của DevOps VN, tập trung vào cách suy nghĩ, lệnh cần chạy, cấu trúc code và những lỗi thường gặp khi làm việc với AWS, CI/CD và state.
- Viết và kiểm tra HCL có thể lặp lại.
- Tách module, backend và môi trường.
- Đưa Terraform vào CI/CD an toàn.
- Xử lý drift, secret và triển khai ít downtime.
Đọc — chạy plan — tự phá — khôi phục
- Đọc mục tiêu và điều kiện đầu vào của bài.
- Copy ví dụ vào một thư mục lab riêng, chạy
fmt,validate,plan. - Thay một giá trị, đọc plan và ghi lại vì sao Terraform chọn hành động đó.
- Chạy cleanup, sau đó viết lại từ trí nhớ hoặc biến ví dụ thành module của bạn.
Lab không được biến thành hóa đơn
- Dùng AWS sandbox hoặc account riêng có budget alert.
- Không đặt access key, password hoặc state vào Git.
- Đọc plan trước mọi apply; đặc biệt khi có
destroy/replace. - Luôn có bước
destroyhoặc cleanup rõ ràng trong lab.
Từ “hello Terraform” đến production
Không cần đọc một lần hết. Mỗi bài đều có thể tách thành một buổi lab nhỏ.
IaC và Terraform: bắt đầu từ vấn đề thật
Hiểu Infrastructure as Code, Terraform state và quy trình tạo một EC2 đầu tiên mà không phải click thủ công trong AWS Console.
Đọc bài →Workspace và file cấu hình Terraform
Tạo một project Terraform có version pinning, chạy plan/apply có kiểm soát và hiểu data source trong một cấu hình thực tế.
Đọc bài →Vòng đời resource và hiện tượng drift
Đọc plan như một kỹ sư vận hành: phân biệt create, update, replace, no-op và xử lý khi infrastructure bị sửa ngoài Terraform.
Đọc bài →Lập trình trong Terraform: biến, output và vòng lặp
Dùng input variable, validation, output, count, for expression và function để tránh copy-paste cấu hình giữa các môi trường.
Đọc bài →Deploy website tĩnh lên S3 bằng Terraform
Tự động tạo bucket, upload cả thư mục static bằng fileset và kiểm soát cache cho từng loại file.
Đọc bài →Xây VPC AWS bằng Terraform module
Từ VPC viết tay đến module có input/output, hiểu subnet public/private, NAT Gateway và cách tái sử dụng cấu hình mạng.
Đọc bài →Dựng hạ tầng cho ứng dụng thật bằng nhiều module
Ghép networking, database và autoscaling thành một root module có ranh giới rõ ràng, output rõ và dễ thay đổi.
Đọc bài →Terraform Backend là gì và vì sao team cần nó?
Hiểu local state, standard backend, remote backend và cách chọn nơi lưu state khi nhiều người cùng thay đổi hạ tầng.
Đọc bài →Dùng S3 làm standard backend
Tạo bucket backend đúng cách, bật versioning và locking, sau đó migrate một project từ local state sang S3.
Đọc bài →HCP Terraform làm remote backend
Tổ chức state theo workspace, kết nối repository và đưa variable/secret ra khỏi laptop để team làm việc an toàn hơn.
Đọc bài →CI/CD với HCP Terraform và triển khai ít downtime
Kết nối repository với workspace, review plan tự động và phân biệt create_before_destroy với zero-downtime thực sự.
Đọc bài →Blue/Green deployment bằng Terraform
Duy trì hai phiên bản môi trường, kiểm tra green rồi chuyển traffic có thể rollback về blue.
Đọc bài →A/B testing deployment với CloudFront
Định tuyến một phần người dùng sang phiên bản B bằng CloudFront và edge function, đồng thời hiểu các giới hạn vận hành.
Đọc bài →Kết hợp Ansible với Terraform
Phân biệt provisioning và configuration management, dùng provisioner đúng chỗ và chuyển sang Ansible khi máy đã tồn tại.
Đọc bài →CI/CD cho Terraform với GitLab CI
Xây pipeline fmt, validate, plan và apply theo môi trường; dùng artifacts và manual approval thay vì apply mọi commit.
Đọc bài →Xây CI/CD Terraform với Jenkins
Chuẩn bị repository, credential và backend rồi tạo Jenkins pipeline có kiểm tra, plan, approval và apply rõ ràng.
Đọc bài →Multi-cloud với nhiều Terraform provider
Cấu hình AWS và GCP trong cùng project, hiểu provider alias và thiết kế kết nối mạng thay vì chỉ copy hai resource.
Đọc bài →Bảo mật log và Terraform state
Nhận diện nơi secret có thể lọt ra, dùng sensitive đúng cách và bảo vệ state bằng backend, IAM, encryption và versioning.
Đọc bài →Khi Terraform state lệch infrastructure thật
Điều tra drift, dùng refresh-only, import block và state command để đưa resource có sẵn về đúng mô hình quản lý.
Đọc bài →