0
0
Lập trình
Admin Team
Admin Teamtechmely

Terraform: Quản lý hạ tầng hiệu quả với IaC

Đăng vào 7 tháng trước

• 5 phút đọc

Giới thiệu về Terraform

Khi là lập trình viên, git chính là mạng lưới an toàn của chúng ta. Lệnh git commit là một bản chụp của trạng thái ứng dụng. Lệnh git log kể cho bạn câu chuyện về những gì đã thay đổi, khi nào và vì sao. Bạn có thể thử nghiệm với git branch và nếu có vấn đề, có thể quay lại trạng thái tốt với git revert.

Bây giờ, hãy tưởng tượng rằng hạ tầng đám mây của bạn - các máy chủ, cơ sở dữ liệu, và mạng trên AWS, Azure hoặc Google Cloud - cũng được quản lý theo cách tương tự. Không còn việc ghi chú vội vàng, cố gắng nhớ những ô kiểm mà bạn đã nhấp trong bảng điều khiển web. Không còn "chạy trên máy của tôi" lại kéo dài thành "chạy trong tài khoản đám mây của tôi." Đó chính là lời hứa của Terraform.

Terraform là gì?

Terraform là một công cụ Infrastructure as Code (IaC) được tạo ra bởi HashiCorp. Công cụ này cho phép bạn định nghĩa và cấp phát toàn bộ hạ tầng của mình bằng một ngôn ngữ cấu hình khai báo.

Hãy nghĩ về nó như thế này: Thay vì nhấp từng nút trong bảng điều khiển AWS để tạo một máy chủ, bạn viết một tệp cấu hình mô tả máy chủ đó. Sau đó, bạn chỉ cần ra lệnh cho Terraform làm cho hạ tầng thực tế khớp với mô tả của bạn. Nó giống như kiểm soát phiên bản cho hạ tầng của bạn.

Vấn đề nhấp chuột trong bảng điều khiển

Bạn đã từng cảm thấy nỗi đau này. Bạn cần một môi trường staging mới. Bạn dành một giờ để nhấp chuột khắp nơi trong bảng điều khiển AWS, cấu hình một VPC, các subnet, nhóm bảo mật, EC2 instances và một load balancer. Nó hoạt động, yay!

Hai tuần sau, bạn cần tạo một môi trường giống hệt cho một khách hàng mới. Bạn không thể nhớ chính xác các bước đã thực hiện. Quy tắc ingress trên nhóm bảo mật là cho cổng 8080 hay 8000? ID AMI mà tôi đã sử dụng là gì? Kiến thức về cách xây dựng hệ thống bị mắc kẹt trong đầu bạn và một loạt các cú nhấp không thể đảo ngược.

Terraform giải quyết điều này bằng cách ghi lại kiến thức đó bằng mã.

Ghi mã

Bạn định nghĩa hạ tầng của mình trong các tệp có đuôi .tf bằng cách sử dụng HashiCorp Configuration Language (HCL), ngôn ngữ này dễ đọc cả cho người và máy.

Lập kế hoạch

Bạn chạy lệnh terraform plan. Terraform đọc mã của bạn, so sánh với trạng thái hiện tại của hạ tầng và tạo ra một kế hoạch thực thi. Đây giống như một lần chạy thử - nó cho bạn biết chính xác những gì sẽ được tạo ra, thay đổi hoặc xóa bỏ trước khi điều đó xảy ra. Đây là kiểm tra an toàn tối ưu của bạn.

Áp dụng

Bạn chạy lệnh terraform apply. Terraform thực hiện kế hoạch, thực hiện các cuộc gọi API đến nhà cung cấp đám mây để xây dựng hạ tầng mà bạn đã mô tả.

Các tệp .tf bạn viết trở thành nguồn thông tin duy nhất. Chúng là kiến thức.

Chúng có thể:

  • Được kiểm soát phiên bản: Được cam kết vào git, cùng với mã ứng dụng của bạn.
  • Được xem xét: Được đồng nghiệp xem xét trong các yêu cầu pull.
  • Được tái sử dụng: Được sử dụng để tạo ra các môi trường dev, staging và production giống hệt nhau.
  • Được chia sẻ: Giúp onboard các thành viên mới trong nhóm bằng cách cung cấp cho họ mã, không phải một tài liệu dài 50 trang.

Cách thủ công nhấp chuột:

  1. Đi đến Dashboard EC2.
  2. Nhấp "Launch Instance".
  3. Chọn "Amazon Linux 2 AMI".
  4. Chọn "t2.micro".
  5. Nhấp "Review and Launch", sau đó "Launch".

Cách Terraform:

Bạn tạo một tệp có tên main.tf:

hcl Copy
# Cấu hình nhà cung cấp AWS
provider "aws" {
  region = "us-east-1"
}

# Khai báo tài nguyên bạn muốn tạo
resource "aws_instance" "my_web_server" {
  ami           = "ami-0c02fb55956c7d316" # Amazon Linux 2
  instance_type = "t2.micro"

  tags = {
    Name = "MyWebServer"
  }
}

Sau đó, bạn thực hiện kế hoạch:

bash Copy
tf init    # Khởi tạo Terraform và tải nhà cung cấp AWS
terraform plan    # Hiện kế hoạch thực thi
terraform apply   # Tạo instance EC2

Mã này giờ đây đã trở thành tài liệu. Nó có thể lặp lại. Nó có thể chia sẻ. Nếu bạn muốn một máy chủ thứ hai, chỉ cần sao chép khối mã, thay đổi nhãn Name và chạy lại apply. Kiến thức không còn nằm trong đầu bạn; nó ở trong cơ sở mã.

Lợi ích chính

  • Khả năng hiển thị & Hợp tác: Mọi người trong nhóm đều có thể thấy thiết kế hạ tầng và đề xuất thay đổi qua việc xem xét mã.
  • Tính nhất quán & Độ tin cậy: Loại bỏ lỗi thủ công và đảm bảo môi trường giống hệt nhau.
  • Tốc độ & Hiệu quả: Cung cấp một hạ tầng phức tạp mà trước đây mất nhiều ngày giờ có thể hoàn thành trong vài phút.
  • Quản lý vòng đời: Terraform không chỉ dành cho việc tạo ra. Nó quản lý toàn bộ vòng đời - cập nhật, mở rộng và, quan trọng nhất, xóa bỏ một cách sạch sẽ (terraform destroy), điều này rất tuyệt vời cho việc xóa bỏ các môi trường thử nghiệm để tiết kiệm chi phí.

Hướng dẫn bắt đầu dễ dàng:

  1. Cài đặt Terraform trên máy của bạn.
  2. Cấu hình thông tin đăng nhập cho nhà cung cấp đám mây của bạn (ví dụ, AWS CLI).
  3. Viết một tệp .tf định nghĩa một tài nguyên đơn giản (như instance EC2 ở trên).
  4. Chạy terraform init, plan, và apply.

Bạn vừa mới thực hiện bước đầu tiên ra khỏi bảng điều khiển và bước vào thế giới quản lý hạ tầng được mã hóa, kiểm soát phiên bản và đáng tin cậy.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào