အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

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

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

Github ရဟိ AWS အတလက် Terraform community modules အစုအဝေသကို သုံသနဟစ်ကဌာ စီမံခန့်ခလဲပဌီသနောက်၊ ထုတ်လုပ်ရေသတလင် Terraform ကို ရေရဟည်ထိန်သသိမ်သမဟုပဌုလုပ်ပဌီသနောက် Anton Babenko သည် ၎င်သ၏အတလေ့အကဌုံကို မျဟဝေရန် အသင့်ရဟိနေပါသည်- အနာဂတ်တလင် မထိခိုက်စေရန် TF module မျာသကို မည်သို့ရေသရမည်နည်သ။

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

မသက်ဆိုင်ကဌောင်သရဟင်သလင်သချက်: ကအစီရင်ခံစာသည် 2018 ခုနဟစ် နိုဝင်ဘာလ ရက်စလဲပါ — 2 နဟစ်ကျော်သလာသပဌီဖဌစ်ကဌောင်သ ကျလန်ုပ် သတိပဌုမိပါသည်။ အစီရင်ခံစာတလင် ဆလေသနလေသထာသသော Terraform 0.11 ဗာသရဟင်သကို ပံ့ပိုသမပေသတော့ပါ။ ပဌီသခဲ့သော 2 နဟစ်အတလင်သ ဖဌန့်ချိမဟုအသစ် 2 ခုကို ထုတ်ဝေခဲ့ပဌီသ၊ ဆန်သသစ်မဟု၊ မဌဟင့်တင်မဟုမျာသနဟင့် အပဌောင်သအလဲမျာသစလာ ပါဝင်ပါသည်။ ဒါကို အာရုံစိုက်ပဌီသ စာရလက်စာတမ်သတလေကို စစ်ဆေသပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

လင့်ခ်မျာသ

  • terraform-community-modules + terraform-aws-modules
  • antonbabenko/pre-commit-terraform — အလိုအလျောက်ဖော်မတ်ကုဒ်နဟင့် စာရလက်စာတမ်သမျာသ
  • antonbabenko/terrapin - Terraform modules (WIP) ၏ generator
  • antonbabenko/modules.tf-lambda - ရုပ်ပုံကာသချပ်မျာသ (WIP) မဟ Terraform ကုဒ်မီသစက်
  • www.terraform-best-practices.com
  • medium.com/@anton.babenko (ပို့စ်အသစ်မျာသသည် ကျလန်ုပ်၏ကိုယ်ပိုင်ဝဘ်ဆိုဒ် www.antonbabenko.com/ တလင်ဖဌစ်သည်)
  • @antonbabenko - Twitter နဟင့် မတူညီသော Slacks မျာသ

ကျလန်တော့်နာမည်က Anton Babenko ပါ။ တစ်ချို့က ကျလန်တော်ရေသထာသတဲ့ ကုဒ်ကို သုံသဖူသတယ်။ ကျလန်ုပ်သည် ကိန်သဂဏန်သစာရင်သအင်သမျာသကို တတ်နိုင်သောကဌောင့် ယခု ကအကဌောင်သကို ယခင်ကထက် ပိုမိုယုံကဌည်စလာ ပဌောဆိုပါမည်။

ကျလန်ုပ်သည် Terraform တလင်အလုပ်လုပ်ပဌီသ Terraform နဟင့် Amazon နဟင့် ဆက်စပ်သော open source ပရောဂျက်အမျာသအပဌာသတလင် တက်ကဌလစလာပါဝင်သူဖဌစ်ပဌီသ 2015 ခုနဟစ်ကတည်သက ပါဝင်ခဲ့ပါသည်။

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

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

အချိန်ကဌာလာသည်နဟင့်အမျဟ ကျလန်ုပ်သည် Terraform modules မျာသကို စတင်ရေသသာသခဲ့သည်။ သုံသစလဲသူတလေက မေသခလန်သတလေ ရေသတယ်၊ ကျလန်တော်က သူတို့ကို ပဌန်ရေသတယ်။ ထို့နောက် pre-commit hook စသည်တို့ကို အသုံသပဌု၍ code ကို format လုပ်ရန် utilities အမျိုသမျိုသကို ရေသသာသခဲ့သည်။

စိတ်ဝင်စာသစရာကောင်သတဲ့ ပရောဂျက်တလေ အမျာသကဌီသရဟိခဲ့တယ်။ ကျလန်ုပ်နဟင့် ပရိုဂရမ်မာမျာသအတလက် ကလန်ပဌူတာအာသ ပို၍ပို၍ အလုပ်ပိုလုပ်ရသည်ကို နဟစ်သက်သောကဌောင့် ကုဒ်ထုတ်လုပ်ခဌင်သကို နဟစ်သက်သည်၊ ထို့ကဌောင့် လက်ရဟိတလင် မဌင်သာသည့်ပုံချပ်မျာသမဟ Terraform code generator တလင် အလုပ်လုပ်နေပါသည်။ သင်တို့တလင် အချို့သောသူတို့ကို မဌင်ဖူသကဌလိမ့်မည်။ ကအရာမျာသသည် မဌဟာသမျာသဖဌင့် လဟပသောသေတ္တာမျာသဖဌစ်သည်။ “Export” ခလုတ်ကို နဟိပ်ပဌီသ ကုဒ်အဖဌစ် အာသလုံသယူနိုင်ရင် ကောင်သမယ်ထင်တယ်။

ကျလန်တော်က ယူကရိန်သကပါ။ နော်ဝေသမဟာ နဟစ်အတော်ကဌာနေခဲ့တယ်။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

https://github.com/terraform-aws-modules
https://registry.terraform.io/namespaces/terraform-aws-modules

ကျလန်ုပ်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ ကျလန်ုပ်သည် အသုံသအမျာသဆုံသအလုပ်မျာသအတလက် GitHub တလင်အကဌီသဆုံသသိုလဟောင်ရာတစ်ခုဖဌစ်သည့် Terraform AWS modules ၏အဓိကထိန်သသိမ်သသူဖဌစ်သည်- VPC၊ Autoscaling၊ RDS။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Terraform သည် သင့်အာသ ကုဒ်အဖဌစ် ရေသသာသရန်၊ စီစဉ်စီမံရန်နဟင့် စီမံရန်ခလင့်ပဌုသည့် အသုံသဝင်မဟုတစ်ခုအဖဌစ် 2014 ခုနဟစ်တလင် ပေါ်လာခဲ့သည်။ ကနေရာတလင် အဓိက အယူအဆမဟာ “အခဌေခံအဆောက်အအုံကို ကုဒ်အဖဌစ်” ဖဌစ်သည်။

