Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Bạn dựng máy chủ bằng cách bấm chuột trên giao diện web của nhà cung cấp cloud. Sáu tháng sau, không ai nhớ đã bấm những gì, và dựng lại môi trường giống hệt là chuyện bất khả thi. Infrastructure as Code (IaC) giải quyết điều đó bằng cách mô tả hạ tầng dưới dạng mã.
IaC là thực hành định nghĩa máy chủ, mạng, cơ sở dữ liệu và các tài nguyên khác bằng file văn bản, rồi để công cụ tự tạo ra chúng. Vì là mã nên bạn có thể lưu trong Git, xem lịch sử thay đổi, review bằng pull request và chạy lại bất cứ lúc nào.
Lợi ích:
Terraform là công cụ IaC phổ biến, dùng ngôn ngữ khai báo riêng gọi là HCL. Bạn mô tả trạng thái mong muốn (ví dụ: tôi muốn có một máy chủ cỡ này), còn Terraform tự tính ra cần thêm, sửa hay xóa gì để đạt được trạng thái đó. Nó làm việc với nhiều nhà cung cấp thông qua các provider.
Đoạn mã dưới đây mô tả khái niệm cơ bản; tên provider và thuộc tính cụ thể sẽ khác theo nhà cung cấp bạn dùng, nên hãy xem tài liệu của provider tương ứng:
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx:1.27-alpine"
}
resource "docker_container" "web" {
name = "web"
image = docker_image.nginx.image_id
ports {
internal = 80
external = 8080
}
}Ví dụ dùng provider Docker để bạn thử ngay trên máy cục bộ mà không cần tài khoản cloud: nó kéo image Nginx và chạy container. Với cloud, bạn thay bằng các tài nguyên như máy ảo, mạng, bucket lưu trữ.
terraform init
terraform plan
terraform apply
terraform destroyinit: tải provider và chuẩn bị thư mục làm việc.plan: xem trước sẽ tạo, sửa, xóa gì. Luôn đọc kỹ bước này.apply: thực sự áp dụng thay đổi sau khi bạn xác nhận.destroy: xóa các tài nguyên Terraform quản lý. Dùng cẩn thận.Terraform lưu một file state ghi lại tài nguyên thật nó đang quản lý. Đây là cách nó biết cần thay đổi gì. Một vài quy tắc:
Dùng biến (variable) để tránh ghi cứng giá trị, và module để đóng gói nhóm tài nguyên dùng lại nhiều lần, ví dụ một module 'mạng chuẩn' dùng cho cả staging lẫn production. Bí mật như mật khẩu nên truyền qua biến môi trường hoặc kho bí mật, không ghi thẳng vào file.
plan vào pull request để cả nhóm xem trước thay đổi.IaC biến hạ tầng từ những thao tác thủ công khó nhớ thành mã có thể review, kiểm thử và tái sử dụng. Bạn không cần quản lý cả hệ thống ngay; hãy thử mô tả một tài nguyên nhỏ bằng Terraform và làm quen với chu trình init, plan, apply.
Nếu muốn học IaC cùng các bài thực hành dựng hạ tầng thật, hãy xem lộ trình tại codebem.com.
Nguyễn Đình Cường
0 comment