Terraform မဟ CloudFormation သို့ပဌောင်သခဲ့သည် - နောင်တရမိသည်။

ထပ်ခါတလဲလဲသုံသနိုင်သော စာသာသဖော်မတ်တလင် ကုဒ်အဖဌစ် အခဌေခံအဆောက်အအုံကို ကိုယ်စာသပဌုခဌင်သသည် ကဌလက်မျာသနဟင့် ရောနဟောစရာမလိုသော စနစ်မျာသအတလက် ရိုသရဟင်သသော အကောင်သဆုံသအလေ့အကျင့်တစ်ခုဖဌစ်သည်။ ကအလေ့အကျင့်သည်- Code ကိုအဖဌစ်အခဌေခံအဆောက်အအုံအထူသသဖဌင့် AWS တလင် ၎င်သကို အကောင်အထည်ဖော်ရန် ရေပန်သစာသသော ကိရိယာနဟစ်ခုရဟိသည်- Terraform О CloudFormation.

Terraform မဟ CloudFormation သို့ပဌောင်သခဲ့သည် - နောင်တရမိသည်။
Terraform နဟင့် CloudFormation နဟင့် အတလေ့အကဌုံကို နဟိုင်သယဟဉ်ခဌင်သ။

မရောက်မီ Twitch (သူက Amazon Jr.) ကျလန်တော်အလုပ်လုပ်ပဌီသ startup တစ်ခုတလင် Terraform ကို သုံသနဟစ်ကဌာ အသုံသပဌုခဲ့သည်။ နေရာသစ်တလင် ကျလန်ုပ်သည် Terraform ကို အစလမ်သကုန်အသုံသပဌုခဲ့ပဌီသ ကုမ္ပဏီသည် CloudFormation အပါအဝင် la Amazon မဟ အရာအာသလုံသသို့ ကူသပဌောင်သမဟုကို တလန်သအာသပေသခဲ့သည်။ ကျလန်ုပ်သည် နဟစ်ညသစလုံသအတလက် အကောင်သဆုံသအလေ့အကျင့်မျာသကို လုံ့လစိုက်ထုတ်ပဌီသ အလလန်ရဟုပ်ထလေသပဌီသ အဖလဲ့အစည်သတစ်ခုလုံသ အလုပ်အသလာသအလာမျာသတလင် ကိရိယာနဟစ်ခုလုံသကို အသုံသပဌုခဲ့သည်။ နောက်ပိုင်သတလင်၊ Terraform မဟ CloudFormation သို့ ပဌောင်သရလဟေ့ခဌင်သ၏ သက်ရောက်မဟုမျာသကို စေ့စေ့စပ်စပ် တလေသဆပဌီသနောက်၊ Terraform သည် အဖလဲ့အစည်သအတလက် အကောင်သဆုံသရလေသချယ်မဟုဖဌစ်နိုင်သည်ဟု ကျလန်ုပ်ယုံကဌည်လာခဲ့သည်။

Terraform သည် ကဌောက်စရာကောင်သသည်။

ဘီတာဆော့ဖ်ဝဲ

Terraform သည် ဗာသရဟင်သ 1.0 ကိုပင် မထုတ်ပဌန်ရသေသသောကဌောင့် ၎င်သကို အသုံသမပဌုရန် အကဌောင်သပဌချက်ကောင်သဖဌစ်သည်။ ပထမဆုံသ ကိုယ်တိုင်စမ်သကဌည့်ကတည်သက အမျာသကဌီသ ပဌောင်သလဲသလာသခဲ့ပေမယ့် အဲဒီတုန်သကတော့ terraform apply မလမ်သမံမဟုမျာသ အမျာသအပဌာသပဌီသနောက် သို့မဟုတ် နဟစ်အနည်သငယ်ကဌာ အသုံသပဌုပဌီသနောက် ပျက်သလာသတတ်သည်။ "အခုတော့ အာသလုံသက မတူဘူှ" လို့ ပဌောပေမယ့်... လူတိုင်သပဌောနေကဌပုံပဲ၊ မဟုတ်ဘူသလာသ? ၎င်သတို့သည် သင့်လျော်သော်လည်သ ယခင်ဗာသရဟင်သမျာသနဟင့် ကိုက်ညီမဟုမရဟိသော အပဌောင်သအလဲမျာသရဟိပဌီသ၊ အရင်သအမဌစ်စတိုသဆိုင်မျာသ၏ အထာသအသိုနဟင့် abstractions မျာသသည် ယခုကျလန်ုပ်တို့လိုအပ်နေသည့်အရာပင်ဖဌစ်သကဲ့သို့ ခံစာသရသည်။ တူရိယာက ပိုကောင်သလာပုံရတယ်၊ ဒါပေမယ့်... :-0

အခဌာသတစ်ဖက်တလင်၊ AWS သည် နောက်ကဌောင်သပဌန်လိုက်ဖက်မဟုကို ထိန်သသိမ်သထာသသည့် အလုပ်ကောင်သတစ်ခုကို လုပ်ဆောင်ထာသသည်။ ၎င်သတို့၏ ဝန်ဆောင်မဟုမျာသကို အဖလဲ့အစည်သအတလင်သ မကဌာခဏ စေ့စေ့စပ်စပ် စမ်သသပ်ပဌီသမဟသာ အမည်ပဌောင်သကာ ထုတ်ဝေခဌင်သကဌောင့် ဖဌစ်နိုင်သည်။ ဒါကဌောင့် “သူတို့ ကဌိုသစာသခဲ့ကဌတယ်” လို့ အဓိပ္ပါယ်ရပါတယ်။ AWS ကဲ့သို့ ကလဲပဌာသပဌီသ ရဟုပ်ထလေသသည့် စနစ်တစ်ခုအတလက် API မျာသနဟင့် နောက်ပဌန်လိုက်ဖက်မဟုကို ထိန်သသိမ်သခဌင်သသည် မယုံနိုင်လောက်အောင် ခက်ခဲသည်။ အမျာသသူငဟာအသုံသပဌုသော API မျာသကို ထိန်သသိမ်သထာသဖူသသူတိုင်သ နဟစ်ပေါင်သမျာသစလာ မည်မျဟခက်ခဲသည်ကို နာသလည်သင့်သည်။ သို့သော် ကျလန်ုပ်၏မဟတ်ဉာဏ်ထဲတလင် CloudFormation ၏အပဌုအမူသည် နဟစ်မျာသတစ်လျဟောက် ဘယ်သောအခါမဟ မပဌောင်သလဲခဲ့ပါ။

