GIỚI THIỆU:
Infrastructure là gì ?
Infrastructure theo tiếng việt nghĩa là cơ sở hạ tầng, là nền tảng hoặc khuôn khổ hỗ trợ một hệ thống hoặc tổ chức. Trong giới công nghệ, cơ sở hạ tầng công nghệ thông tin bao gồm các tài nguyên vật lý và ảo hỗ trợ lưu lượng, lưu trữ, xử lý và phân tích dữ liệu.
Bởi vì hạ tầng mỗi ngày sẽ càng ngày to ra và việc setup sẽ trở nên khó khăn và phức tạp. Đó là lý do xuất hiện của khái niệm Infrastructure as Code
Infrastructure as Code là gì?
Infrastructure as Code là dùng nền tảng hoặc script dùng để tự động hoá quá trình cấu hình cơ sở hạ tầng thay vì phải setup thủ công.
Hiện nay việc setup cơ sở hạ tầng sẽ mất rất nhiều thời gian với nhiều quy trình thủ công liên quan đến nhau, nhưng với sự xuất hiện của những công cụ như Terraform, Chef, Ansible, Puppet, SaltStack, CloudFormation … Nó khiến cho việc quản lý cũng như cung cấp những việc setup infrastructure trở nên đơn giản hơn.
Ví dụ như vậy cho các anh em dễ hiểu:
Giả sử mình có một website WordPress và được deploy trên 2 con instance bằng Amazon EC2, ngoài ra mình có setup thêm một con Classic Load Blancer bên ngoài 2 con instance.
Để monitor instance mình cần phải setup CloudWatch, nhưng giả sử tương lai mình thêm một con instance nữa thì những thông số bắt buộc mình phải vô trong AWS cấu hình thủ công lại.
Để công việc dễ dàng hơn mình sẽ tìm một open source hoặc một platform nào đó để tự động hoá vấn đề này.
Đó lý do mình sẽ đề cập về Terraform, một open source giúp ích chúng ta trong công việc này.

Vậy Terraform là gì?
Sau khi đã hiểu được infrastructure là gì thì chúng ta sẽ đi sâu hơn một xíu để hiểu thêm về Terraform, một cái tên khá xa lạ cho các anh em chưa từng làm tới Devops.
Terraform là một công cụ phát triển, thay đổi và “versioning” hệ thống an toàn và hiệu quả.
Terraform là công cụ cơ sở hạ tầng bất biến đa đám mây được HashiCorp đầu tiên giới thiệu thế giới vào tháng 7 năm 2014 và được viết bằng Go. Một lý do quan trọng mà mọi người chọn Terraform là vì nó quản lý cơ sở hạ tầng của họ dưới code.
Bên cạnh đó Terraform có thể quản lý và hỗ trợ hầu hết các “service provider” đình đám hiện nay như:
- Amazon Web Service
- Google Cloud
- Alibaba Cloud
- Microsoft Azure
Tại sao chọn Terraform?
Thật ra có rất nhiều những tool khác ngoài Terraform, nhưng vì mình chưa có dịp trải nghiệm qua những tool khác nên bài viết mang tính cá nhân một tí
Một phần nữa mình phải công nhận cộng đồng sử dụng Terraform khá nhiều bằng chứng là theo thống kê của IAC (một bên thứ 3 thông kê và so sánh giữa các thương hiệu) thì số lượng job cho Developer biết Terraform khá là nhiều cũng như số lượng thư viện khá là khủng.
Với một lý do nữa là theo mình thấy code Terraform đọc khá dễ hiểu. Document đầy đủ, mô tả rất chi tiết và đó là một điểm cộng lớn nếu các anh em bắt đầu đi tìm một công nghệ mới.

Bảng so sánh của IAC giữa Terraform và các đối thủ
Demo Code Terraform
Dưới đây mình sẽ demo đoạn code nhỏ về Terraform và giải thích về cách hoạt động của nó:

Ở đây mình auto setup một CloudWatch config để monitor instance trên EC2 nhằm một trong 2 con instance mình bị die thì nó sẽ báo về email cho mình.
Nhưng field bên trái cần phải follow theo syntax của Terraform còn giá trị bên phải sẽ tương đương với giá trị Service Provider các anh em dùng.
Ở đây mình dùng AWS nên mình cần phải dùng module Terraform của AWS còn về các giá trị thì các anh em chỉ cần lên AWS đọc document rồi set một giá trị mà mình muốn vào thôi.
Kết Luận
Sau một hồi tìm hiểu infrastructure là gì hoặc Terraform là gì thì mình biết là các em cũng hơi rối một xíu. Tóm cái váy lại như sau để dễ hiểu hơn. Mặc định các Service Provider như Amazon Web Service, nó sẽ có rất là nhiều service trên đó. Khi mà cách anh em phải edit trên UI bằng tay như vậy sẽ rất là rối.
Khi mà hệ thống nó càng phình ra đồng nghĩa cấu hình sẽ tương đôi phức tạp và việc quản lý bằng tay là không thể.
Để đơn giản hoá vấn đề hơn ở đây chúng ta sẽ sử dụng tool hỗ trợ điển hình ở đây là Terraform.
Hung Pham Dev Web
Sidebar Diagnostics - Theo dõi, giám sát thông tin CPU
1,419
SSD Fresh - Tăng hiệu suất, tuổi thọ ổ đĩa SSD
1,338
SSDLife Pro - Kiểm tra sức khỏe cho ổ đĩa SSD
1,218
WindowTop - Tạo cửa sổ nổi, áp dụng hiệu ứng trong suốt
1,328
Kahlown - Quay video và chụp màn hình máy tính
1,161
Retrospect - Tạo bản sao lưu cho các tệp và thư mục quan trọng
1,272
Synergy - Phần mềm tiện ích desktop
2,322
Barrier - Phần mềm KVM , kết nối hai hoặc nhiều máy tính với nhau
2,764
Insomnia - Kiểm tra, gỡ lỗi HTTP API
1,327
Wise Folder Hider - Ẩn thư mục, dữ liệu trên ổ cứng
1,461
Screen Translator - Dịch bất kỳ văn bản nào trên màn hình ngay lập tức
10,688
Predator - Khóa và mở khóa PC bằng Predator Home Edition
1,245
Scanner - Kiểm tra và quản lý dung lượng ổ đĩa của bạn
1,324
Systweak Disk Speedup - Chống phân mảnh ổ cứng
1,356
All in One Runtimes - Gói công cụ cần thiết cho Windows
6,161
Desktop Calendar - Xem lịch thông minh trên máy tính
6,492
Mobizen - Phản chiếu màn hình điện thoại lên máy tính
1,762
DroidCam - Biến Android thành webcam, camera chống trộm trên máy tính
2,383
UserBenchmark - Công cụ đo điểm chuẩn và kiểm tra PC
1,642
GhostBuster - Xóa các thiết bị không còn được kết nối với PC
1,356
Tổng hợp các lệnh đế chế cơ bản
Hướng dẫn dùng AK 47 và M4A1 trong Counter Strike
Các quân hay sử dụng trong game đế chế
Các phím tắt trong game AOE
Lệnh, mã game Cướp đường phố Gta Vice City tổng hợp
Cập nhật một số cách vào Facebook bị chặn
Khắc phục, fix lỗi màn hình đen trên máy tính
5 Cách tăng tốc truy cập Internet hiệu quả
Hướng dẫn cài Windows 7 trên máy tính có Mainboard của hãng Gigabyte
Hướng dẫn cách loại bỏ thanh công cụ trình duyệt Firefox
ZOOM - Ứng dụng...
8,677,755
Cốc cốc...
1,914,760
Download Minecraft...
1,250,157
UltraViewer 6.2 -...
1,005,842
Microsoft Teams...
769,368
CapCut cho PC -...
696,285
UniKey 4.3 RC5...
597,682
Microsoft...
533,999
Zalo PC - Gọi...
501,187
Messenger cho...
373,024