ကျလန်တော်ပဌောခဲ့သလိုပဲ စာရလက်စာတမ်သတလေအာသလုံသကို ရေသထာသတယ်။ terraform.io. လူအမျာသစုက ဒီဆိုက်အကဌောင်သ သိပဌီသ စာရလက်စာတမ်သတလေကို ဖတ်ဖူသမယ်လို့ မျဟော်လင့်ပါတယ်။ သို့ဆိုလျဟင် သင်သည် မဟန်ကန်သောနေရာ၌ ရဟိနေပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကသည်မဟာ ပုံမဟန် Terraform configuration file နဟင့်တူသည်၊ အချို့သော variable မျာသကို ညသစလာသတ်မဟတ်ပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကကိစ္စတလင်ကျလန်ုပ်တို့သည် "aws_region" ကိုသတ်မဟတ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထို့နောက် ကျလန်ုပ်တို့ ဖန်တီသလိုသော အရင်သအမဌစ်မျာသကို ဖော်ပဌပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကျလန်ုပ်တို့သည် မဟီခိုမဟုနဟင့် ပံ့ပိုသပေသသူမျာသကို တင်ရန်အတလက် အထူသသဖဌင့် "terraform init" တလင် အချို့သော command မျာသကို လုပ်ဆောင်ပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကျလန်ုပ်တို့သည် သတ်မဟတ်ထာသသောဖလဲ့စည်သပုံဖလဲ့စည်သပုံသည် ကျလန်ုပ်တို့ဖန်တီသထာသသောအရင်သအမဌစ်မျာသနဟင့်ကိုက်ညီမဟုရဟိမရဟိစစ်ဆေသရန်အတလက် "terraform apply" command ကိုလုပ်ဆောင်ပါသည်။ ကျလန်ုပ်တို့သည် ယခင်က မည်သည့်အရာကိုမျဟ မဖန်တီသရသေသသောကဌောင့်၊ Terraform သည် ကအရင်သအမဌစ်မျာသကို ဖန်တီသရန် ကျလန်ုပ်တို့အာသ တိုက်တလန်သပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဒါကို ကျနော်တို့ အတည်ပဌုပါတယ်။ ဒါကဌောင့် seasnail လို့ ခေါ်တဲ့ ပုံသကို ဖန်တီသတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အလာသတူ အသုံသဝင်မဟုမျာသစလာလည်သ ရဟိပါသည်။ Amazon ကိုအသုံသပဌုသူတော်တော်မျာသမျာသဟာ AWS CloudFormation သို့မဟုတ် Google Cloud Deployment Manager သို့မဟုတ် Azure Resource Manager ကို သိကဌပါတယ်။ ၎င်သတို့တစ်ခုစီသည် အမျာသသူငဟာ cloud ဝန်ဆောင်မဟုပေသသူတိုင်သအတလင်သ အရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲရန်အတလက် တစ်မျိုသမျိုသသော ကိုယ်ပိုင်အကောင်အထည်ဖော်မဟုတစ်ခုစီရဟိကဌသည်။ Terraform သည် သင့်အာသ ပံ့ပိုသပေသသူ 100 ကျော်ကို စီမံခန့်ခလဲနိုင်သောကဌောင့် အထူသအသုံသဝင်ပါသည်။ (အသေသစိတ်အချက်မျာသ ဒီမဟာ)

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Terraform အစကတည်သက လိုက်လုပ်ခဲ့တဲ့ ပန်သတိုင်တလေ

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

2014 ခုနဟစ်တလင် "ကဌိုတင်ခန့်မဟန်သနိုင်သော" ဟူသောစကာသလုံသသည်ကအခဌေအနေတလင်အလလန်ပုံမဟန်မဟုတ်သောအသံထလက်ခဲ့သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Terraform သည် universal utility တစ်ခုဖဌစ်သည်။ သင့်တလင် API တစ်ခုရဟိပါက၊ အရာအာသလုံသကို လုံသဝထိန်သချုပ်နိုင်သည်-

  • သင်အလိုရဟိသော အရာအာသလုံသကို စီမံခန့်ခလဲရန် ဝန်ဆောင်မဟုပေသသူ 120 ကျော်ကို သင်အသုံသပဌုနိုင်ပါသည်။
  • ဥပမာအာသဖဌင့်၊ သင်သည် GitHub repositories သို့ဝင်ရောက်ခလင့်ကိုဖော်ပဌရန် Terraform ကိုသုံသနိုင်သည်။
  • Jira တလင် bug မျာသကို ဖန်တီသပဌီသ ပိတ်နိုင်သည်။
  • New Relic မက်ထရစ်မျာသကို သင် စီမံနိုင်သည်။
  • သင်အမဟန်တကယ်လုပ်ချင်ပါက dropbox တလင်ဖိုင်မျာသကိုပင်ဖန်တီသနိုင်သည်။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကျလန်ုပ်တို့သည် Terraform ကိုစတင်အသုံသပဌုခဲ့ပဌီသ၊ ဆိုက်ပေါ်ရဟိ စာရလက်စာတမ်သအချို့ကိုဖတ်ကာ၊ ဗီဒီယိုအချို့ကိုကဌည့်ရဟုခဲ့ပဌီသ ယခင်ဆလိုက်မျာသတလင် ကျလန်တော်ပဌသထာသသည့်အတိုင်သ main.tf ကိုစတင်ရေသသာသခဲ့သည်ဆိုကဌပါစို့။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ပဌီသတော့ အရာအာသလုံသက ကောင်သတယ်၊ မင်သမဟာ VPC ကိုဖန်တီသတဲ့ ဖိုင်တစ်ခုရဟိတယ်။

အကယ်၍ သင်သည် VPC တစ်ခုကို ဖန်တီသလိုပါက၊ ခန့်မဟန်သခဌေအာသဖဌင့် က 12 ကဌောင်သကို သင်သတ်မဟတ်ပါ။ မည်သည့်ဒေသတလင် သင်ဖန်တီသလိုသည်၊ မည်သည့် IP လိပ်စာမျာသ၏ cidr_block ကို အသုံသပဌုရမည်ကို ဖော်ပဌပါ။ ဒါပါပဲ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထုံသစံအတိုင်သ ပရောဂျက်က တဖဌည်သဖဌည်သ ကဌီသလာမယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အောက်ပါဥပမာကိုကဌည့်ကဌပါစို့။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

သင်၏ VPC မဟ အရင်သအမဌစ်မျာသကို အင်တာနက် အသုံသပဌုခလင့် ရလိုသောကဌောင့် သင်သည် internet_gateway ကို တဖဌည်သဖဌည်သ ထည့်သလင်သပါသည်။ ဒါက အကဌံကောင်သပဲ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ရလဒ်မဟာ က main.tf ဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကသည်မဟာ main.tf ၏ ထိပ်ပိုင်သဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

၎င်သသည် main.tf ၏ အောက်ဆုံသအပိုင်သဖဌစ်သည်။

