คืออะไร โครงสร้างพื้นฐานเป็นโค้ด
การจัดการโครงสร้างพื้นฐานผ่านโค้ด
Infrastructure as Code (IaC) คือแนวทางในการจัดการและปรับใช้โครงสร้างพื้นฐานโดยใช้ไฟล์การกำหนดค่าที่เครื่องอ่านได้แทนการกำหนดค่าด้วยตนเอง
ข้อดี
- การควบคุมเวอร์ชัน — โครงสร้างพื้นฐานใน Git, ประวัติการเปลี่ยนแปลง
- ความสามารถในการทำซ้ำ — สภาพแวดล้อมเดียวกันทุกที่
- ระบบอัตโนมัติ — ปรับใช้เร็วโดยไม่ต้องดำเนินการด้วยตนเอง
- เอกสาร — โค้ดทำหน้าที่เป็นเอกสาร
เครื่องมือ IaC
- Terraform — ไม่ขึ้นกับคลาวด์, declarative
- AWS CloudFormation — สำหรับ AWS
- Pulumi — IaC ในภาษาทั่วไป (Python, TypeScript)
- Ansible — การจัดการการกำหนดค่า
Declarative vs Imperative
- Declarative (Terraform): อธิบายสถานะที่ต้องการ
- Imperative (สคริปต์): อธิบายขั้นตอนที่จะทำ
แนวปฏิบัติ
- จัดเก็บสถานะในที่เก็บข้อมูลระยะไกล
- โมดูลสำหรับการนำโค้ดกลับมาใช้ใหม่
- CI/CD สำหรับการใช้งานอัตโนมัติ
- นโยบายและการตรวจสอบ (OPA, Sentinel)
ตัวอย่าง Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}