Dùng Vision LLM chuyển sơ đồ kiến trúc sang Terraform: Từ ảnh vẽ đến mã nguồn trong 30 giây

Artificial Intelligence tutorial - IT technology blog
Artificial Intelligence tutorial - IT technology blog

Nỗi ám ảnh mang tên “Vẽ xong rồi viết”

Mỗi dự án Cloud thường bắt đầu trên Lucidchart hay Draw.io. Vẽ xong, bạn phải đối mặt với thực tế phũ phàng: ngồi gõ lại hàng trăm dòng Terraform để hiện thực hóa sơ đồ đó. Đây là công việc lặp đi lặp lại và cực kỳ tốn thời gian.

Sau khi thử nghiệm trên nhiều dự án thực tế, mình nhận ra đây là “vũ khí” giúp bạn thoát khỏi đống việc chân tay nhàm chán. Thay vì dành cả buổi sáng khai báo VPC hay RDS, các model Vision LLM như Claude 3.5 Sonnet có thể “nhìn” ảnh và xuất code chuẩn chỉnh trong vài giây. Theo thống kê cá nhân, kỹ thuật này giúp mình giảm từ 4 giờ làm việc xuống còn khoảng 45 phút cho một hệ thống 3-tier tiêu chuẩn.

Vision LLM: Khi AI bắt đầu “hiểu” hình khối

Trước đây, máy tính đọc ảnh chủ yếu dựa vào OCR (nhận diện chữ). Cách này thường thất bại vì AI không hiểu được ý nghĩa các mũi tên hay mối quan hệ giữa các icon. Tuy nhiên, các dòng Vision LLM đời mới đã mang đến một bước tiến mới về khả năng lập luận không gian (spatial reasoning).

Hãy tưởng tượng bạn đưa tấm ảnh kiến trúc AWS có ELB kết nối tới 3 EC2 trong các Availability Zones khác nhau. AI giờ đây không chỉ thấy ký hiệu mà còn hiểu được cấu trúc High Availability bạn đang hướng tới. Đặc biệt, Claude 3.5 Sonnet viết Terraform HCL rất sạch, tuân thủ module hóa và ít lỗi cú pháp hơn hẳn các model cũ.

Thực hành: 3 bước chuyển sơ đồ thành code

Để đạt độ chính xác cao nhất, bạn nên sử dụng bộ icon chuẩn của AWS, Azure hoặc GCP. Hình ảnh càng rõ ràng, AI càng ít đoán mò.

Bước 1: Chuẩn bị sơ đồ và chọn Model

Dựa trên các bài test thực tế, Claude 3.5 Sonnet hiện đang dẫn đầu về độ chính xác, tiếp theo là GPT-4o. Bạn chỉ cần chụp màn hình sơ đồ rõ nét rồi tải lên giao diện chat. Đừng dùng ảnh quá mờ vì AI sẽ dễ nhầm lẫn giữa các ký hiệu tương đương như SQS và SNS.

Bước 2: Sử dụng Prompt thực chiến

Đừng dùng những câu lệnh chung chung. Để có kết quả tốt, bạn cần một prompt có cấu trúc chặt chẽ. Đây là mẫu mình thường dùng cho các dự án production:

Role: Bạn là Senior Cloud Architect chuyên trách Terraform.
Task: Phân tích ảnh và chuyển đổi sơ đồ kiến trúc thành code Terraform (HCL).

Tiêu chuẩn kỹ thuật:
1. Sử dụng AWS Provider bản mới nhất.
2. Tài nguyên phải được tham số hóa qua variables.tf.
3. Cấu trúc file gồm: main.tf, variables.tf và outputs.tf.
4. Đảm bảo Security Groups có rule kết nối đúng như mũi tên trong sơ đồ.
5. Naming convention: itfromzero-project-resource_name.

Bước 3: Kiểm soát chất lượng

AI sinh code rất nhanh nhưng tuyệt đối không được copy-paste trực tiếp vào production. Bạn cần đóng vai trò là người kiểm duyệt. Hãy chạy bộ lệnh kiểm tra sau để đảm bảo mọi thứ ổn định:

# Tự động căn chỉnh format
terraform fmt

# Kiểm tra cú pháp và logic cơ bản
terraform validate

# Review kỹ các tài nguyên sẽ được tạo
terraform plan

Kinh nghiệm xử lý các sơ đồ phức tạp

Sau nửa năm áp dụng, mình đúc kết được một mẹo quan trọng: Đừng tham lam. Với các hệ thống Microservices khổng lồ, AI thường bỏ sót các chi tiết nhỏ như Health Check hoặc rule Security Group đặc thù.

Giải pháp tối ưu là chia nhỏ sơ đồ. Thay vì quăng một tấm ảnh tổng thể, mình chia thành các module: Networking, Compute và Database. Việc xử lý từng cụm giúp AI tập trung cao độ và sinh mã nguồn chất lượng hơn.

Ví dụ, khi AI xuất code cho RDS, hãy yêu cầu nó bổ sung subnet group nếu bạn vẽ RDS nằm trong vùng Private:

resource "aws_db_subnet_group" "itfromzero_db_sg" {
  name       = "itfromzero-db-subnet-group"
  subnet_ids = [aws_subnet.private_1.id, aws_subnet.private_2.id]

  tags = {
    Name = "ITFromZero DB Subnet Group"
  }
}

An toàn dữ liệu là ưu tiên hàng đầu

Sai lầm chết người của nhiều kỹ sư là yêu cầu AI sinh luôn Access Key hoặc mật khẩu Database. Dữ liệu này có thể bị dùng để huấn luyện model, gây rò rỉ thông tin nhạy cảm.

Kinh nghiệm xương máu của mình là luôn yêu cầu AI dùng placeholder. Hãy sử dụng .tfvars để quản lý giá trị thực tế và đừng quên thêm chúng vào .gitignore trước khi push lên GitHub. Bảo mật tốt bắt đầu từ thói quen nhỏ nhất.

Lời kết

Vision LLM không thay thế được kiến thức nền tảng về Terraform của bạn. Ngược lại, bạn cần hiểu sâu để biết AI đang làm đúng hay sai. Hãy coi AI như một cộng sự đắc lực giúp bạn giải quyết phần việc gõ phím, để bạn dành thời gian cho tư duy kiến trúc và tối ưu chi phí hạ tầng. Thử nghiệm ngay với một sơ đồ cũ, bạn sẽ bất ngờ với kết quả đấy!

Share: