Terraform và Infrastructure as Code (IAC) – Bài 1

Infrastructure as Code (IAC) giúp tự động hóa quá trình triển khai hạ tầng bằng mã nguồn thay vì thao tác thủ công. Trong số các công cụ IAC phổ biến, Terraform nổi bật nhờ khả năng hỗ trợ nhiều nền tảng đám mây và dễ sử dụng. Bài viết này sẽ giúp bạn hiểu rõ về Terraform và Infrastructure as Code.

1. IAC là gì?

Trên AWS, khi cần máy ảo (EC2) hay database, ta thường thao tác trực tiếp trên Web Console để tạo chúng. Nhưng khi hệ thống ngày càng lớn, việc quản lý trở nên khó khăn: ta không nhớ hết các tài nguyên, người quản lý nghỉ việc thì người mới khó tiếp nhận, hoặc nếu ai đó vô tình xóa tài nguyên, ta phải tạo lại thủ công mà không chắc cấu hình ban đầu. Nếu cả hạ tầng bị lỗi, ta phải xây dựng lại từ đầu, rất mất thời gian.

IaC (Infrastructure as Code) giúp giải quyết vấn đề này bằng cách lưu hạ tầng dưới dạng code. Khi có sự cố, ta có thể nhanh chóng khôi phục hoặc triển khai lại hệ thống một cách dễ dàng và chính xác. Vậy IAC là gì?

Infrastructure as Code (IAC) là phương pháp quản lý hạ tầng IT bằng cách sử dụng mã nguồn. Thay vì triển khai thủ công, các tài nguyên trên đám mây như VMs, Disks, Network,… đều có thể được tạo ra thông qua code.

Lợi ích của IAC:

  1. Tự động hóa: Loại bỏ thao tác thủ công, giảm thiểu sai sót.
  2. Nhất quán: Môi trường được triển khai với cấu hình đồng nhất.
  3. Tái sử dụng: Mã IAC có thể được sử dụng lại cho nhiều lần triển khai.
  4. Dễ quản lý: Có thể kiểm soát, theo dõi và thay đổi hạ tầng một cách dễ dàng.
  5. Tăng tốc độ triển khai: Tạo môi trường nhanh hơn so với phương pháp truyền thống.

2. Terraform là gì?

Terraform là một công cụ mã nguồn mở được phát triển bởi HashiCorp giúp tự động hóa việc triển khai và quản lý hạ tầng IT bằng cách sử dụng các tệp cấu hình. Thay vì cài đặt và cấu hình môi trường thủ công, Terraform cho phép bạn định nghĩa toàn bộ hạ tầng dưới dạng code. Chỉ với một lệnh duy nhất, bạn có thể tạo, thay đổi hoặc xóa hạ tầng một cách nhất quán và đồng bộ, giúp tối ưu hóa quy trình triển khai và quản lý hệ thống.

Terraform là gì

Nhiều công cụ khác cũng hỗ trợ triển khai hạ tầng, chẳng hạn như Ansible. Tuy nhiên, Ansible được thiết kế chủ yếu để quản lý cấu hình hệ thống hơn là IaC, nên việc sử dụng nó để quản lý hạ tầng có thể dẫn đến các tác vụ không cần thiết.

Một quy trình triển khai ứng dụng tối ưu có thể gồm các bước sau: sử dụng Terraform để tạo hạ tầng, sau đó dùng Ansible để cấu hình máy chủ (cài đặt Docker, thiết lập CI,…), và cuối cùng triển khai ứng dụng bằng Docker hoặc Kubernetes.

quy trình triển khai ứng dụng tối ưu

3. Tại sao nên dùng Terraform

Terrafom không chỉ là công cụ tự động hoá biến những dòng mã thành hạ tầng. Mà Terraform còn đem đến nhiều lợi ích:

  1. Tự động hóa triển khai: Không cần thiết lập thủ công, Terraform giúp tạo và quản lý hạ tầng hoàn toàn tự động.
  2. Hỗ trợ nhiều nền tảng: Terraform hoạt động trên cả Public Cloud (AWS, Google Cloud, Azure, Oracle Cloud, Alibaba Cloud, Kubernetes…) và Private Cloud (OpenStack, VMware vSphere, v.v.).
  3. Quản lý phiên bản hạ tầng: Dễ dàng theo dõi, cập nhật và quay lại phiên bản cũ khi cần. Ví dụ, bạn có thể nâng cấp hệ thống từ phiên bản X lên Y mà vẫn giữ mã triển khai cũ để khôi phục nếu cần.
  4. Tái sử dụng mã nguồn: Hạ tầng có thể được triển khai nhiều lần mà không cần viết lại từ đầu.
  5. Tiết kiệm thời gian và chi phí: Việc thiết lập hạ tầng thủ công có thể mất nhiều ngày hoặc tuần, trong khi với Terraform, bạn có thể hoàn thành trong vài phút hoặc giờ, giảm chi phí vận hành và hạn chế lỗi.
  6. Giảm rủi ro sai sót: Triển khai thủ công dễ dẫn đến lỗi cấu hình, như thiết lập sai kích thước máy chủ hoặc quyền truy cập. Terraform giúp chuẩn hóa hạ tầng, giảm thiểu các sai sót này.

Tại sao nên dùng Terraform

4. Hướng dẫn cài đặt Terraform trên Windows và Linux

4.1. Cài đặt Terraform trên Windows

Việc cài đặt Terraform trên Windows bao gồm tải về gói Terraform phù hợp, giải nén và thiết lập đường dẫn trong biến môi trường. Thực hiện theo các bước sau:

1. Truy cập trang Install Terraform.

2. Chọn Windows dưới mục “Operating System”. Chọn phiên bản AMD64 cho Windows 64-bit.

Cài đặt Terraform trên Windows

3. Giải nén tệp tải về và chọn một vị trí dễ nhớ, ví dụ: C:\Terraform.

4. Mở Start Menu, gõ “environment” và chọn Edit system environment variables. Trong cửa sổ System Properties, nhấn Environment Variables.

Cài đặt Terraform trên Windows

5. Chọn Path trong “System variables” để áp dụng cho tất cả tài khoản hoặc chọn “User variables” nếu chỉ muốn áp dụng cho tài khoản hiện tại.

Cài đặt Terraform trên Windows

6. Nhấn New, nhập vào đường dẫn thư mục C:\Terraform. Nhấn OK để lưu các thay đổi.

Cài đặt Terraform trên Windows

7. Nhập lệnh: terraform -version Kiểm tra phiên bản Terraform đã cài đặt.

4.2. Cài đặt Terraform trên Linux

1. Tải khoá chữ ký HashiCorp:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg

2. Thêm repo HashiCorp và xác định phiên bản hệ điều hành:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

3. Cập nhật danh sách gói:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt update
sudo apt update
sudo apt update

4. Cài đặt Terraform:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install terraform
sudo apt install terraform
sudo apt install terraform

5. Kiểm tra phiên bản Terraform đã cài:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
terraform -version
terraform -version
terraform -version

Terraform và Infrastructure as Code là hai yếu tố quan trọng giúp tự động hóa và tối ưu hóa việc triển khai hạ tầng IT. Bằng cách sử dụng Terraform, bạn có thể đảm bảo môi trường triển khai nhất quán, tiết kiệm thời gian, giảm thiểu rủi ro và cải thiện hiệu suất DevOps.

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em