GitLab CI/CD and Envoy အတွေ့အကြုံ

Happy deployment with GitLab CI/CD and Envoy

အရင်က MyanmarDevJobs.com ကို တစ်ခုခုပြင်ပြီဆိုရင် deployment က ssh ဝင်ပြီးရင် git pull ပြီးရင် composer install တို့ php artisan migrate တို့လုပ်။ ဘာဘဲပြောပြော 0 down time တော့မဖြစ်ဘူးပေါ့။ ခဏလောက် down ပြီး Update လုပ်လိုက်တယ်။ ပြဿနာကအဲ့ကစတာဘဲ… ကိုယ်ပြင်လိုက်တာတစ်ခုခုမှားသွားပြီဆိုရင် User က Complain လာတယ်။ အဲ့တော့ server ပေါ်မှာအမြန်ပြင်လိုက်တယ်… တစ်ခါတစ်လေပြင်တာများသွားတော့ Local မှာလည်းပြန်ပြင်ရတာပျင်းတာနဲ့ server ကနေ git push လိုက်တယ်။ ဘာဖြစ်လဲတစ်ယောက်ထဲရေးတာဘဲပေါ့ 😂. အဲ့လိုမျိုးဖြစ်တာကကျွန်တော့်အတွက်တော့ code fix ပြီးတော့ git push ကသေးတယ်… ပြီးရင် ssh ဝင် git pull လိုအပ်တာတွေ run, process တော်တော်များတယ်။ ဘယ်လိုမှအဆင်မပြေဘူး။

အရင်ကကျွန်တော် bitbucket ကိုသုံးပြီးတော့ Laravel ရဲ့ Envoyer နဲ့ပေါင်းသုံးပြီး zero downtime လုပ်ဖူးပါတယ်။ တော်တော်လေးလည်းအဆင်ပြေပါတယ်… အဲ့တုန်းကတော့ Company ကသုံးတာဆိုတော့ OK တယ် Laravel Envoyer ဝယ်သုံးဖြစ်တယ်။ အခုကိုယ်ပိုင် Fun လုပ်ထားတာလေးကျတော့ ပုံမှန်ပေးရမှာဆိုတော့မပေးချင်တာနှင့် Gitlab CI/CD လုပ်ဖြစ်သွားတယ်။ Laravel အတွက် Gitlab CI/CD လုပ်ဖို့လိုက်ကြည့်တော့ Official Guide ရှိတာနှင့် လိုက်စမ်းကြည့်လိုက်တာ တော်တော်လေးအဆင်ပြေတယ်။

လက်ရှိ MyanamrDevJobs CI/CD Overview

အခု MyanmarDevJobs.com ရဲ့ Process က master branch ကို git push လိုက်ပြီဆိုတာနှင့် သို့ Merge Request လုပ်လိုက်ပြီဆိုတာနှင့် tests တွေအရင် run တယ်… tests တွေ pass သွားပြီဆိုရင် gitlab အတွက်သီးသန့် create လုပ်ပေးထားတဲ့ ssh key ကိုသုံးပြီးတော့ Gitlab Docker ကနေ MyanmarDevJobs Server ကိုဝင်ပြီးတော့ Laravel envoy ကို run ပြီးတော့ deploy လုပ်တယ်။ Laravel envoy က zero downtime အတွက်အဓိကသုံးထားတယ်။ ဒါမျိုး ကိုယ်တိုင်စမ်း ကြည့်ချင်တယ်ဆိုရင် အထက်မှာဖော်ပြထားတဲ့ Gitlab CI/CD Guide ကိုဖတ်ပြီးလိုက်စမ်းနိုင်ပါတယ်။

နိဂုန်းချုပ်

အချုပ်အနေနှင့်ဆိုရင်အချိန်အနည်းငယ်ပေးပြီးတော့တော့စမ်းရပါ့မယ်။ ပြီးသွားပြီဆိုရင် တော်တော်လေးအဆင်ပြေသွားပါလိမ့်မယ်။ webhooks တွေလုပ်ပြီး git pull, command run တာကလည်း အခုနည်းထက်အဆင်မပြေပါ။ ကိုယ်တိုင်စမ်းသပ်ပြီးသွားပါပြီ။

MyanmarDevJobs ကဘာလည်းဆိုတာစိတ်ဝင်စားရင် MyanamrDevJobs.com က ကျွန်တော့်ရဲ့ Side Project တစ်ခုပါ။ Developer/Designer ရှာနေတဲ့သူတွေနှင့် Developer/Designer အလုပ်တွေရှာဖွေပေးနေတဲ့သူတွေကို connect လုပ်ပေးတဲ့နေရာဖြစ်ပါတယ်။ မကြာခင်မှာလည်း Freelancer Developer/Designer တွေကို Freelancer ရှာနေတဲ့အလုပ်ရှင်တွေနှင့်ချိန်ဆက်ပေးမှာဖြစ်ပါတယ်။