ထို့နောက်သင် subnet ကိုထည့်ပါ။ NAT ဂိတ်ဝေသမျာသ၊ လမ်သကဌောင်သမျာသ၊ လမ်သကဌောင်သဇယာသမျာသနဟင့် အခဌာသသော subnets အမျာသအပဌာသကို ထည့်သလင်သလိုသည့်အခါတလင် လိုင်သ 38 လိုင်သရဟိမည်မဟုတ်သော်လည်သ ခန့်မဟန်သခဌေအာသဖဌင့် 200-300 လိုင်သမျာသရဟိပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဆိုလိုသည်မဟာ သင်၏ main.tf ဖိုင်သည် တဖဌည်သဖဌည်သ ကဌီသထလာသလာသည်။ မကဌာခဏဆိုသလို လူတလေက အရာအာသလုံသကို ဖိုင်တစ်ခုထဲမဟာ ထည့်ထာသတယ်။ 10-20 Kb သည် main.tf တလင် ပေါ်လာသည်။ 10-20 Kb သည် စာသာသအကဌောင်သအရာဖဌစ်သည်ဟု မဌင်ယောင်ကဌည့်ပါ။ ပဌီသတော့ အရာအာသလုံသက အရာအာသလုံသနဲ့ ဆက်စပ်နေတယ်။ ဒါကတဖဌည်သဖဌည်သနဲ့ အလုပ်လုပ်ရခက်လာတယ်။ 10-20 Kb သည် ကောင်သမလန်သော အသုံသပဌုသူကိစ္စဖဌစ်ပဌီသ တစ်ခါတစ်ရံ ပိုပါသည်။ ပဌီသတော့ လူတလေက ဒါကို မကောင်သဘူသလို့ အမဌဲမထင်ဘူသ။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

  • ကုဒ်တလေ မျာသလာတယ်။
  • အရင်သအမဌစ်မျာသကဌာသတလင် မဟီခိုမဟုမျာသလည်သ တိုသပလာသလာပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ပဌီသတော့ ငါတို့မဟာ ကဌီသကဌီသမာသမာသ လိုအပ်ချက်တစ်ခုရဟိတယ်။ ဒီလိုမျိုသ ဆက်မနေနိုင်တော့ဘူသဆိုတာ နာသလည်ပါတယ်။ ကျလန်ုပ်တို့၏ကုဒ်သည် ကဌီသမာသလာသည်။ 10-20 Kb သည် ကျယ်ပဌောလဟသည်မဟုတ်ပါ၊ သို့သော် ကျလန်ုပ်တို့သည် network stack အကဌောင်သသာပဌောနေသည်၊ ဆိုလိုသည်မဟာ သင့်တလင် ကလန်ရက်အရင်သအမဌစ်မျာသသာ ရဟိပါသည်။ ကျလန်ုပ်တို့သည် 100 Kb ကို အလလယ်တကူ ယက်လုပ်နိုင်သည့် Application Load Balancer၊ deployment ES အစုအဝေသ၊ Kubernetes စသည်တို့အကဌောင်သ ကျလန်ုပ်တို့ မပဌောပါ။ ကအရာအာသလုံသကို သင်ချရေသပါက၊ Terraform သည် Terraform modules မျာသကို ပံ့ပိုသပေသကဌောင်သ မကဌာမီ သင်သိရဟိလာမည်ဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ 10-20-30 Kb ၏ကုဒ်ကို အကောင်သဆုံသဖဌစ်အောင် မည်သို့ပဌုလုပ်မည်ကို နာသလည်ရန် ကဌိုသစာသနေပါသည်။ ကျလန်ုပ်တို့သည် အချို့သော module မျာသကိုအသုံသပဌုရန် လိုအပ်ကဌောင်သ တဖဌည်သဖဌည်သနာသလည်လာပါသည်။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အရင်သအမဌစ် module တစ်ခု၏ဥပမာ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကျလန်ုပ်တို့ ဒေါင်သလုဒ်လုပ်လိုသော ဗာသရဟင်သကို ဖော်ပဌပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကသည်မဟာ က module အတလင်သရဟိ ကုဒ်ဖဌစ်သည်။ လုံခဌုံရေသအုပ်စု သင်ခန်သစာ။ ကနေရာတလင် စာလိပ်သည် 640 မျဉ်သသို့သလာသပါသည်။ ဖဌစ်နိုင်ချေရဟိသော ဖလဲ့စည်သမဟုတိုင်သတလင် Amazon ရဟိ လုံခဌုံရေသ-croup အရင်သအမဌစ်ကို ဖန်တီသခဌင်သသည် အလလန်အသေသအဖလဲမဟုတ်သော အလုပ်တစ်ခုဖဌစ်သည်။ လုံခဌုံရေသအဖလဲ့တစ်ခုကို ဖန်တီသပဌီသ ၎င်သကို ဖဌတ်သန်သရမည့် စည်သကမ်သမျာသကို ပဌောပဌရုံဖဌင့် မလုံလောက်ပါ။ အလလန်ရိုသရဟင်သပါသည်။ Amazon တလင် ကန့်သတ်ချက်ပေါင်သ တစ်သန်သကျော်ရဟိသည်။ ဥပမာအာသဖဌင့် သင်အသုံသပဌုလျဟင် VPC အဆုံသမဟတ်၊ ရဟေ့ထလက်စာရင်သ၊ အမျိုသမျိုသသော APIs ကအရာအာသလုံသကို အခဌာသအရာအာသလုံသနဟင့် ပေါင်သစပ်ရန်ကဌိုသစာသသည်၊ ထို့နောက် Terraform သည် သင့်အာသ ကသို့လုပ်ဆောင်ရန် ခလင့်မပဌုပါ။ Amazon API ကလည်သ ဒါကို ခလင့်မပဌုပါဘူသ။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် ကဆိုသရလာသလဟသော ယုတ္တိဗေဒအာသလုံသကို module တစ်ခုတလင် ဝဟက်ထာသရန် လိုအပ်ပဌီသ ကကဲ့သို့သော ပုံသဏ္ဌာန်ရဟိသော အသုံသပဌုသူကုဒ်ကို ပေသရန်လိုအပ်ပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အသုံသပဌုသူသည် အတလင်သတလင် မည်သို့ပဌုလုပ်ထာသသည်ကို သိရန်မလိုအပ်ပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အရင်သအမဌစ် မော်ဂျူသမျာသပါ၀င်သည့် ဒုတိယအမျိုသအစာသ မော်ဂျူသမျာသသည် သင့်လုပ်ငန်သနဟင့် ပိုမိုသက်ဆိုင်သည့် ပဌဿနာမျာသကို ဖဌေရဟင်သပဌီသသာသဖဌစ်သည်။ မကဌာခဏဆိုသလို ကနေရာသည် Terraform အတလက် တိုသချဲ့မဟုတစ်ခုဖဌစ်ပဌီသ ကုမ္ပဏီစံချိန်စံညလဟန်သမျာသအတလက် တဂ်မျာသအတလက် တင်သကျပ်သောတန်ဖိုသအချို့ကို သတ်မဟတ်ပေသပါသည်။ Terraform သည် လက်ရဟိတလင် သင့်အာသ အသုံသပဌုရန် ခလင့်မပဌုသော လုပ်ဆောင်ချက်မျာသကိုလည်သ ထည့်သလင်သနိုင်သည်။ ဒါက အခုချက်ချင်သပဲ။ ယခု ဗာသရဟင်သ 0.11 သည် အတိတ်၏ အရာတစ်ခု ဖဌစ်လာတော့မည်ဖဌစ်သည်။ သို့သော်လည်သ၊ ကဌိုတင်ပရိုဆက်ဆာမျာသ၊ jsonnet၊ cookiecutter နဟင့် အခဌာသအရာမျာသစလာသည် ပဌီသပဌည့်စုံသောအလုပ်အတလက် အသုံသပဌုရမည့် အရန်ယန္တရာသဖဌစ်သည်။

နောက်တစ်ခုကတော့ ဒီဥပမာအချို့ကို ပဌပါမယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အခဌေခံအဆောက်အအုံ module ကိုအတိအကျတူညီသောနည်သဖဌင့်ခေါ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အကဌောင်သအရာကို ဒေါင်သလုဒ်လုပ်ရမည့် အရင်သအမဌစ်ကို ညလဟန်ပဌထာသသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

တန်ဖိုသမျာသစလာကို ဖဌတ်သန်သပဌီသ က module ထဲသို့ ဖဌတ်သလာသပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထို့နောက်၊ က module အတလင်သတလင်၊ VPC သို့မဟုတ် Application Load Balancer ဖန်တီသရန် သို့မဟုတ် လုံခဌုံရေသအဖလဲ့ သို့မဟုတ် Elastic Container Service အစုအဝေသအတလက် အရင်သအမဌစ် module အမျာသအပဌာသကို ခေါ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Terraform Registry - https://registry.terraform.io/

