Continuous Delivery
Continuous Delivery (CD) ရဲ့ process က CI ရဲ့ testing phase အပြီး artifact or docker image ကို generate အပြီးမှာ စပါတယ်။
Continuous Delivery နဲ့ Continuous Deployment မှာ သိသိသာသာကွဲတာက production သွားတော့မယ့် step မှာ manual နဲ့ auto ဖြစ်သွားတာပါပဲ အဲ့ဒီအပိုင်းကို အောက်မှာ ဆက်ရှင်းပါမယ်။
လွယ်လွယ်မှတ်ချင်ရင် CD ကို production နဲ့ အနီးစပ်ဆုံးတူတဲ့ environment တွေ setup လုပ်ပေးပြီး Functional တွေ User Acceptance test တွေ စစ်ပေးတဲ့ process လို့ပြောလို့ရတယ်။ သူ့မှာလည်း automation က အသက်ပါပဲ။ အဲ့တော့ environment တွေကို setup ဘယ်လိုလုပ်သွားတာလဲ?
Environment setup ဆိုတာ server တွေ VM တွေ database တွေနဲ့ ကိုယ့် project run ဖို့လိုအပ်တဲ့ အရာတွေ အကုန်ပါတဲ့ computer တစ်လုံးကို create လုပ်တယ်လို့ပဲ ဆိုပါစို့။ ဒီနေရာမှာ မရှုပ်သွားဖို့က cloud ကိုသုံးနေတာဖြစ်တဲ့အတွက် hardware တွေကို စိတ်ပူစရာ မလိုပါဘူး ကိုယ်သုံးနေတဲ့ cloud provider က support ပေးပါလိမ့်မယ်။ Environment setup လို့ဆိုတာမှာ software ကိုပဲ ဆိုလိုတာဖြစ်ပါတယ်။
Continuous Delivery မှာ ဒီ environment တွေကို CD မသုံးခင်တည်းက ကြိုပြီး manual setup ထားတာဖြစ်နိုင်သလို CD စ run မှ automation tool တစ်ခုခုနဲ့ ဒီ environment ကြီးတစ်ခုလုံး create သွားတာမျိုးဆိုပြီး ၂ မျိုးရှိနိုင်ပါတယ်။ အဲ့လို automatically create သွားတဲ့ concept ကို Infrastructure as Code (IaC) လို့ခေါ်ပါတယ်။
CD ရဲ့ pipeline မှာ environment ဘယ်နှခုရှိနိုင်လဲဆိုပြီး standard မရှိပါဘူး ကိုယ့် project ရဲ့ လိုအပ်ချက်ပေါ်မူတည်ပြီး ကွဲနိုင်တယ်။ Production မရောက်ခင်ထိ အနည်းဆုံးတော့ staging environment တစ်ခုရှိပါတယ်။
CD process ပြီးလို့ create လုပ်ထားတဲ့ environment က သုံးမလိုတော့ရင် automatically ဖျက်ပေးတာကို dynamic environments လို့ခေါ်ပါတယ်။ Cloud မှာက resource တွေ မသုံးတော့ပဲ environment ကရှိနေရင် cost များတဲ့အတွက် ဒီလိုဖျက်နိုင်တာ က အဆင်ပြေတဲ့ feature တစ်ခုပါပဲ။
Continuous delivery ပြီးရင် production ကို deploy မလုပ်ခင် ကြားမှာ approval တစ်ဆင့် ခံထားလေ့ရှိပါတယ်။ Approve ဖြစ်မှ production ကို deploy ဆက်လုပ်ပါတယ်။ ဒီ deploy လုပ်တဲ့နေရာကစပြီး နောက်ပိုင်းမှာ deployment strategies အမျိုးမျိုးရှိနိုင်ပါတယ်။
Continuous deployment ကတော့ approval ခံထားတာမျိုးမရှိပါဘူး။ Deploy လုပ်ပြီးရင် notification ပို့တာမျိုးပဲရှိပါမယ်။
အဲ့တော့ CD ရဲ့ process ကို briefly ကြည့်ကြည့်ရအောင်
Get Soe Tint Aung’s stories in your inbox
Join Medium for free to get updates from this writer.
📌 CD Process
- အရင်ဆုံး CI process မှာ build လုပ်ခဲ့တဲ့ docker image or artifact ကို အရင် pull လုပ်တယ်။
- Project ရဲ့ artifact ရတာနဲ့ environment setup စလုပ်ပါတယ်။ IaC သုံးရင်တော့ ဒီ step မှာ Terraform လို tool တစ်ခုခုသုံးပြီး environment ကို auto setup နဲ့ configuration စလုပ်ပါတယ်။
- Environment ready ဖြစ်ရင် pull ထားတဲ့ artifact ကိုစပြီး deploy လုပ်ပါတယ်။
- ဒီ step မှာတော့ User Acceptance Test တွေ functional test တွေစ run နေပါပြီ။ Unit နဲ့ Integration က CI မှာ pass ခဲ့ပြီးတာဖြစ်တာကြောင့် ဒီ step မှာတော့ project က business flow အတိုင်း run နေရဲ့လားဆိုတာကို UI ဘက်ကနေ automate လုပ်ပြီး စစ်တာဖြစ်ပါတယ်။ များသောအားဖြင့် Selenium သုံးပြီးရေးထားတဲ့ test case တွေ run ကြပါတယ်။
- လိုအပ်ရင် လိုအပ်သလို manual ဝင်စစ်တာမျိုး၊ client ကကြည့်ချင်ရင် ဒီ step မှာ run ပြလို့ ရပါတယ်။
- UAT run ပြီးတဲ့အခါ performance test တွေဆက် run ပါတယ်။ Performance ကို monitoring လုပ်တဲ့ tools တွေလည်း သုံးနေပါပြီ။
- Testing တွေ pass ပြီးရင်တော့ production ကို ဆက် deploy ဖို့ ready အနေအထား ရှိနေပါပြီ။ ဒီ step မှာ approve ဖြစ်တာနဲ့ production environment ကို deploy စလုပ်ပါပြီ
Production deploy တဲ့အခါမှာလည်း project နဲ့ client လိုအပ်ချက်အရ deployment strategies တွေ အမျိုးမျိုးရှိပါတယ်။ အဲ့ဒီ strategy တွေအကြောင်း နောက်မှ သက်သက်ရေးပါဦးမယ်။
CD က လွယ်လွယ်ပြောရင် environment တစ်ခုပြီးတစ်ခု deploy/ release လုပ်ပြီး test လုပ်သွားတာပဲလို့ မြင်လို့ရပေမယ့် အဲ့ဒီ process အားလုံးကို automate လုပ်သွားတဲ့ Infrastructure as Code, Automated Testing, Monitoring အဲ့ဒီဟာတွေက သူ့ထဲပါဝင်နေတဲ့ core concept တွေပါပဲ။
ဒီ post မှာတော့ CD ကို overview သဘောမျိုး briefly ပဲပြောနိုင်ပါတယ်။ Project က ရှုပ်ရင်ရှုပ်သလောက် CD ရဲ့ flow လည်းပိုရှုပ်နိုင်ပါတယ်
🧑🏻💻 Written by <YeMin-Dev />
#cicd