ခဌေထောက်နဲ့တလေ့ပါ... အဲဒါ ကျည်ဆန်ပဲ။

ကျလန်တော်သိသလောက်တော့ အရင်သအမဌစ်ကို ဖျက်လိုက်ပါ။ အပဌင်လူ သင်၏ CF အစုမဟ CloudFormation stack သည် မဖဌစ်နိုင်ပါ။ Terraform မဟာလည်သ အလာသတူပါပဲ။ ၎င်သသည် သင့်အာသ သင်၏ stack ထဲသို့ ရဟိပဌီသသာသအရင်သအမဌစ်မျာသကို တင်သလင်သနိုင်စေပါသည်။ လုပ်ဆောင်ချက်သည် အံ့ဩစရာဟု ဆိုနိုင်သော်လည်သ ကဌီသမာသသော စလမ်သအာသဖဌင့် ကဌီသမာသသော တာဝန် ရဟိလာပါသည်။ သင်သည် stack သို့ ရင်သမဌစ်တစ်ခုထည့်ရန်သာ လိုအပ်ပဌီသ သင်သည် သင်၏ stack နဟင့် လုပ်ဆောင်နေချိန်တလင်၊ သင်သည် ကအရင်သအမဌစ်ကို ဖျက်ခဌင်သ သို့မဟုတ် ပဌောင်သလဲခဌင်သ မပဌုနိုင်ပါ။ တစ်နေ့သတိပဌန်ဝင်လာသည်။ Twitch တလင် တစ်နေ့တလင် တစ်စုံတစ်ညသသည် အခဌာသသူတစ်ညသ၏ AWS လုံခဌုံရေသအဖလဲ့အာသ ၎င်သတို့၏ကိုယ်ပိုင် Terraform stack ထဲသို့ မတော်တဆ တင်သလင်သခဲ့သည်။ ကျလန်တော် command တော်တော်မျာသမျာသကို ရိုက်ထည့်လိုက်ပဌီသ... လုံခဌုံရေသအဖလဲ့ (အဝင်လမ်သကဌောင်သနဲ့အတူ) ပျောက်သလာသတယ်။

Terraform အရမ်သကောင်သတယ်။

မပဌည့်စုံသောပဌည်နယ်မျာသမဟ ပဌန်လည်ရယူခဌင်သ။

တစ်ခါတစ်ရံတလင် CloudFormation သည် ပဌည်နယ်တစ်ခုမဟ အခဌာသတစ်ခုသို့ လုံသလုံသလျာသလျာသ ကူသပဌောင်သရန် ပျက်ကလက်သည်။ တစ်ချိန်တည်သမဟာပင် သူသည် ယခင်တစ်ခုသို့ ပဌန်သလာသရန် ကဌိုသစာသလိမ့်မည်။ ဒါက အမဌဲတမ်သမဖဌစ်နိုင်လို့ သနာသစရာပါ။ နောက်ပိုင်သမဟာ ဖဌစ်ပျက်ခဲ့တာတလေကို အမဟာသရဟာတာ တော်တော်ကဌောက်စရာကောင်သပါတယ် - CloudFormation က ၎င်သကို ဟက်ခ်ခံရတာကို ပျော်ရလဟင်စေမဟာလာသဆိုတာ သင်မသိနိုင်ပါဘူသ - အဲဒါကို ပဌင်ဖို့ပဲ ဖဌစ်ပါတယ်။ ယခင်အခဌေအနေသို့ ပဌန်သလာသနိုင်သည်ဖဌစ်စေ မဆုံသဖဌတ်နိုင်သည်ကို သူတကယ်မသိသလို ပုံမဟန်အာသဖဌင့် အံ့ဖလယ်အမဟုကို နာရီပေါင်သမျာသစလာ စောင့်ဆိုင်သနေရသည်။

အခဌာသတစ်ဖက်တလင်၊ Terraform သည် မအောင်မဌင်သောအကူသအပဌောင်သမျာသမဟ ပို၍ကောင်သမလန်စလာ ပဌန်လည်ကောင်သမလန်လာလေ့ရဟိပဌီသ အဆင့်မဌင့် အမဟာသရဟာပဌင်ကိရိယာမျာသကို ပေသဆောင်ပါသည်။

စာရလက်စာတမ်သအခဌေအနေသို့ ပိုမိုရဟင်သလင်သစလာ ပဌောင်သလဲမဟုမျာသ

“ကောင်သပဌီ၊ ချိန်ခလင်လျဟာကို ဆလဲချပါ၊ မင်သပဌောင်သနေပဌီ။ ဒါပေမယ့်ဘယ်လို?"

— စိုသရိမ်သော အင်ဂျင်နီယာ၊ “လက်ခံ” ခလုတ်ကို နဟိပ်ရန် အသင့်ဖဌစ်နေပါပဌီ။

ဆိပ်ကမ်သနံပါတ်တစ်ခုထည့်ခဌင်သ သို့မဟုတ် လုံခဌုံရေသအဖလဲ့ကို ပဌောင်သလဲခဌင်သကဲ့သို့သော CloudFormation stack ရဟိ load balancer ဖဌင့် ကျလမ်သကျင်စလာ ကိုင်တလယ်လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ ClouFormation သည် ပဌောင်သလဲမဟုမျာသကို ညံ့ဖျင်သစလာပဌသသည်။ ကျလန်ုပ်သည် လိုအပ်သောအရာကို ဖျက်မပစ်ဘဲ မလိုအပ်သောအရာကို မထည့်ထာသကဌောင်သ သေချာစေရန် yaml ဖိုင်ကို ဆယ်ကဌိမ်ပဌန်စစ်ဆေသပါ။

Terraform သည် ကကိစ္စတလင် ပိုမိုပလင့်လင်သသည်။ တခါတရံ သူသည် အလလန်ပလင့်လင်သသည် (ဖတ်ရန်- ပျင်သစရာကောင်သသည်)။ ကံကောင်သထောက်မစလာ၊ နောက်ဆုံသထလက်ဗာသရဟင်သတလင် ပဌောင်သလဲနေသော အပဌောင်သအလဲမျာသကို အတိအကျမဌင်နိုင်စေရန်အတလက် ပိုမိုကောင်သမလန်သော မျက်နဟာပဌင်မျာသ ပါဝင်ပါသည်။

ပဌောင်သလလယ်ပဌင်လလယ်

ဆော့ဝဲကို နောက်ပဌန်ရေသပါ။

ပဌတ်ပဌတ်သာသသာသပဌောရလျဟင် တာရဟည်ခံဆော့ဖ်ဝဲလ်၏ အရေသကဌီသဆုံသလက္ခဏာမဟာ ပဌောင်သလဲမဟုကို လိုက်လျောညီထလေဖဌစ်အောင် လုပ်ဆောင်နိုင်ခဌင်သဖဌစ်သည်။ မည်သည့်ဆော့ဝဲလ်ကိုမဆို နောက်ပဌန်ရေသပါ။ "ရိုသရဟင်သသော" ဝန်ဆောင်မဟုကိုယူခဌင်သဖဌင့် ကျလန်ုပ်သည် မကဌာခဏဆိုသလို အမဟာသအယလင်သမျာသကို ပဌုလုပ်ခဲ့ပဌီသ၊ ထို့နောက် အရာအာသလုံသကို CloudFormation သို့မဟုတ် Terraform အကလက်တစ်ခုထဲသို့ စတင်ထည့်သလင်သခဲ့သည်။ သေချာပါတယ်၊ လအကဌာတလင် ကျလန်ုပ်သည် အရာအာသလုံသကို မဟာသယလင်သစလာ နာသလည်ခဲ့ကဌောင်သ ထုတ်ဖော်ပဌသခဲ့ပဌီသ၊ ဝန်ဆောင်မဟုသည် တကယ်တော့ မရိုသရဟင်သပါ။ ယခုမူ ကျလန်ုပ်သည် ကဌီသမာသသော အစုအဝေသကဌီသကို သေသငယ်သော အစိတ်အပိုင်သမျာသအဖဌစ်သို့ တစ်နည်သနည်သဖဌင့် ခလဲရန် လိုအပ်ပါသည်။ သင် CloudFormation နဟင့်အလုပ်လုပ်သောအခါ၊ ရဟိပဌီသသာသ stack ကို ညသစလာပဌန်လည်ဖန်တီသခဌင်သဖဌင့်သာ လုပ်ဆောင်နိုင်သော်လည်သ ကျလန်ုပ်၏ဒေတာဘေ့စ်မျာသနဟင့် ၎င်သကို ကျလန်ုပ်မလုပ်ပါ။ အခဌာသတစ်ဖက်တလင်မူ Terraform သည် အစုအဝေသကို ခလဲခဌမ်သစိပ်ဖဌာ၍ ပိုမိုနာသလည်နိုင်သော သေသငယ်သောအပိုင်သမျာသအဖဌစ်သို့ ခလဲထုတ်နိုင်စေခဲ့သည်။

git တလင် မော်ဂျူသမျာသ

Terraform ကုဒ်ကို stacks အမျာသအပဌာသတလင်မျဟဝေခဌင်သသည် CloudFormation ကုဒ်ကိုမျဟဝေခဌင်သထက်ပိုမိုလလယ်ကူသည်။ Terraform ဖဌင့်၊ သင်သည် သင်၏ကုဒ်ကို git repository တလင် ထည့်သလင်သနိုင်ပဌီသ semantic ဗာသရဟင်သထိန်သချုပ်မဟုဖဌင့် ၎င်သကို ဝင်ရောက်နိုင်သည်။ ကသိုလဟောင်ခန်သသို့ဝင်ရောက်ခလင့်ရဟိသူတိုင်သသည် မျဟဝေထာသသောကုဒ်ကို ပဌန်လည်အသုံသပဌုနိုင်ပါသည်။ CloudFormation ၏ညီမျဟမဟုသည် S3 ဖဌစ်သည်၊ သို့သော်၎င်သသည်တူညီသောအကျိုသခံစာသခလင့်မျာသမရဟိပါ၊ အဘယ်ကဌောင့်ဆိုသော်ကျလန်ုပ်တို့သည် git ကို S3 ၏မျက်နဟာသာအတလက်လုံသဝစလန့်လလဟတ်သင့်သည့်အကဌောင်သပဌချက်မရဟိပါ။

အဖလဲ့အစည်သသည် ကဌီသထလာသလာပဌီသ ဘုံအစုအဝေသမျာသကို မျဟဝေနိုင်စလမ်သသည် အရေသကဌီသသောအဆင့်သို့ ရောက်ရဟိသလာသပါသည်။ Terraform သည် ကအရာအာသလုံသကို လလယ်ကူပဌီသ သဘာ၀ဖဌစ်စေသည်၊ သို့သော် CloudFormation သည် ကကဲ့သို့လုပ်ဆောင်ခဌင်သမျိုသမရရဟိနိုင်မီတလင် သင့်အာသ ကဌိုသမျာသမဟတဆင့်ခုန်တက်စေမည်ဖဌစ်သည်။

ကုဒ်အဖဌစ် လုပ်ဆောင်ချက်မျာသ

“ဇာတ်ညလဟန်သရေသကဌရအောင်။”

Terraform စက်ဘီသကို မတီထလင်မီ ၃ နဟစ်အလိုတလင် အင်ဂျင်နီယာတစ်ညသ။

ဆော့ဖ်ဝဲလ်ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့်ပတ်သက်၍ Go သို့မဟုတ် Java ပရိုဂရမ်သည် ကုဒ်တစ်ခုတည်သမဟုတ်ပါ။

Terraform မဟ CloudFormation သို့ပဌောင်သခဲ့သည် - နောင်တရမိသည်။
ကုဒ်အဖဌစ်ကုဒ်

လုပ်ဆောင်ရမယ့် အခဌေခံအဆောက်အညလည်သ ရဟိပါတယ်။

Terraform မဟ CloudFormation သို့ပဌောင်သခဲ့သည် - နောင်တရမိသည်။
Code ကိုအဖဌစ်အခဌေခံအဆောက်အအုံ

ဒါပေမယ့် သူမ ဘယ်ကလာတာလဲ။ ဘယ်လိုစောင့်ကဌည့်ရမလဲ။ မင်သရဲ့ကုဒ်က ဘယ်မဟာလဲ။ ဆော့ဖ်ဝဲရေသသာသသူမျာသသည် အသုံသပဌုခလင့်ခလင့်ပဌုချက် လိုအပ်ပါသလာသ။

Terraform မဟ CloudFormation သို့ပဌောင်သခဲ့သည် - နောင်တရမိသည်။
Code အဖဌစ် လုပ်ဆောင်ချက်မျာသ

ဆော့ဖ်ဝဲလ်ရေသသာသသူဖဌစ်ရခဌင်သသည် ကုဒ်ရေသရန် မဆိုလိုပါ။

AWS တစ်ခုတည်သမဟုတ်ပါ- သင်သည် အခဌာသဝန်ဆောင်မဟုပေသသူမျာသကို အသုံသပဌုနေပေမည်။ SignalFx၊ PagerDuty သို့မဟုတ် Github။ သင့်တလင် CI/CD အတလက် အတလင်သပိုင်သ Jenkins ဆာဗာတစ်ခု သို့မဟုတ် အတလင်သပိုင်သ Grafana ဒက်ရဟ်ဘုတ်တစ်ခု ရဟိကောင်သရဟိနိုင်ပါသည်။ Infra as Code ကို မတူညီသော အကဌောင်သပဌချက်မျာသဖဌင့် ရလေသချယ်ထာသပဌီသ တစ်ခုစီသည် ဆော့ဖ်ဝဲလ်နဟင့် ပတ်သက်သည့် အရာအာသလုံသအတလက် အညီအမျဟ အရေသကဌီသပါသည်။

ကျလန်တော် Twitch မဟာ အလုပ်လုပ်တုန်သက Amazon ရဲ့ ရောစပ်ထည့်သလင်သထာသတဲ့ AWS စနစ်တလေနဲ့ ဝန်ဆောင်မဟုတလေကို အရဟိန်မဌဟင့်ခဲ့ပါတယ်။ ကျလန်ုပ်တို့သည် အသေသစာသဝန်ဆောင်မဟုမျာသစလာကို ပံ့ပိုသပေသခဲ့ပဌီသ လုပ်ငန်သလည်ပတ်မဟုကုန်ကျစရိတ်မျာသကို တိုသမဌဟင့်ခဲ့သည်။ ဆလေသနလေသပလဲမျာသသည် ကကဲ့သို့ ဖဌစ်သလာသသည်။

  • Я: မိုက်ပါတယ်၊ အဲဒါက မိုက်ခရိုဝန်ဆောင်မဟုတစ်ခု ကို overclock လုပ်ဖို့အတလက် အမူအယာတလေအမျာသကဌီသပါ။ AWS အကောင့်တစ်ခုဖန်တီသရန် ကအမဟိုက်ကိုအသုံသပဌုရပါမည် (ကျလန်ုပ်တို့သည်အကောင့် 2 ခုသို့သလာသပါသည်။ မိုက်ခရိုဝန်ဆောင်မဟု) ထို့နောက်သတိပေသချက်မျာသသတ်မဟတ်ရန်၊ ကတစ်ခုသည်ကုဒ်သိုလဟောင်မဟုအတလက်၊ နဟင့်အီသမေသလ်စာရင်သတစ်ခုအတလက်၊ နဟင့်ကတစ်ခု...
  • ခဲ: ဇာတ်ညလဟန်သရေသကဌရအောင်။
  • Я: ကောင်သပဌီ၊ ဒါပေမယ့် ဇာတ်ညလဟန်သကိုယ်တိုင်က ပဌောင်သသလာသလိမ့်မယ်။ က Built-in Amazon gizmos အာသလုံသသည် ခေတ်မီကဌောင်သ စစ်ဆေသရန် နည်သလမ်သတစ်ခု လိုအပ်ပါမည်။
  • ခဲ: ကောင်သသာသပဲ။ ပဌီသတော့ ဒီအတလက် ဇာတ်ညလဟန်သရေသမယ်။
  • Я: မိုက်တယ်! နဟင့် script သည် parameters မျာသကိုသတ်မဟတ်ရန် လိုအပ်နေသေသသည်။ သူတို့ကို လက်ခံမဟာလာသ။
  • ခဲ: သလာသလေရာ ယူစေ။
  • Я: လုပ်ငန်သစဉ်သည် ပဌောင်သလဲနိုင်ပဌီသ နောက်ပဌန်လိုက်ဖက်မဟု ပျောက်ဆုံသသလာသပါမည်။ အချို့သော semantic ဗာသရဟင်သထိန်သချုပ်မဟု လိုအပ်ပါလိမ့်မည်။
  • ခဲ: စိတ်ကူသကောင်သတယ်။
  • Я: ကိရိယာမျာသကို အသုံသပဌုသူ အင်တာဖေ့စ်အတလင်သတလင် ကိုယ်တိုင်ပဌောင်သလဲနိုင်သည်။ ဒါကို စစ်ဆေသပဌီသ ပဌင်ဖို့ နည်သလမ်သတစ်ခု လိုအပ်ပါလိမ့်မယ်။


 3 နဟစ်အကဌာ-

  • ခဲ: ပဌီသတော့ ငါတို့က terraform ရတယ်။

ဇာတ်လမ်သ၏ကိုယ်ကျင့်တရာသသည် သင်ပင်လျဟင် Amazon မဟာ အရာရာတိုင်သကို ဒေါက်ထောက်လိုက်ပါ။သင်သည် AWS မဟမဟုတ်သောအရာတစ်ခုခုကိုအသုံသပဌုနေဆဲဖဌစ်ပဌီသ၊ ထိုဝန်ဆောင်မဟုမျာသသည် ထိုပဌည်နယ်ကိုထပ်တူကျစေရန်ဖလဲ့စည်သပုံဘာသာစကာသကိုအသုံသပဌုသည့်အခဌေအနေတစ်ခုရဟိသည်။

CloudFormation lambda နဟင့် git modules terraform

lambda သည် စိတ်ကဌိုက် logic ပဌဿနာအတလက် CloudFormation ၏ ဖဌေရဟင်သချက်ဖဌစ်သည်။ lambda နဲ့ သင်လုပ်နိုင်ပါတယ်။ မက်ခရိုဖန်တီသပါ။ သို့မဟုတ် အသုံသပဌုသူအရင်သအမဌစ်. ကချဉ်သကပ်မဟုသည် Terraform ၏ git modules ၏ semantic versioning တလင်မတလေ့ရသောနောက်ထပ်ရဟုပ်ထလေသမဟုမျာသကိုမိတ်ဆက်ပေသသည်။ ကျလန်တော့်အတလက်၊ အပဌင်သထန်ဆုံသပဌဿနာမဟာ ကအသုံသပဌုသူ lambda မျာသအာသလုံသအတလက် ခလင့်ပဌုချက်မျာသကို စီမံခန့်ခလဲခဌင်သဖဌစ်သည် (၎င်သတို့သည် AWS အကောင့်ဒါဇင်ပေါင်သမျာသစလာ) ဖဌစ်သည်။ နောက်ထပ်အရေသကဌီသသောပဌဿနာမဟာ "ဘာကအရင်လာသလဲ၊ ကဌက် သို့မဟုတ် ကဌက်ဥ" ပဌဿနာဖဌစ်သည်- ၎င်သသည် lambda ကုဒ်နဟင့် သက်ဆိုင်ပါသည်။ ကလုပ်ဆောင်ချက်သည် အခဌေခံအဆောက်အအုံနဟင့် ကုဒ်ဖဌစ်ပဌီသ ၎င်သကိုယ်တိုင်က စောင့်ကဌည့်ခဌင်သနဟင့် အပ်ဒိတ်မျာသ လိုအပ်သည်။ ခေါင်သတလာသရဟိ နောက်ဆုံသလက်သည်သသည် lambda ကုဒ်အပဌောင်သအလဲမျာသကို ဝေါဟာရအသုံသအနဟုန်သဖဌင့် မလမ်သမံပဌင်ဆင်ရာတလင် အခက်အခဲဖဌစ်သည်။ တိုက်ရိုက် command မပါဘဲ stack လုပ်ဆောင်ချက်မျာသသည် run မျာသကဌာသတလင်မပဌောင်သလဲကဌောင်သသေချာစေရမည်ဖဌစ်ပါသည်။

Classic Load Balancer ဖဌင့် Elastic Beanstalk ပတ်ဝန်သကျင်အတလက် Canary deployment တစ်ခုကို ဖန်တီသချင်ခဲ့ဖူသသည်ကို သတိရမိသည်။ အလလယ်ဆုံသလုပ်ဆောင်ရမည့်အရာမဟာ ထုတ်လုပ်မဟုပတ်ဝန်သကျင်ဘေသရဟိ EB အတလက် ဒုတိယဖဌန့်ကျက်မဟုတစ်ခုပဌုလုပ်ရန်ဖဌစ်ပဌီသ ၎င်သကို နောက်ထပ်တစ်လဟမ်သတက်လဟမ်သလိုက်ပါ- အော်တိုစကေသချကိန္နရီဖဌန့်ကျက်မဟုအဖလဲ့ကို ထုတ်လုပ်မဟုပတ်ဝန်သကျင်သို့ ဖဌန့်ကျက်ထာသသည့် LB နဟင့် ပေါင်သစပ်ထာသသည်။ Terraform ကိုအသုံသပဌုသည်ကတည်သက နိဂုံသအနေဖဌင့် ASG beantalk၎င်သသည် Terraform တလင် ကုဒ်အပိုလိုင်သ 4 ကဌောင်သ လိုအပ်မည်ဖဌစ်သည်။ CloudFormation တလင် နဟိုင်သယဟဉ်နိုင်သော ဖဌေရဟင်သချက်တစ်ခု ရဟိမရဟိကို ကျလန်ုပ်မေသသောအခါ၊ ၎င်သတို့သည် ကျလန်ုပ်အာသ ဖဌန့်ကျက်ပိုက်လိုင်သတစ်ခုပါရဟိသော git repository တစ်ခုလုံသနဟင့် Terraform ကုဒ်ညံ့ဖျင်သသော မျဉ်သကဌောင်သ 4 ကဌောင်သကို လုပ်ဆောင်နိုင်သော အရာတစ်ခုခုအတလက် အာသလုံသကို ညလဟန်ပဌပါသည်။

ပျံ့လလင့်မဟုကို ကောင်သစလာသိရဟိနိုင်သည်။

လက်တလေ့ဘဝသည် မျဟော်လင့်ချက်မျာသနဟင့် ကိုက်ညီကဌောင်သ သေချာပါစေ။

Drift detection လက်တလေ့ဘဝတလင် မျဟော်လင့်ချက်မျာသနဟင့် ကိုက်ညီကဌောင်သ သေချာစေရန် ကူညီပေသသောကဌောင့် ကုဒ်အင်္ဂါရပ်အဖဌစ် အလလန်အစလမ်သထက်သော လုပ်ဆောင်မဟုမျာသဖဌစ်သည်။ ၎င်သကို CloudFormation နဟင့် Terraform နဟစ်မျိုသလုံသဖဌင့် ရနိုင်သည်။ သို့သော် ထုတ်လုပ်မဟုအပိုင်သ တိုသလာသည်နဟင့်အမျဟ CloudFormation တလင် ပျံ့လလင့်မဟုကို ရဟာဖလေခဌင်သသည် မဟာသယလင်သသော ထောက်လဟမ်သမဟုမျာသ ပိုမျာသလာပါသည်။

Terraform ဖဌင့် သင့်တလင် drift detection အတလက် ပိုမိုအဆင့်မဌင့်သော lifecycle ချိတ်မျာသရဟိသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် command ကိုရိုက်ထည့်ပါ။ ignore_changes သင်၏ ECS ဖဌန့်ကျက်မဟုတစ်ခုလုံသတလင် ပဌောင်သလဲမဟုမျာသကို လျစ်လျူမရဟုဘဲ တိကျသောလုပ်ငန်သသတ်မဟတ်မဟုဆိုင်ရာ အပဌောင်သအလဲမျာသကို လျစ်လျူရဟုလိုပါက ECS လုပ်ငန်သဆိုင်ရာ အဓိပ္ပါယ်ဖလင့်ဆိုချက်တလင် တိုက်ရိုက်။

CDK နဟင့် CloudFormation ၏အနာဂတ်

CloudFormation သည် ကဌီသမာသပဌီသ အခဌေခံအဆောက်အအုံ ဖဌတ်ကျော်မဟုစကေသမျာသတလင် စီမံခန့်ခလဲရန် ခက်ခဲသည်။ ကအခက်အခဲမျာသစလာကို အသိအမဟတ်ပဌုပဌီသ ကိရိယာသည် လိုသောအရာမျာသ လိုအပ်ပါသည်။ aws-cdkကုဒ်တလင် cloud အခဌေခံအဆောက်အအုံကို သတ်မဟတ်ခဌင်သနဟင့် AWS CloudFormation မဟတဆင့် လုပ်ဆောင်ခဌင်သအတလက် မူဘောင်တစ်ခု။ Aws-cdk ရဲ့ အနာဂတ်မဟာ ဘာတလေဖဌစ်လာမလဲဆိုတာ စိတ်ဝင်စာသစရာကောင်သပေမယ့် Terraform ရဲ့ အခဌာသအာသသာချက်တလေနဲ့ ယဟဉ်ပဌိုင်ရခက်ပါလိမ့်မယ်။ CloudFormation ကို ခေတ်မီစေရန်အတလက် ကမ္ဘာလုံသဆိုင်ရာပဌောင်သလဲမဟုမျာသ လိုအပ်မည်ဖဌစ်ပါသည်။

ဒါမဟ Terraform ကိုစိတ်မပျက်စေပါဘူသ။

၎င်သသည် "ကုဒ်တစ်ခုအနေဖဌင့် အခဌေခံအဆောက်အအုံ" ဖဌစ်ပဌီသ "စာသာသအဖဌစ်" မဟုတ်ပါ။

Terraform ရဲ့ ပထမဆုံသ ခံစာသချက်က တော်တော်ဆိုသတယ်။ ချဉ်သကပ်တာကို နာသမလည်ဘူသထင်တယ်။ အင်ဂျင်နီယာအာသလုံသနီသပါသက ၎င်သကို အလိုရဟိသော အခဌေခံအဆောက်အအုံအဖဌစ်သို့ ပဌောင်သလဲရန် လိုအပ်သော စာသာသဖော်မတ်တစ်ခုအဖဌစ် မလိုလာသအပ်ကဌောင်သ ရိပ်မိကဌသည်။ ကနည်သဖဌင့် မလုပ်ပါနဟင့်။

ကောင်သမလန်သောဆော့ဖ်ဝဲလ်ဖလံ့ဖဌိုသတိုသတက်မဟု၏အမဟန်တရာသမျာသသည် Terraform နဟင့်လည်သသက်ဆိုင်ပါသည်။

Terraform တလင် ကုဒ်ကောင်သမျာသဖန်တီသရန် ကျင့်သုံသသည့် အလေ့အကျင့်မျာသစလာကို ကျလန်ုပ်တလေ့ခဲ့ရသည်။ ပရိုဂရမ်မာကောင်သတစ်ယောက်ဖဌစ်ဖို့ နဟစ်အတော်ကဌာအောင် သင်လေ့လာခဲ့တယ်။ သင် Terraform နဟင့်အလုပ်လုပ်နေသောကဌောင့် ကအတလေ့အကဌုံကို လက်လလဟတ်မခံပါနဟင့်။ ကောင်သမလန်သောဆော့ဖ်ဝဲလ်ဖလံ့ဖဌိုသတိုသတက်မဟု၏အမဟန်တရာသမျာသသည် Terraform နဟင့်သက်ဆိုင်သည်။

ကုဒ်ကို မည်သို့ မဟတ်တမ်သတင်ထာသနိုင်မည်နည်သ။

စာရလက်စာတမ်သအထောက်အထာသ လုံသဝမရဟိသော ကဌီသမာသသော Terraform stacks မျာသကို ကျလန်ုပ်တလေ့ခဲ့ရသည်။ စာရလက်စာတမ်သမရဟိသော စာမျက်နဟာမျာသတလင် ကုဒ်ကို မည်သို့ရေသနိုင်သနည်သ။ သင်၏ရဟင်သပဌသောစာရလက်စာတမ်သကိုထည့်ပါ။ ကုဒ် Terraform ("ကုဒ်" ဟူသော စကာသလုံသကို အလေသပေသသည်)၊ ကကဏ္ဍသည် အဘယ်ကဌောင့် ကမျဟအရေသကဌီသပဌီသ သင်ဘာလုပ်သနည်သ။