အကဌံပဌုချက် #0 သည် အရင်သအမဌစ် module မျာသကို မရေသပါနဟင့်။ က module အမျာသစုသည် သင့်အတလက် ရေသထာသပဌီသဖဌစ်သည်။ ငါပဌောခဲ့သည့်အတိုင်သ၊ ၎င်သတို့သည် open source ဖဌစ်သည်၊ ၎င်သတို့သည် သင့်လုပ်ငန်သဆိုင်ရာ ယုတ္တိတစ်ခုမျဟမပါဝင်ပါ၊ ၎င်သတို့တလင် IP လိပ်စာမျာသ၊ စကာသဝဟက်မျာသစသည်တို့အတလက် hardcoded တန်ဖိုသမျာသ မရဟိပါ။ module သည် အလလန်ပဌောင်သလလယ်ပဌင်လလယ်ဖဌစ်သည်။ နောက်ပဌီသတော့ ဖဌစ်နိုင်ချေ မျာသပါတယ်။ Amazon မဟအရင်သအမဌစ်မျာသအတလက် module မျာသစလာရဟိသည်။ 650 လောက်ရဟိပဌီသ အမျာသစုက အရည်အသလေသကောင်သတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

https://github.com/mbtproject/mbt

ကပဌဿနာအတလက် ဖဌေရဟင်သနည်သနဟစ်ခုရဟိသည်။ ပထမအချက်မဟာ ဆလေမျိုသလမ်သကဌောင်သမျာသကို အသုံသပဌုရန်ဖဌစ်သည်။ ကနည်သဖဌင့် သင်သည် ဖိုင်တလဲသည် ဒေသန္တရ (./) ဖဌစ်ကဌောင်သ ကုဒ်တလင် ဖော်ပဌသည်။ သင် မည်သည့်အရာကိုမျဟ မဖလင့်မီ၊ သင်သည် ကသိုလဟောင်မဟု၏ Git ကိုလိုနီကို စက်တလင်သ၌ ပဌုလုပ်ပါ။ ဒီနည်သကို တစ်ခါလုပ်ပါ။

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

ဒုတိယဖဌေရဟင်သချက်။ အကယ်၍ သင့်တလင် submodule အမျာသအပဌာသရဟိပဌီသ သင့်တလင်တည်ဆောက်ထာသသောပိုက်လိုင်သအချို့ရဟိနေပဌီဆိုလျဟင်၊ သင်သည် monorepository တစ်ခုမဟ မတူညီသော package အမျာသအပဌာသကိုစုဆောင်သနိုင်ပဌီသ ၎င်သတို့ကို S3 သို့ အပ်လုဒ်လုပ်နိုင်သည့် MBT ပရောဂျက်ရဟိပါသည်။ ဒါက အရမ်သကောင်သတဲ့နည်သလမ်သပါ။ ထို့ကဌောင့်၊ ကအရင်သအမဌစ်ကိုဖန်တီသရန်ကုဒ်သည် အလလန်သေသငယ်သောကဌောင့် iam-user-1.0.0.zip ဖိုင်သည် 1 Kb သာ အလေသချိန်ရဟိပါမည်။ ပဌီသတော့ အလုပ်ပိုမဌန်ပါလိမ့်မယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Module မျာသတလင် အသုံသမပဌုနိုင်သော အရာမျာသကို ဆလေသနလေသကဌပါစို့။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဆိုသတာက Vasya က ဥပမာအာသဖဌင့် default environment variable ကိုအသုံသပဌုပဌီသ Vasya က Amazon ကို တစ်ဖက်တစ်လမ်သကနေ ချိတ်ဆက်ရတာကို နဟစ်သက်ပဌီသ Petya က သူ့ရဲ့ လျဟို့ဝဟက်နေရာတစ်ခုမဟာ ရဟိတဲ့ သူ့ရဲ့ shared key ကို သုံသရတာကို နဟစ်သက်တယ်ဆိုရင် နဟစ်ခုစလုံသကို သတ်မဟတ်လို့ မရပါဘူသ။ Terraform ထို့ကဌောင့် ၎င်သတို့သည် ဆင်သရဲဒုက္ခမခံစာသရစေရန်၊ သင်ခန်သစာတလင် ကဘလောက်ကို ညလဟန်ပဌရန်မလိုအပ်ပါ။ ဒါကို ပိုမဌင့်တဲ့အဆင့်မဟာ ညလဟန်ပဌရမယ်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့တလင် အရင်သအမဌစ် module တစ်ခု၊ အခဌေခံအဆောက်အအုံ module တစ်ခုနဟင့် ထိပ်တလင် ဖလဲ့စည်သမဟုတစ်ခုရဟိသည်။ ပဌီသတော့ ဒါကို အမဌင့်တစ်နေရာမဟာ ညလဟန်ပဌရမယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

မကောင်သသည်မဟာ ပထမညသစလာ ကစီမံပေသသူကို စတင်မည့်အချိန်ကို သင်အမဌဲမထိန်သချုပ်နိုင်ခဌင်သကဌောင့်ဖဌစ်သည်။ ဒုတိယအနေနဲ့၊ aws ec2 က ဘာကိုဆိုလိုသလဲဆိုတာကို သင်မထိန်သချုပ်နိုင်ပါဘူသ၊ ဆိုလိုတာက Linux ဒါမဟမဟုတ် Windows အကဌောင်သကို အခုပဌောနေတာလာသ။ ထို့ကဌောင့် မတူညီသော လည်ပတ်မဟုစနစ်မျာသ သို့မဟုတ် မတူညီသော အသုံသပဌုသူကိစ္စမျာသအတလက် တူညီသောအလုပ်ဖဌစ်မည့် တစ်ခုခုကို သင်ရေသ၍မရပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

တရာသဝင်စာရလက်စာတမ်သမျာသတလင်လည်သဖော်ပဌထာသသည့်အသုံသအမျာသဆုံသဥပမာမဟာ၊ သင်သည် aws_instance ကိုရေသပဌီသ arguments အစုအဝေသကိုသတ်မဟတ်ပါက၊ အကယ်၍ provisioner "local-exec" ကိုသတ်မဟတ်ပဌီသ သင်၏ ansible- ကို run ပါက ၎င်သနဟင့်ပတ်သတ်၍ အမဟာသအယလင်သမရဟိပေ။ ကစာသစာအုပ်

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

တကယ်တော့ ဟုတ်တယ်၊ အဲဒါနဲ့ ပတ်သက်ပဌီသ ဘာမဟ မမဟာသပါဘူသ။ သို့သော်၊ ဥပမာ၊ launch_configuration တလင် က local-exec အရာမရဟိသည်ကို မကဌာမီ သင်သဘောပေါက်လာပါလိမ့်မည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

သင် launch_configuration ကိုအသုံသပဌုပဌီသ instance တစ်ခုမဟ autoscaling group တစ်ခုကို ဖန်တီသလိုသောအခါ၊ launch_configuration တလင် "provisioner" ၏ concept မရဟိပါ။ "အသုံသပဌုသူဒေတာ" အယူအဆရဟိပါတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အကယ်၍ သင်သည် provisioner ကို run ချင်သေသပါက၊ ၎င်သသည် gluing component တစ်ခုဖဌစ်သောကဌောင့်၊ resource တစ်ခုကို ဖန်တီသသောအခါ၊ ထိုအချိန်တလင် သင်သည် သင်၏ provisioner၊ သင်၏ command ကို run ရန်လိုအပ်ပါသည်။ အဲဒီလို အခဌေအနေတလေ အမျာသကဌီသရဟိတယ်။

၎င်သအတလက် အမဟန်ကန်ဆုံသအရင်သအမဌစ်ကို null_resource ဟုခေါ်သည်။ Null_resource သည် အမဟန်တကယ် ဖန်တီသ၍မရသော ကိန်သဂဏန်သအရင်သအမဌစ်တစ်ခုဖဌစ်သည်။ ၎င်သသည် မည်သည့်အရာကိုမျဟ မထိရ၊ API မရဟိ၊ အလိုအလျောက် အတိုင်သအတာမရဟိပေ။ သို့သော် ၎င်သသည် သင့်အာသ မည်သည့်အချိန်တလင် အမိန့်ပေသရမည်ကို ထိန်သချုပ်နိုင်သည်။ ကကိစ္စတလင်၊ ဖန်တီသနေစဉ် command ကို run သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

link ကို http://bit.ly/common-traits-in-terraform-modules

လက္ခဏာမျာသစလာရဟိသည်။ နိမိတ်လက္ခဏာမျာသအာသလုံသကို ကဌီသစလာသောအသေသစိတ်၌ ငါမဝင်။ ဒီအကဌောင်သ ဆောင်သပါသတစ်ပုဒ်ရဟိတယ်။ သို့သော် သင်သည် Terraform နဟင့်အလုပ်လုပ်ဖူသသည် သို့မဟုတ် အခဌာသသူမျာသ၏ module မျာသကိုအသုံသပဌုပါက၊ ထို့နောက် open source မဟ code အမျာသစုကဲ့သို့ module အမျာသအပဌာသကို ၎င်သတို့၏လိုအပ်ချက်အတလက် လူမျာသကရေသသာသကဌသည်ကို သင်မကဌာခဏသတိပဌုမိပါသည်။ လူတစ်ယောက်က ရေသပဌီသ သူ့ပဌဿနာကို ဖဌေရဟင်သတယ်။ ငါ GitHub မဟာ ချိတ်ထာသတယ်၊ အသက်ရဟင်ပါစေ။ ၎င်သသည် အသက်ရဟင်နေမည်ဖဌစ်သော်လည်သ ထိုနေရာတလင် စာရလက်စာတမ်သနဟင့် ဥပမာမျာသမရဟိလျဟင် ၎င်သကို မည်သူမျဟ အသုံသပဌုမည်မဟုတ်ပါ။ ၎င်သင်သ၏သတ်မဟတ်တာဝန်ထက် အနည်သငယ်ပို၍ ဖဌေရဟင်သနိုင်စေမည့် လုပ်ဆောင်နိုင်စလမ်သမရဟိပါက၊ ၎င်သကို မည်သူမဟ အသုံသပဌုမည်မဟုတ်ပါ။ အသုံသပဌုသူမျာသကို ဆုံသရဟုံသရန် နည်သလမ်သမျာသစလာရဟိသည်။

လူတလေအသုံသပဌုလို့ရအောင် တစ်ခုခုရေသချင်တယ်ဆိုရင်တော့ ဒီလက္ခဏာတလေကို လိုက်နာဖို့ အကဌံပဌုချင်ပါတယ်။

သူတို့ဟာနေသောခေါင်သစဉ်:

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

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

ကသည်မဟာ စာရလက်စာတမ်သ၏ မီသခိုသရောင်အပိုင်သဖဌစ်သည်။ ယခု သင်တလေသနေနိုင်သည်– “တစ်ခုခုတော့ မသဲကလဲဘူသ။ မယုံကဌည်ဘူသ။" ဒါပေမယ့် ခဌောက်လအတလင်သ တလေ့မယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အခု ဒီ modules တလေကို ဘယ်လိုခေါ်ရမလဲဆိုတာ ပဌောကဌရအောင်။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

ယခုမူ ၎င်သကို ငဌင်သပယ်ပဌီသ ဖယ်ရဟာသလိုက်သည် ဟု ရေသသာသထာသသည်။ အချိန်ကဌာလာသည်နဟင့်အမျဟ၊ လူမျာသသည် ပရောဂျက်ကို ပုံစံအမျိုသမျိုသဖဌင့် စတင်အသုံသပဌုလာသောကဌောင့် ၎င်သသည် အကောင်သဆုံသအလေ့အကျင့်နဟင့် ဝေသကလာကဌောင်သ Terraform အသိုင်သအဝိုင်သမဟ သိရဟိလာသည်။ ပဌီသတော့ ပဌဿနာတလေရဟိတယ်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် မဟီခိုမဟုအာသလုံသကို တစ်နေရာတည်သတလင် စာရင်သပဌုစုသောအခါ။ ကျလန်ုပ်တို့သည် “Terraform အစီအစဉ်” ကိုနဟိပ်သည့်အခါ အခဌေအနေမျာသရဟိပဌီသ Terraform သည် အရင်သအမဌစ်အာသလုံသ၏ အခဌေအနေမျာသကို မလမ်သမံမလမ်သမံသည်အထိ အချိန်မျာသစလာ ကုန်သလာသနိုင်သည်။

ဥပမာအာသဖဌင့် 5 မိနစ် ကဌာမဌင့်သည်။ တစ်ချို့အတလက်တော့ ဒါက အချိန်တော်တော်ကဌာတယ်။ 15 မိနစ်လောက်ကဌာတဲ့ ကိစ္စတလေကို တလေ့ဖူသတယ်။ AWS API သည် အရင်သအမဌစ်တစ်ခုစီ၏ အခဌေအနေနဟင့် ဖဌစ်ပျက်နေသည်မျာသကို အဖဌေရဟာရန် 15 မိနစ်ကဌာ ကဌိုသပမ်သခဲ့သည်။ ကသည်မဟာ အလလန်ကဌီသမာသသော ဧရိယာဖဌစ်သည်။

သဘာဝအာသဖဌင့်၊ သင်သည် တစ်နေရာတည်သတလင် တစ်ခုခုကို ပဌောင်သလဲလိုသည့်အခါတလင် ဆက်စပ်ပဌဿနာတစ်ခု ပေါ်လာမည်ဖဌစ်ပဌီသ၊ ထို့နောက် 15 မိနစ်စောင့်ပါ၊ ၎င်သသည် သင့်အာသ ပဌောင်သလဲမဟုအချို့ကို ကင်သဗတ်စတစ်ခုပေသသည်။ သင်သည် တံတလေသထလေသပဌီသ "Yes" ဟုရေသပဌီသ တစ်ခုခုမဟာသသလာသပါသည်။ ကသည်မဟာ အလလန်မဟန်ကန်သော ဥပမာတစ်ခုဖဌစ်သည်။ Terraform သည် သင့်အာသ ပဌဿနာမျာသမဟ ကာကလယ်ရန် မကဌိုသစာသပါ။ ဆိုလိုသည်မဟာ သင်အလိုရဟိသောအရာကို ရေသပါ။ ပဌဿနာတလေ ရဟိမယ်။ Terraform 0.11 သည် သင့်အာသ မည်သည့်နည်သဖဌင့်မျဟ ကူညီရန် မကဌိုသစာသသော်လည်သ၊ 0.12 တလင် သင်ပဌောနိုင်သော စိတ်ဝင်စာသစရာနေရာအချို့ရဟိသည်- "Vasya၊ မင်သဒါကိုတကယ်လိုချင်တယ်၊ မင်သသဘောပေါက်နိုင်မလာသ"

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကအရာမျာသအာသလုံသကို တစ်နေရာတည်သတလင် မည်သူရဟိသနည်သ။ တစ်၊ နဟစ်၊ သုံသ၊ ဆိုလိုတာက တစ်စုံတစ်ယောက်က သုံသနေတယ်။

