Hạ tầng dưới dạng mã là gì
Quản lý hạ tầng thông qua mã
Infrastructure as Code (IaC) là cách tiếp cận quản lý và triển khai hạ tầng bằng các file cấu hình máy có thể đọc thay vì cấu hình thủ công.
Lợi ích
- Kiểm soát phiên bản — hạ tầng trong Git, lịch sử thay đổi
- Khả năng tái tạo — môi trường giống nhau ở mọi nơi
- Tự động hóa — triển khai nhanh không cần thao tác thủ công
- Tài liệu — mã đóng vai trò tài liệu
Công cụ IaC
- Terraform — không phụ thuộc cloud, khai báo
- AWS CloudFormation — cho AWS
- Pulumi — IaC bằng ngôn ngữ thông thường (Python, TypeScript)
- Ansible — quản lý cấu hình
Khai báo vs Mệnh lệnh
- Khai báo (Terraform): mô tả trạng thái mong muốn
- Mệnh lệnh (scripts): mô tả các bước thực hiện
Thực hành
- Lưu trữ trạng thái trong bộ nhớ từ xa
- Module để tái sử dụng mã
- CI/CD cho áp dụng tự động
- Chính sách và kiểm tra (OPA, Sentinel)
Ví dụ Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}