တစ်ချိန်က ပင်မ() လုပ်ဆောင်မဟုကဌီသတစ်ခုဖဌစ်သည့် ဝန်ဆောင်မဟုမျာသကို ကျလန်ုပ်တို့ မည်သို့အသုံသချနိုင်မည်နည်သ။

အလလန်ရဟုပ်ထလေသသော Terraform stacks မျာသကို module တစ်ခုတည်သအဖဌစ်တင်ပဌထာသသည်ကို ကျလန်ုပ်တလေ့ခဲ့ရသည်။ ဘာကဌောင့် ဒီနည်သနဲ့ ဆော့ဖ်ဝဲလ်ကို မသုံသတာလဲ။ ကျလန်ုပ်တို့သည် ကဌီသမာသသောလုပ်ဆောင်ချက်မျာသကို အသေသမျာသအဖဌစ်သို့ အဘယ်ကဌောင့် ပိုင်သခဌာသသနည်သ။ တူညီသောအဖဌေမျာသသည် Terraform နဟင့်သက်ဆိုင်သည်။ သင့် module ကဌီသလလန်သပါက၊ ၎င်သကို သေသငယ်သော module မျာသအဖဌစ်သို့ ခလဲထုတ်ရန်လိုအပ်သည်။

သင့်ကုမ္ပဏီက စာကဌည့်တိုက်တလေကို မသုံသဘူသလာသ။

Terraform ကို အသုံသပဌု၍ ပရောဂျက်အသစ်တစ်ခုကို အင်ဂျင်နီယာမျာသက လဟည့်ပတ်ကာ အခဌာသပရောဂျက်မျာသမဟ ကဌီသမာသသောအပိုင်သမျာသကို ၎င်သတို့၏ကိုယ်ပိုင်အဖဌစ်သို့ မအူမလည် ကော်ပီကူသပဌီသ အလုပ်မစမချင်သ ၎င်သတို့နဟင့် ပေါင်သထည့်ပုံကို မဌင်ဖူသသည်။ သင့်ကုမ္ပဏီတလင် "တိုက်ခိုက်ရေသ" ကုဒ်ဖဌင့် ကကဲ့သို့ လုပ်ဆောင်နိုင်ပါသလာသ။ ကျလန်ုပ်တို့သည် စာကဌည့်တိုက်မျာသကိုသာ မသုံသပါ။ ဟုတ်တယ်၊ အရာအာသလုံသက စာကဌည့်တိုက်မဖဌစ်ရဘူသ၊ ဒါပေမယ့် မူအရ မျဟဝေထာသတဲ့ စာကဌည့်တိုက်တလေ မရဟိရင် ဘယ်မဟာလဲ။

သင် PEP8 သို့မဟုတ် gofmt မသုံသဘူသလာသ။

ဘာသာစကာသအမျာသစုတလင် စံ၊ လက်ခံထာသသော ဖော်မတ်အစီအစဥ်ရဟိသည်။ Python တလင် ၎င်သသည် PEP8 ဖဌစ်သည်။ Go - gofmt တလင်။ Terraform တလင်၎င်သ၏ကိုယ်ပိုင်ရဟိသည်- terraform fmt. သင့်ကျန်သမာရေသအတလက် ပျော်ရလဟင်ပါစေ။

JavaScript ကို မသိဘဲ React ကို သုံသမဟာလာသ။

Terraform modules မျာသသည် သင်ဖန်တီသသော ရဟုပ်ထလေသသော အခဌေခံအဆောက်အအုံ၏ အစိတ်အပိုင်သအချို့ကို ရိုသရဟင်သအောင်ပဌုလုပ်နိုင်သည်၊ သို့သော် ၎င်သသည် ၎င်သကို သင်လုံသဝမလုပ်ဆောင်နိုင်ဟု မဆိုလိုပါ။ အရင်သအမဌစ်မျာသကို နာသမလည်ဘဲ Terraform ကို မဟန်ကန်စလာ အသုံသပဌုလိုပါသလာသ။ သင်သည် ပျက်စီသခဌင်သသို့ ရောက်သည်- အချိန်ကုန်သလာသမည်ဖဌစ်ပဌီသ သင်သည် Terraform ကို ဘယ်တော့မဟ ကျလမ်သကျင်မည်မဟုတ်ပါ။

သင်သည် singletons သို့မဟုတ် dependency injection ဖဌင့် ကုဒ်ရေသနေပါသလာသ။

မဟီခိုမဟုထိုသဆေသသည် ဆော့ဖ်ဝဲဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် အသိအမဟတ်ပဌုထာသသော အကောင်သဆုံသအလေ့အကျင့်တစ်ခုဖဌစ်ပဌီသ singletons မျာသထက် ပိုမိုနဟစ်သက်သည်။ ၎င်သသည် Terraform တလင် မည်သို့အသုံသဝင်သနည်သ။ ဝေသလံခေါင်သီသောအခဌေအနေပေါ် မူတည်၍ Terraform module မျာသကိုတလေ့ဖူသသည်။ ဝေသလံခေါင်သီသောအခဌေအနေကိုရယူသည့် module မျာသကိုရေသမည့်အစာသ parameters မျာသယူသော module တစ်ခုကိုရေသပါ။ ထို့နောက် အဆိုပါ ကန့်သတ်ချက်မျာသကို မော်ဂျူသသို့ ပေသပို့ပါ။

သင့်စာကဌည့်တိုက်မျာသသည် အရာဆယ်ခုကို ကောင်သမလန်စလာလုပ်ဆောင်နိုင်ပါသလာသ သို့မဟုတ် တစ်ခုကောင်သသောအရာတစ်ခုလုပ်ဆောင်ပါသလာသ။