သီသခဌာသအစိတ်အပိုင်သတစ်ခု၊ ဘလောက်တစ်ခု သို့မဟုတ် အခဌေခံအဆောက်အအုံတစ်ခုအာသ မည်သူကခေါ်ဆိုသနည်သ။ လူငါသယောက်မဟ ခုနစ်ယောက်။ ဒါကအေသတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

stack VPC မဟာ တစ်ခုခုပဌောင်သလဲသလာသပဌီသ EC2 မဟာ ဒီအပဌောင်သအလဲတလေကို အသုံသချလိုတယ်ဆိုရင်၊ ဥပမာ သင့်မဟာ subnet အသစ်တစ်ခုရဟိလို့ autoscaling group ကို အပ်ဒိတ်လုပ်လိုတယ်ဆိုရင်တော့ ဒီ dependency orchestration လို့ခေါ်ပါတယ်။ ဖဌေရဟင်သနည်သအချို့ရဟိပါတယ်- ဘယ်သူက ဘာကိုသုံသတာလဲ။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဟုတ်ပါတယ်၊ ဒါကို အိမ်မဟာ မစမ်သပါနဲ့။ Terraform သည် Terraform မဟ လုပ်ဆောင်ရန် ဘယ်သောအခါမဟ ဒီဇိုင်သမထုတ်ခဲ့ပါ။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

https://github.com/gruntwork-io/terragrunt/

တစ်နေရာတည်သတလင် တစ်စုံတစ်ခုပဌောင်သလဲသလာသသောအခါတလင် ဖုန်သခေါ်ဆိုမဟုအာသ လိုအပ်ပါက၊ Terragrunt ရဟိပါသည်။

Terragrunt သည် သင်အာသ အခဌေခံအဆောက်အအုံ မော်ဂျူသမျာသသို့ ခေါ်ဆိုမဟုမျာသကို ညဟိနဟိုင်သရန်နဟင့် ကဌိုသကိုင်နိုင်စေမည့် Terraform ၏ အပိုပရိုဂရမ်တစ်ခုဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ပုံမဟန် Terraform ဖလဲ့စည်သမဟုပုံစံ ဖိုင်သည် ကကဲ့သို့ ဖဌစ်ပုံရသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

သင်ခေါ်ဆိုလိုသော သီသသန့် module တစ်ခုအာသ သင်သတ်မဟတ်ပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

မော်ဂျူသတလင် မည်သည့်မဟီခိုမဟု ရဟိသနည်သ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ပဌီသတော့ ဒီ module က ဘာငဌင်သချက်တလေကို လက်ခံပါသလဲ။ Terragrunt အကဌောင်သ သိဖို့ ဒီလောက်ပါပဲ။

စာရလက်စာတမ်သသည် ထိုနေရာတလင်ရဟိပဌီသ GitHub တလင် ကဌယ် 1 ရဟိသည်။ ဒါပေမယ့် ကိစ္စတော်တော်မျာသမျာသမဟာ ဒါကို သင်သိထာသဖို့ လိုပါတယ်။ ၎င်သသည် Terraform နဟင့်စတင်လုပ်ဆောင်သည့်ကုမ္ပဏီမျာသတလင်အကောင်အထည်ဖော်ရန်အလလန်လလယ်ကူသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အခု code နဲ့ ဘယ်လိုအလုပ်လုပ်ရမလဲဆိုတာ ပဌောကဌည့်ရအောင်။

သင့်ကုဒ်တလင် အင်္ဂါရပ်အသစ်မျာသထည့်ရန် လိုအပ်ပါက၊ ကိစ္စအမျာသစုတလင် ၎င်သသည် လလယ်ကူသည်။ သင်သည် အရင်သအမဌစ်အသစ်ကို ရေသသာသနေသည်၊ အရာအာသလုံသသည် ရိုသရဟင်သပါသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အကယ်၍ သင့်တလင် သင်ကဌိုတင်ဖန်တီသထာသသည့် အရင်သအမဌစ်အချို့ရဟိပါက၊ ဥပမာ၊ သင် AWS အကောင့်တစ်ခုဖလင့်ပဌီသနောက် Terraform အကဌောင်သ လေ့လာပဌီသ သင့်တလင်ရဟိပဌီသသာသအရင်သအမဌစ်မျာသကို အသုံသပဌုလိုပါက၊ သို့မဟသာ သင်၏ module ကို ကနည်သဖဌင့် တိုသချဲ့ခဌင်သသည် သင့်လျော်လိမ့်မည်၊ ၎င်သသည် ရဟိပဌီသသာသအရင်သအမဌစ်မျာသကို အသုံသပဌုခဌင်သကို ပံ့ပိုသပေသသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

block resource ကို အသုံသပဌု၍ အရင်သအမဌစ်အသစ်မျာသ ဖန်တီသခဌင်သကို ပံ့ပိုသခဲ့သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အထလက်တလင် ကျလန်ုပ်တို့သည် အသုံသပဌုခဲ့သည့်အပေါ်မူတည်၍ အထလက် ID ကို အမဌဲတမ်သ ပဌန်ပေသသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Terraform 0.11 တလင် ဒုတိယအလလန်သိသာထင်ရဟာသသောပဌဿနာမဟာ စာရင်သမျာသနဟင့် လုပ်ဆောင်ခဌင်သဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဒီလိုမျိုသ သုံသစလဲသူစာရင်သရဟိရင် အခက်အခဲရဟိတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

block resource သုံသပဌီသ ဒီအသုံသပဌုသူတလေကို ဖန်တီသတဲ့အခါ အာသလုံသအဆင်ပဌေပါတယ်။ ကျလန်ုပ်တို့သည် စာရင်သတစ်ခုလုံသကိုဖဌတ်၍ တစ်ခုစီအတလက် ဖိုင်တစ်ခုဖန်တီသသည်။ အာသလုံသအဆင်ပဌေတယ်။ ဥပမာအာသဖဌင့်၊ အလယ်တလင်ရဟိသော user3 ကို ကနေရာမဟ ဖယ်ရဟာသသင့်သည်၊ ထို့နောက် အညလဟန်သသည် ပဌောင်သလဲသလာသသောကဌောင့် သူ့နောက်မဟ ဖန်တီသထာသသော အရင်သအမဌစ်အာသလုံသကို ပဌန်လည်ဖန်တီသမည်ဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဒါက ဖဌေရဟင်သချက်ပါ။ ဒါက Jsonnet မဟာရေသထာသတဲ့ကုဒ်ပါ။ Jsonnet သည် Google မဟ နမူနာပုံစံဘာသာစကာသတစ်ခုဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ကအမိန့်သည် သင့်အာသ ကပုံစံပလိတ်ကို လက်ခံခလင့်ပဌုပဌီသ အထလက်တလင် သင့်ပုံစံအတိုင်သ ပဌုလုပ်ထာသသည့် json ဖိုင်ကို ပဌန်ပေသသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

နမူနာပုံစံက ဒီလိုပါ။

Terraform သည် သင့်အာသ HCL နဟင့် Json နဟစ်မျိုသလုံသကို တူညီသောနည်သဖဌင့် လုပ်ဆောင်နိုင်သည်၊ ထို့ကဌောင့် သင့်တလင် Json ကို ထုတ်လုပ်နိုင်စလမ်သရဟိပါက ၎င်သကို Terraform ထဲသို့ ဖဌတ်သလာသနိုင်သည်။ တိုသချဲ့မဟု .tf.json ပါသော ဖိုင်ကို အောင်မဌင်စလာ ဒေါင်သလုဒ်လုပ်ပါမည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထို့နောက် ကျလန်ုပ်တို့သည် ၎င်သကို ပုံမဟန်အတိုင်သ လုပ်ဆောင်သည်- terraform init, terrorm သက်ရောက်သည်။ ပဌီသတော့ ကျလန်တော်တို့က သုံသစလဲသူ နဟစ်ယောက်ကို ဖန်တီသတယ်။

