လွယ်လွယ်ပြောရင် Infrastructure as Code (IaC) ဆိုတာ server, database, network စတဲ့ infrastructure တွေကို mouse နဲ့ နှိပ်ပြီး တစ်ခါတည်း တည်ဆောက်မယ့်အစား — code (စာသား ဖိုင်) အဖြစ် ရေးထားပြီး အဲဒီ code ကို run ပြီး တည်ဆောက်တဲ့နည်းပါ။ Infrastructure ကို code လို treat လုပ်တာ။
ချက်ပြုတ်နည်းစာအုပ် (recipe) နဲ့ ဥပမာပေးရအောင်။ ဟင်းတစ်ခွက် ချက်တတ်တဲ့ စားဖိုမှူးတစ်ယောက် ရှိတယ် ဆိုပါတော့ — သူက ပါးစပ်နဲ့ပဲ ပြောပြီး ချက်တယ်၊ ဘာမှ မှတ်မထားဘူး။ သူ မရှိတဲ့နေ့ ဟင်းက အရသာ လွဲသွားမယ်။ နောက် စားဖိုမှူးတစ်ယောက်ကျ recipe စာအုပ်မှာ အဆင့်ဆင့် ရေးထားတယ် — ဆန် ဘယ်နှခွက်၊ ရေ ဘယ်နှခွက်၊ ဘယ်အချိန် ဘယ်လို မွှေရမယ်။ ဘယ်သူချက်ချက် အရသာ တူတူရတယ်၊ စာအုပ်ပျောက်မှာလည်း စိုးရိမ်စရာ မရှိဘူး (photocopy ရှိတယ်)။ IaC က ဒီ recipe စာအုပ်လိုပဲ — server တစ်လုံးကို ဘယ်လို တည်ဆောက်ရမယ် ဆိုတာ code ထဲမှာ အတိအကျ ရေးထားတာ။
တကယ့် code နဲ့ ကြည့်ရအောင်။ Terraform ဆိုတဲ့ နာမည်ကြီး IaC tool နဲ့ AWS ပေါ်မှာ server တစ်လုံး တည်ဆောက်တာ —
resource "aws_instance" "web" {
ami = "ami-0abcdef123456"
instance_type = "t3.micro"
tags = {
Name = "my-website"
}
}
ဒီ စာသား အနည်းငယ်ကို terraform apply လို့ run လိုက်တာနဲ့ AWS ပေါ်မှာ server တစ်လုံး အလိုလို ပေါ်လာတယ်။ Server ကျသွားလို့လား? terraform apply ထပ်နှိပ်လိုက် — အသစ် တစ်လုံး အတိအကျ ပြန်ရတယ်။ Website ကို Singapore ကနေ Tokyo ကို ရွှေ့ချင်လို့လား? ဖိုင်ထဲမှာ region နာမည် ပြောင်းပြီး apply လုပ် — ပြီးပြီ။
ဘာလို့ ဒါက အရေးကြီးတာလဲ —
ထပ်လုပ်လို့ရတယ် (repeatable) — တစ်ခါ ရေးထားတဲ့ code ကို အကြိမ် ၁၀၀ run လည်း ရလဒ် အတူတူပဲ။ လူက နှိပ်တာ မဟုတ်တော့ မှားစရာ မရှိဘူး
Git ထဲ သိမ်းလို့ရတယ် — infrastructure မှာ ဘာ ပြောင်းလဲခဲ့လဲ history အကုန် ရှိတယ်။ မှားသွားရင် အရင်တုန်းက version ကို ပြန်သွားလို့ရတယ်
မြန်တယ် — server အလုံး ၅၀ လိုချင်ရင် code မှာ 50 လို့ ရေးပြီး apply လုပ် — မိနစ်ပိုင်းအတွင်း ရတယ်
Document အလိုလို ဖြစ်တယ် — code ကိုယ်တိုင်က “ဒီ system မှာ ဘာတွေ ရှိလဲ” ဆိုတဲ့ စာရွက်စာတမ်း
နာမည်ကြီး tool တွေ —
Terraform — အသုံးအများဆုံး၊ cloud တော်တော်များများနဲ့ အလုပ်လုပ်တယ် (AWS, Google Cloud, Azure)
AWS CloudFormation — AWS သီးသန့်
Pulumi — Python, TypeScript လို programming language အစစ်နဲ့ ရေးလို့ရတယ်
Ansible — server တွေပေါ်မှာ software install လုပ်တာ၊ setting ချတာမှာ သုံးတယ်
စမ်းကြည့်ချင်ရင် —
Terraform ကို install လုပ်ပြီး terraform init ကနေ စပါ — tutorial က နာရီဝက်လောက် ကြာတယ်
အရင်ဆုံး cloud ပေါ်မှာ မဟုတ်ဘဲ ကိုယ့် laptop ပေါ်မှာ Docker container နဲ့ စမ်းကြည့် — အမှားလုပ်မိလည်း ဘာမှ မဖြစ်ဘူး
ဘယ် tool ပဲသုံးသုံး code ကို GitHub မှာ သိမ်းပါ — ဒါမှ IaC ရဲ့ တကယ့် အကျိုး ရမှာ
အရင်တုန်းက server တည်ဆောက်တာ “ဆရာကြီးတစ်ယောက်ရဲ့ ခေါင်းထဲ” မှာပဲ ရှိတဲ့ အတတ်ပညာ ဖြစ်ခဲ့တယ်။ အခု IaC ခေတ်မှာ အဲဒါက GitHub ထဲက ဖိုင်တစ်ခု ဖြစ်သွားပြီ။ ဆရာကြီး ခွင့်ယူတဲ့နေ့လည်း system က အလုပ်လုပ်နေဦးမယ်။ 🙂