Thuta Learning
ရှာဖွေရန်
BasicDevOpsintermediate

Terraform vs အခြား IaC Tool များ

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Terraform vs အခြား IaC Tool များ ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် terraform command/HCL code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

CloudFormation က AWS ကိုယ်ပိုင် IaC tool ပါ — AWS resource တွေအတွက်ပဲ အလုပ်လုပ်ပါတယ် (AWS-only, cloud-vendor lock-in)။ Terraform ကတော့ cloud-agnostic ပါ — AWS, Azure, GCP, Kubernetes, အခြား SaaS provider ရာနဲ့ချီကို 'provider' concept တစ်ခုတည်းနဲ့ တွဲသုံးနိုင်ပါတယ်။ Ansible ကတော့ 'configuration management' tool ပါ — server ရှိပြီးသားပေါ်မှာ software install/configure လုပ်ဖို့ ဒီဇိုင်းလုပ်ထားတာပါ (Terraform ကတော့ server ကိုယ်တိုင် 'ဖန်တီးဖို့' ဒီဇိုင်းလုပ်ထားတာ)။ Pulumi ကတော့ Terraform ရဲ့ concept တူပေမယ့် HCL အစား Python/TypeScript/Go ကဲ့သို့ programming language အစစ်နဲ့ ရေးလို့ရတဲ့ tool ပါ။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Real-world project တွေမှာ Terraform + Ansible ကို အတူတကွ တွဲသုံးလေ့ရှိပါတယ် — Terraform က server/network/database (infrastructure) ကို ဦးစွာ create လုပ်ပေးပြီး, Ansible ကနေတစ်ဆင့် အဲဒီ server ထဲကို software install/configure (application layer) လုပ်ပေးပါတယ် — 'အိမ်ဆောက်တာ (Terraform) နဲ့ အိမ်ထဲမှာ ပရိဘောဂတွေ ချထားတာ (Ansible)' ဆိုတဲ့ ကွာခြားချက်နဲ့ တူပါတယ်။

အတူတူ ကြည့်မယ်

text
Tool             Purpose                        Vendor lock-in
---------------------------------------------------------------
CloudFormation   AWS resources only             Yes (AWS only)
Terraform        Any provider via HCL           No
Ansible          Configure existing servers     No
Pulumi           Terraform-like, real languages  No
You should see
IaC tool ၄ မျိုးရဲ့ ရည်ရွယ်ချက်ကို ခွဲခြားနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

Web app တစ်ခု (AWS server + database + Nginx software install) အတွက် ဘယ်အဆင့်မှာ Terraform သုံးမလဲ, ဘယ်အဆင့်မှာ Ansible (ဒါမှမဟုတ် တခြား tool) သုံးမလဲ ရေးကြည့်ပါ။

သတိလေးတစ်ချက်

'Terraform က tool တွေအားလုံးထက် ပိုကောင်းတယ်' လို့ မယူဆပါနှင့် — project requirement (single-cloud vs multi-cloud, team ရဲ့ ရင်းနှီးမှု) အလိုက် tool ရွေးချယ်သင့်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Terraform တစ်ခုတည်းနဲ့ server ထဲက software install/configure လုပ်ငန်းစဉ်တွေကိုပါ လုပ်ဖို့ ကြိုးစားခြင်း (provisioner နဲ့ ဖြစ်နိုင်ပေမယ့် anti-pattern ဖြစ်နိုင်ပါတယ်)
  • Multi-cloud project မှာ CloudFormation ကို ရွေးချယ်ခြင်း — AWS ပေါ်ပဲ run ရပြီး Azure/GCP ကို support မလုပ်ပါ

အခု ကိုယ်တိုင် စမ်းကြည့်

Web app တစ်ခု (AWS server + database + Nginx software install) အတွက် ဘယ်အဆင့်မှာ Terraform သုံးမလဲ, ဘယ်အဆင့်မှာ Ansible (ဒါမှမဟုတ် တခြား tool) သုံးမလဲ ရေးကြည့်ပါ။

You'll know it worked when: IaC tool ၄ မျိုးရဲ့ ရည်ရွယ်ချက်ကို ခွဲခြားနိုင်မည်။

Terraform vs အခြား IaC Tool များ | Thuta Learning