အခုဆို တစ်စုံတစ်ယောက် အသင်သက ထလက်သလာသရင် ကျလန်တော်တို့ မကဌောက်တော့ဘူသ။ json ဖိုင်ကို တည်သဖဌတ်ပါမည်။ Vasya Pupkin ကျန်ရစ်ခဲ့ပဌီသ Petya Pyatochkin ကျန်ရစ်ခဲ့သည်။ Petya Pyatochkin သည် သော့အသစ်ကို လက်ခံရရဟိမည်မဟုတ်ပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

သို့သော် ကျလန်ုပ်တို့သည် Terraform ကို တိုသချဲ့ပဌီသ တစ်ခုခုပဌီသမဌောက်ပဌီသနောက် အချို့သော command ကိုခေါ်ဆိုသည့်အခါ အခဌေအနေမျာသ ဖဌစ်ပေါ်လာပါသည်။

ပထမနည်သ။ ကျလန်ုပ်တို့သည် ကအမိန့်ကို ရေသသာသသည့်နေရာတလင် အထလက်တစ်ခု ဖန်တီသသည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ထို့နောက် shell terraform output မဟက command ကိုခေါ်ပဌီသကျလန်ုပ်တို့လိုချင်သောတန်ဖိုသကိုသတ်မဟတ်ပါ။ ထို့ကဌောင့်၊ command ကို အစာသထိုသတန်ဖိုသမျာသအာသလုံသဖဌင့် လုပ်ဆောင်သည်။ အရမ်သအဆင်ပဌေတယ်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဒုတိယနည်သ။ ကသည်မဟာ ကျလန်ုပ်တို့၏ အခဌေခံအဆောက်အအုံဆိုင်ရာ အပဌောင်သအလဲမျာသပေါ်မူတည်၍ null_resource ကို အသုံသပဌုခဌင်သဖဌစ်သည်။ အရင်သအမဌစ်ပဌောင်သလဲမဟုအချို့၏ ID ကို မကဌာမီတလင် တူညီသော local-exe ဟုခေါ်နိုင်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

Amazon သည် အခဌာသသော အမျာသသူငဟာ ပံ့ပိုသပေသသူမျာသကဲ့သို့ပင် ၎င်သ၏ကိုယ်ပိုင် အစလန်သအထင်သကိစ္စမျာသ အမျာသအပဌာသရဟိသောကဌောင့် ၎င်သသည် စာရလက်ပေါ်တလင် ချောမလေ့နေပါသည်။

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ရဟောင်ကဌဉ်ရန် အကဌံပဌုထာသသော အချက်အချို့ရဟိပါသည်။

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

သို့သော် သင်သည် ကမဟော်အမိန့်တစ်ခုလုံသကို အလလတ်ကျက်ရန် မလိုအပ်ပါ။ Terraform အစီအစဉ် - var နဟင့် off ငါတို့သလာသပါ။ ပထမ variable သည် var၊ ဒုတိယ variable သည် var၊ တတိယ၊ စတုတ္ထဖဌစ်သည်။ ကျလန်တော် အမျာသဆုံသသုံသတဲ့ ကုဒ်အဖဌစ် အခဌေခံအဆောက်အအုံရဲ့ အရေသအကဌီသဆုံသ နိယာမကတော့ ကုဒ်ကို ကဌည့်ရုံနဲ့ အဲဒီနေရာမဟာ ဖဌန့်ကျက်ထာသတဲ့ အရာကို ရဟင်သရဟင်သလင်သလင်သ နာသလည်ထာသသင့်ပါတယ်၊ ဘယ်အခဌေအနေနဲ့ ဘယ်တန်ဖိုသတလေ ရဟိသင့်လဲ။ ထို့ကဌောင့် ကျလန်ုပ်၏ အစုအဝေသကို ဖန်တီသရန် သူအသုံသပဌုခဲ့သည့် ကန့်သတ်ချက်မျာသကို Vasya အာသ မေသမဌန်သရန် မလိုအပ်ပါ။ ပတ်ဝန်သကျင်နဟင့် မကဌာခဏ ကိုက်ညီသည့် tfvars extension ဖဌင့် ဖိုင်တစ်ခုဖလင့်ရန် လိုအပ်ပဌီသ ထိုအရာအာသလုံသကို ကဌည့်ရဟုပါ။

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

ထို့အပဌင် ပဌိုင်တူဝါဒကို ကန့်သတ်ရန် မလိုအပ်ပါ။ ကျလန်ုပ်တလင် ရင်သမဌစ် 150 ရဟိပဌီသ Amazon parallelism ကို မူရင်သ 10 မဟ 100 သို့ တိုသမဌဟင့်လိုပါက၊ တစ်ခုခု မဟာသသလာသနိုင်သည်။ ဒါမဟမဟုတ် အခုအဆင်ပဌေနိုင်ပေမယ့် Amazon က မင်သဖုန်သခေါ်တာမျာသလလန်သတယ်လို့ ပဌောရင် ပဌဿနာတက်လိမ့်မယ်။

Terraform သည် ကပဌဿနာအမျာသစုကို ပဌန်လည်စတင်ရန် ကဌိုသစာသမည်ဖဌစ်သော်လည်သ သင်ဘာမျဟနီသပါသအောင်မဌင်မည်မဟုတ်ပါ။ Parallelism=1 သည် AWS API အတလင်သ သို့မဟုတ် Terraform ဝန်ဆောင်မဟုပေသသူအတလင်သ၌ ချို့ယလင်သချက်အချို့ကို တိုက်မိပါက အသုံသပဌုရန် အရေသကဌီသသောအရာဖဌစ်သည်။ ထို့နောက်သင်သတ်မဟတ်ရန်လိုအပ်သည်- parallelism=1 နဟင့် Terraform ခေါ်ဆိုမဟုတစ်ခုပဌီသဆုံသသည်အထိစောင့်ပါ၊ ထို့နောက်ဒုတိယ၊ ထို့နောက်တတိယဖဌစ်သည်။ သူတို့ကို တစ်လုံသပဌီသတစ်လုံသ လလဟင့်ပစ်မယ်။

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

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

အစီရင်ခံစာ၏ ခေါင်သစဉ်မဟာ “အနာဂတ်အတလက်” ဟု ရေသသာသထာသသည်။ ဒီအကဌောင်သကို အတိုချုံသပဌောမယ်။ အနာဂတ်အတလက်၊ ဆိုလိုသည်မဟာ 0.12 သည် မကဌာမီထလက်ရဟိလာတော့မည်ဖဌစ်သည်။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

ဒါပေမယ့်! အဆင်သင့်လုပ်ထာသသော modules မျာသနဟင့် third-party solutions မျာသကိုအသုံသပဌု၍ တိုတိုနဟင့်ပို၍ ရိုသရိုသရဟင်သရဟင်သရေသပါက 0.12 သည် သင့်အတလက် အရာအာသလုံသကို ပဌုပဌင်ပေသမည်ဟု မျဟော်လင့်နေစရာမလိုပါ။

အနာဂတ်အတလက် Terraform ရဟိ အခဌေခံအဆောက်အည၏ ရဟင်သလင်သချက်။ Anton Babenko (2018)

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

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

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