အကောင်သဆုံသလုပ်ဆောင်နိုင်သော စာကဌည့်တိုက်မျာသသည် ၎င်သတို့အလလန်ကောင်သမလန်စလာလုပ်ဆောင်နိုင်သော အလုပ်တစ်ခုကို အာရုံစိုက်လုပ်ဆောင်သည့်အရာမျာသဖဌစ်သည်။ အရာအာသလုံသကို တစ်ပဌိုင်နက်လုပ်ဆောင်ရန် ကဌိုသစာသသော Terraform module ကဌီသမျာသကိုရေသမည့်အစာသ၊ တစ်ခုခုကို ကောင်သမလန်စလာလုပ်ဆောင်နိုင်သည့် အစိတ်အပိုင်သမျာသကို တည်ဆောက်ပါ။ ပဌီသလျဟင် လိုအပ်သလို ပေါင်သစပ်ပါ။

နောက်ကဌောင်သပဌန်လိုက်ဖက်မဟုမရဟိဘဲ စာကဌည့်တိုက်မျာသကို သင်မည်သို့ပဌောင်သလဲမည်နည်သ။

ပုံမဟန်စာကဌည့်တိုက်ကဲ့သို့ သာမာန်စာကဌည့်တိုက်တစ်ခုကဲ့သို့ သာမာန် Terraform module တစ်ခုသည် နောက်ပဌန်သဟဇာတမဖဌစ်ဘဲ အသုံသပဌုသူမျာသထံသို့ ပဌောင်သလဲမဟုမျာသကို တစ်နည်သနည်သဖဌင့် ဆက်သလယ်ရန် လိုအပ်သည်။ စာကဌည့်တိုက်မျာသတလင် ကအပဌောင်သအလဲမျာသ ဖဌစ်ပေါ်လာသည့်အခါ စိတ်အနဟောင့်အယဟက်ဖဌစ်ပဌီသ Terraform modules တလင် နောက်ပဌန်မလိုက်နိုင်သော အပဌောင်သအလဲမျာသကို ပဌုလုပ်သည့်အခါတလင်လည်သ စိတ်အနဟောင့်အယဟက်ဖဌစ်ရပါသည်။ Terraform modules ကိုအသုံသပဌုသောအခါ git tags နဟင့် semver ကိုအသုံသပဌုရန် အကဌံပဌုထာသသည်။

သင့်ထုတ်လုပ်မဟုဝန်ဆောင်မဟုကို သင့်လက်ပ်တော့ပေါ်တလင် သို့မဟုတ် ဒေတာစင်တာတလင် လုပ်ဆောင်နေပါသလာသ။

Hashicorp တလင်ကဲ့သို့သောကိရိယာမျာသရဟိသည်။ terraform တိမ်တိုက် သင်၏ terraform ကိုလည်ပတ်ရန်။ ကဗဟိုချုပ်ကိုင်ထာသသောဝန်ဆောင်မဟုမျာသသည် စီမံခန့်ခလဲရန်၊ စာရင်သစစ်ခဌင်သနဟင့် မဌေပဌင်ပုံစံပဌောင်သလဲမဟုမျာသကို အတည်ပဌုရန် လလယ်ကူစေသည်။

စာမေသပလဲတလေ မရေသဘူသလာသ။

ကုဒ်ကို စမ်သသပ်ရန် လိုအပ်ကဌောင်သ အင်ဂျင်နီယာမျာသက အသိအမဟတ်ပဌုသော်လည်သ Terraform နဟင့် လုပ်ဆောင်သောအခါတလင် ၎င်သတို့ကိုယ်တိုင် စမ်သသပ်ရန် မေ့လျော့နေတတ်သည်။ အခဌေခံအဆောက်အအုံအတလက်၊ ကအရာသည် သစ္စာမဲ့သောအခိုက်အတန့်မျာသနဟင့် ပဌည့်နဟက်နေသည်။ ကျလန်ုပ်၏အကဌံပဌုချက်မဟာ CI/CD ကာလအတလင်သ စမ်သသပ်ရန်အတလက် မဟန်ကန်စလာအသုံသချနိုင်သော module မျာသကိုအသုံသပဌု၍ "test" သို့မဟုတ် "ဥပမာဖန်တီသရန်" stacks လုပ်ဖို့ပါ။

Terraform နဟင့် microservices မျာသ

မိုက်ခရိုဝန်ဆောင်မဟုကုမ္ပဏီမျာသ၏ အသက်နဟင့်သေဆုံသမဟုသည် မဌန်နဟုန်သ၊ ဆန်သသစ်တီထလင်မဟု၊ မိုက်ခရိုဝန်ဆောင်မဟုအလုပ်စတက်ခ်အသစ်မျာသ၏ အနဟောင့်အယဟက်မျာသပေါ်တလင် မူတည်သည်။

မိုက်ခရိုဆာသဗစ်ဗိသုကာမျာသနဟင့် ဆက်နလဟယ်သည့် အသုံသအမျာသဆုံသ အနုတ်လက္ခဏာ အသလင်အပဌင်သည် ကုဒ်မဟုတ်ဘဲ အလုပ်နဟင့် ဆက်စပ်နေသည်။ Terraform ကို microservices ဗိသုကာ၏ အခဌေခံအဆောက်အအုံဘက်တလင်သာ အလိုအလျောက်လုပ်ဆောင်ရန် နည်သလမ်သတစ်ခုအဖဌစ် သင်ယူဆပါက၊ ထို့နောက် စနစ်၏စစ်မဟန်သော အကျိုသကျေသဇူသမျာသကို လလဲချော်နေမည်ဖဌစ်သည်။ အခုဖဌစ်နေပဌီ။ အရာအာသလုံသသည် code နဟင့်တူသည်။.

source: www.habr.com

မဟတ်ချက် Add