Coding Gun

Terraform vs Ansible

ทั้ง Terraform และ Ansible ต่างก็เป็นเครื่องมือที่เป็น Infrastructure as Code(IaC) เหมือนกัน แต่มีจุดแข็งที่แตกต่างกันและสามารถทำงานร่วมกันได้เป็นอย่างดี ในบทความนี้เราจะพาคุณไปดูความแตกต่างของ Terraform และ Ansible กัน

1. Objective

2. Paradigm

3. Immutable Infrastructure

การสร้าง Infrastructure ที่เราต้องการมีอยู่ 2 แนวคิดด้วยกันคือ

  1. Immutable เราจะสร้าง Resource ใหม่เสมอไม่มีการแก้ไขของเก่า โดยจะใช้การลบของเก่าออกแล้วสร้างของใหม่เข้าไปแทน
  2. Mutable จะสามารถเข้าไปแก้ไขหรือปรับเปลี่ยน Resource เดิมได้

ซึ่งการทำงานของ Terraform จะเป็น Immutable ในขณะที่ Ansible จะเป็นแบบ Mutable ดังนั้น Terraform จึงเหมาะกับการสร้าง Infrastructure ด้านล่างมากกว่า เพราะไม่ต้องแก้ไขอะไรใช้การสร้างใหม่ขึ้นมาแทนที่

4. State Management

5. Agent

6. Implementation

7. Syntax

8. Integration


สรุปความแตกต่างของ Terraform กับ Ansible

โดยสรุปแล้ว Terraform จะต่างจาก Ansible ดังนี้

Feature Terraform Ansible
Objective Provisioning Configuration Management
Paradigm Declarative Imperative + Declarative
Immutable Yes No
State Management มี State File ไม่มี State File
Agent Agentless Agentless
Language HCL YAML
Implementation จัดการ Cloud Infrastructure จัดการ Configuration และ Deployment

เลือกใช้เครื่องมือไหนดี?

อ่านบทความอื่นๆเกี่ยวกับ Terraform ได้ที่

Phanupong Permpimol
Follow me