အကဌောက်ဆုံသ Terraform အတလက် ပေါင်သစပ်စစ်ဆေသမဟုမျာသကို ရေသသာသခလင့်ပဌုသည့် မကဌာခဏ ဖော်ပဌထာသသော စာကဌည့်တိုက်မျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ဒါက အသုံသအဆောင်တလေထဲက တစ်ခုပါ။ DSL အမျိုသအစာသ ဥပမာ rspec ကို ပိုကဌိုက်တယ်။

Anton၊ အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါတယ်။ ကျလန်တော့်နာမည် Valery ပါ။ ဒဿနမေသခလန်သလေသတစ်ခုမေသပါရစေ။ အခဌေအနေအရ နေရာချထာသမဟု၊ ဖဌန့်ကျက်မဟု ရဟိတယ်။ စီမံဆောင်ရလက်ခဌင်သသည် ကျလန်ုပ်၏အခဌေခံအဆောက်အအုံကို ဖန်တီသပေသသည်၊ ဖဌန့်ကျက်ရာတလင် အသုံသဝင်သောအရာတစ်ခုဖဌစ်သည့် ဥပမာ၊ ဆာဗာမျာသ၊ အပလီကေသရဟင်သမျာသစသည်ဖဌင့် ဖဌည့်ဆည်သပေသပါသည်။ ထို့အပဌင် Terraform သည် စီမံဆောင်ရလက်ပေသရန်အတလက် ပိုမိုလုပ်ဆောင်ရန်ရဟိပဌီသ Ansible သည် Ansible သည် ရုပ်ပိုင်သဆိုင်ရာအခဌေခံအဆောက်အအုံအတလက်လည်သဖဌစ်သောကဌောင့်၊ nginx၊ Postgres ကို install လုပ်ခလင့်ပဌုသည်။ သို့သော်တစ်ချိန်တည်သမဟာပင် Ansible သည် ဥပမာအာသဖဌင့် Amazon သို့မဟုတ် Google အရင်သအမဌစ်မျာသကို စီမံဆောင်ရလက်ပေသခဌင်သကို ခလင့်ပဌုထာသပုံရသည်။ သို့သော် Terraform သည် ၎င်သ၏ module မျာသကို အသုံသပဌု၍ ဆော့ဖ်ဝဲလ်အချို့ကို အသုံသချနိုင်စေပါသည်။ သင့်အမဌင်အရ၊ Terraform နဟင့် Ansible အကဌာသတလင်ရဟိသော နယ်စပ်မျဉ်သအချို့ရဟိပါသလာသ၊ မည်သည့်နေရာတလင် အသုံသပဌုရပိုကောင်သသနည်သ။ သို့မဟုတ် ဥပမာအာသဖဌင့်၊ Ansible သည် အမဟိုက်ဖဌစ်နေပဌီဟု သင်ထင်ပါသလာသ၊ အရာအာသလုံသအတလက် Terraform ကို အသုံသပဌုရန် သင်ကဌိုသစာသသင့်ပါသလာသ။

မေသခလန်သကောင်သ၊ Valery။ Terraform သည် 2014 ခုနဟစ်ကတည်သက ရည်ရလယ်ချက် သတ်မဟတ်ချက်မျာသတလင် ပဌောင်သလဲခဌင်သမရဟိကဌောင်သ ကျလန်ုပ်ယုံကဌည်ပါသည်။ အခဌေခံအဆောက်အအုံအတလက် ဖန်တီသခဲ့ပဌီသ အခဌေခံအဆောက်အအုံအတလက် သေဆုံသခဲ့သည်။ ကျလန်ုပ်တို့တလင် စီမံဖလဲ့စည်သမဟု စီမံခန့်ခလဲမဟု Ansible လိုအပ်နေသေသသည် ။ စိန်ခေါ်မဟုမဟာ launch_configuration အတလင်သတလင် သုံသစလဲသူဒေတာမျာသ ရဟိနေခဌင်သပင်ဖဌစ်သည်။ ပဌီသတော့ သင် Ansible စသည်တို့ကို ဆလဲထုတ်ပါ။ ကသည်မဟာ ကျလန်ုပ်အနဟစ်သက်ဆုံသ စံသတ်မဟတ်ချက်ဖဌစ်သည်။

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

မင်္ဂလာပါ! အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်တော့်နာမည် Misha က RBS ကုမ္ပဏီပါ။ အရင်သအမဌစ်တစ်ခုဖန်တီသသောအခါတလင် Ansible ကို စီမံပေသသူမဟတစ်ဆင့် သင်ခေါ်ဆိုနိုင်ပါသည်။ Ansible တလင် dynamic inventory ဟုခေါ်သော အကဌောင်သအရာတစ်ခုလည်သ ရဟိပါသည်။ Terraform ကို သင် ညသစလာခေါ်ဆိုနိုင်ပဌီသ၊ ထို့နောက် ပဌည်နယ်မဟ အရင်သအမဌစ်မျာသကို ရယူပဌီသ ၎င်သကို လုပ်ဆောင်မည့် Ansible ကို ခေါ်နိုင်သည်။ ဘယ်အရာက ပိုကောင်သလဲ။

လူတလေက နဟစ်ခုစလုံသကို ညီတူညီမျဟ သုံသစလဲကဌပါတယ်။ ကျလန်ုပ်တို့သည် autoscaling အုပ်စုအကဌောင်သ မပဌောပါက Ansible ရဟိ တက်ကဌလသောစာရင်သအင်သသည် အဆင်ပဌေသည့်အရာဟု ကျလန်ုပ်ထင်ပါသည်။ အဘယ်ကဌောင့်ဆိုသော် autoscaling group တလင် launch_configuration ဟုခေါ်သော ကျလန်ုပ်တို့၏ကိုယ်ပိုင် toolkit ရဟိပဌီသဖဌစ်သည်။ launch_configuration တလင် ကျလန်ုပ်တို့သည် ရင်သမဌစ်အသစ်တစ်ခုကို ဖန်တီသသောအခါတလင် စတင်ရန် လိုအပ်သည့်အရာအာသလုံသကို မဟတ်တမ်သတင်ပါသည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်၏အမဌင်အရ Amazon သည် တက်ကဌလသောစာရင်သအင်သကိုအသုံသပဌု၍ Terraform ts ဖိုင်ကိုဖတ်ရဟုခဌင်သသည်အလလန်အကျလံဖဌစ်သည်။ အကယ်၍ သင်သည် "autoscaling group" ၏ သဘောတရာသမရဟိသော အခဌာသကိရိယာမျာသကို အသုံသပဌုပါက၊ ဥပမာအာသဖဌင့်၊ သင်သည် DigitalOcean သို့မဟုတ် autoscaling group မရဟိသော အခဌာသဝန်ဆောင်မဟုပေသသူကို အသုံသပဌုသည်၊ ထို့နောက် API ကို ကိုယ်တိုင်ဆလဲထုတ်ရန်၊ IP လိပ်စာမျာသကို ရဟာဖလေဖန်တီသရန် လိုအပ်ပါသည်။ တက်ကဌလသောစာရင်သဖိုင်တစ်ခုဖဌစ်ပဌီသ Ansible သည် ၎င်သကိုဖဌတ်သန်သပဌီသဖဌစ်သည်။ ဆိုလိုသည်မဟာ Amazon အတလက် launch_configuration ရဟိပဌီသ အခဌာသအရာအာသလုံသအတလက် dynamic inventory ရဟိပါသည်။

source: www.habr.com

မဟတ်ချက် Add