IAC ကို အသုံးပြုဖို့ဆိုရင် အရင်ဆုံးလိုအပ်တာ ကိုယ် automate လုပ်ချင်တဲ့ အကြောင်းအရာရယ် အဲ့တာကို run လိုက်ပြီးရင် ဘယ်လို reuse လုပ်မလဲ ဘယ်လို control လုပ်မလဲ ဆိုတဲ့ Lifecycle ကို သိဖို့လိုပါတယ်။ ex…. Ansible, ကို သုံးပြီး task တစ်ခုလုပ်မယ်ဆိုပါစို့ ping task တစ်ခုပေါ့။ လိုအပ်တဲ့ collection, modules တွေ ရှိနေဖို့လိုတယ် အဲ့တာပြီးမှ code ကို စတင်ပြီး reference လုပ်လို့ရမှာဖြစ်ပါတယ်။ အဲ့တာပြီးရင် production မှာ အသုံးပြုနိုင်ရန် plan အကြောင်းကို စဉ်းစားရပါမယ်။ inventory ဘယ်နှလုံးကို အသုံးပြုမှာလဲ။ CI/CD နဲ့ run မှာလား။ hub မှာလိုအပ်တဲ့ collection ရှိလား စသဖြင့်ပေါ့။ အဲ့တာပြီးရင်တော့ launch လိုပြီး သုံးပါမယ်။ terraform မှာဆိုရင် resource တစ်ခုကို create စလုပ်မယ်ဆိုပါစို့။ လိုအပ်တဲ့ modules, provider တွေ အကြောင်းတွေ နားလည်ဖို့လိုပါတယ်။ အခြားရှိသေးတာက code ကို ဘယ်လို ရေးမလဲ။ init, plan, validate, apply, destroy စသဖြင့် နားလည်ဖို့လိုအပ်ပါတယ်။
example တစ်ခုအနေနဲ့ terraform မှာ resource တစ်ခု create လုပ်မယ်ဆိုပါစို့။
ဘယ်ကစရေးမလဲဆိုတဲ့ plan ကို စဉ်းစားတယ် နောက်ပြီးတော့မှ code ကို ရေးမယ်။ အဲ့တာကို plan state လို ပြောလို့ရသလို write ဆိုတဲ့ code create လိုလဲ ပြောလို့ရတယ်။ ရေးပြီးရင် ကိုယ်စဉ်းစားတဲ့ plan အတိုင်း ဖြစ်လာလားဆိုတာကို run ကြည့်မယ်။ plan က ထွက်လာတဲ့ output ကို စမ်းကြည့်ချင်တာ (testing running) ကို test ဒါမှမဟုတ် plan လို ခေါ်ပြန်တယ်။ လိုချင်သလို ဖြစ်လာသလားဆိုတာကို စစ်ပြီး production မှာ apply လုပ်လိုက်တာ ဖြစ်ဖြစ် တစ်နေရာရာ သုံးလိုက်ရင် အဲ့တာ state ကို apply or deploy လို ပြောလေ့ရှိပါတယ်။
ပုံမှန် lifecycle management က Plan, Design, Implement, Test, Deploy, Maintain ရှိပါတယ်။
Terraform မှာကတော့ write, plan, apply လိုပြီး သတ်မှတ်ထားပါတယ်။ ကြည့်မယ်ဆိုရင် အတူတူလောက်ရှိပါတယ်။
Terraform မှာကတော့ သုံးခုလုံး ဆက်စပ်နေတယ်လို ပြောရမယ်။ တစ်ခုမလုပ်ခင် final state ကိုပါ ထည့်တွေးပြီး code ရေးတဲ့ ပုံစံဖြစ်လို့ အကုန်လုံး စပ်ဆက်နေတယ်လို့ ပြောရပါမယ်။