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

အပိုင်သ 1- ဝဘ်/Android

ပလောဆို: ကဆောင်သပါသသည် မူရင်သဆောင်သပါသ၏ ရုရဟာသဘာသာသို့ ဘာသာပဌန်ခဌင်သဖဌစ်သည်။ â€œDevOps ကိရိယာမျာသသည် DevOps အတလက်သာမက။ "စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစကနေ ပဌန်တည်ဆောက်ပါ။" သို့ရာတလင်၊ ရုရဟာသဘာသာသို့ပဌန်ဆိုသည့်အခါ အဓိပ္ပာယ်မလလဲစေရန် ပုံဥပမာမျာသ၊ လင့်ခ်မျာသ၊ ကိုသကာသချက်မျာသနဟင့် အသုံသအနဟုန်သမျာသအာသလုံသကို မူရင်သဘာသာစကာသဖဌင့် ထိန်သသိမ်သထာသသည်။ စာသင်ရတာ ပျော်ရလဟင်ပါစေလို့ ဆုတောင်သပါတယ်။

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

လက်ရဟိတလင်၊ DevOps အထူသပဌုသည် အိုင်တီစက်မဟုလုပ်ငန်သတလင် ဝယ်လိုအာသအရဟိဆုံသတစ်ခုဖဌစ်သည်။ လူကဌိုက်မျာသသော အလုပ်ရဟာဖလေရေသဆိုက်မျာသကိုဖလင့်ပဌီသ လစာဖဌင့် စစ်ထုတ်ပါက၊ DevOps နဟင့်ပတ်သက်သည့် အလုပ်မျာသသည် စာရင်သ၏ထိပ်တလင် ရဟိနေသည်ကို သင်တလေ့ရပါမည်။ သို့ရာတလင်၊ ၎င်သသည် အဓိကအာသဖဌင့် 'စီနီယာ' ရာထူသကို ရည်ညလဟန်သကဌောင်သ နာသလည်ရန် အရေသကဌီသပဌီသ ကိုယ်စာသလဟယ်လောင်သတလင် အရည်အချင်သ၊ နည်သပညာနဟင့် ကိရိယာမျာသဆိုင်ရာ ကျလမ်သကျင်မဟု မဌင့်မာသသည်ဟု ဆိုလိုသည်။ ၎င်သသည် ထုတ်လုပ်မဟု၏ အနဟောက်အယဟက်ကင်သသော လည်ပတ်မဟုနဟင့် ဆက်နလဟယ်သည့် မဌင့်မာသသော တာဝန်လည်သ ပါဝင်သည်။ သို့သော်၊ ကျလန်ုပ်တို့သည် DevOps ဟူသည်ကို မေ့စပဌုလာသည်။ အစကတော့ သီသခဌာသပုဂ္ဂိုလ် ဒါမဟမဟုတ် ဌာနတစ်ခုမဟ မဟုတ်ဘူသ။ ကအသုံသအနဟုန်သ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို ရဟာဖလေပါက၊ နည်သစနစ်ကျသော၊ အလေ့အကျင့်မျာသ၊ ယဉ်ကျေသမဟုဒဿနိကဗေဒ၊ အယူအဆအုပ်စုစသည်ဖဌင့် လဟပပဌီသ မဟန်ကန်သောနာမ်မျာသစလာကို တလေ့ရပါမည်။

ကျလန်ုပ်၏ အထူသပဌုမဟုမဟာ စမ်သသပ်မဟု အလိုအလျောက်စနစ် အင်ဂျင်နီယာ (QA အလိုအလျောက်စနစ် အင်ဂျင်နီယာ) ဖဌစ်သည်၊ သို့သော် ၎င်သသည် အလိုအလျောက် စမ်သသပ်မဟုမျာသကို ရေသသာသခဌင်သ သို့မဟုတ် စမ်သသပ်မဟုဘောင်ဗိသုကာ တည်ဆောက်ခဌင်သနဟင့်သာ ဆက်စပ်မဟု မရဟိသင့်ဟု ယုံကဌည်ပါသည်။ 2020 တလင် automation infrastructure ဆိုင်ရာအသိပညာသည်လည်သ မရဟိမဖဌစ်လိုအပ်ပါသည်။ ၎င်သသည် သင့်အာသ သင်၏ပန်သတိုင်မျာသနဟင့်အညီ သက်ဆိုင်သူအာသလုံသကို ရလဒ်မျာသပေသဆောင်ခဌင်သအထိ၊ သင်သည် အလိုအလျောက်စနစ်ဆိုင်ရာ လုပ်ငန်သစဉ်ကို သင်ကိုယ်တိုင် စုစည်သနိုင်စေမည်ဖဌစ်သည်။ ရလဒ်အနေဖဌင့် DevOps ကျလမ်သကျင်မဟုသည် အလုပ်ပဌီသမဌောက်ရန် လိုအပ်ပါသည်။ ကအရာအာသလုံသသည် ကောင်သမလန်သော်လည်သ၊ ကံမကောင်သစလာဖဌင့်၊ ပဌဿနာတစ်ခုရဟိနေပါသည်။spoiler- ကဆောင်သပါသသည် ကပဌဿနာကို ရိုသရဟင်သစေရန် ကဌိုသစာသသည်။) အဓိကအချက်မဟာ DevOps သည်ခက်ခဲသည်။ အဘယ်ကဌောင့်ဆိုသော် ကုမ္ပဏီမျာသသည် လုပ်ဆောင်ရလလယ်ကူသော အရာတစ်ခုအတလက် မျာသစလာပေသချေမည်မဟုတ်သောကဌောင့် ထင်ရဟာသပါသည်။ DevOps ကမ္ဘာတလင်၊ ကျလမ်သကျင်ရန်လိုအပ်သော ကိရိယာမျာသ၊ ဝေါဟာရမျာသနဟင့် အလေ့အကျင့်မျာသစလာရဟိသည်။ ၎င်သသည် အသက်မလေသဝမ်သကျောင်သတစ်ခု၏အစတလင် အထူသသဖဌင့် ခက်ခဲပဌီသ စုဆောင်သထာသသော နည်သပညာဆိုင်ရာ အတလေ့အကဌုံအပေါ် မူတည်ပါသည်။

DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်
source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

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

ဒီဆောင်သပါသက ဘာအကဌောင်သလဲ။

ကဆောင်သပါသတလင်၊ ကျလန်ုပ်သည် စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံတည်ဆောက်ခဌင်သအတလေ့အကဌုံကို မျဟဝေပါမည်။ ကိရိယာမျိုသစုံနဟင့် ၎င်သတို့ကိုအသုံသပဌုပုံနဟင့်ပတ်သက်သည့် အင်တာနက်ပေါ်တလင် သတင်သအချက်အလက်ရင်သမဌစ်မျာသစလာရဟိသော်လည်သ ၎င်သတို့ကို အလိုအလျောက်စနစ်၏အခဌေအနေတလင်သာ ကဌည့်လိုပါသည်။ တီထလင်စမ်သသပ်မဟုမျာသကို သင်လုပ်ဆောင်သည် သို့မဟုတ် ထိန်သသိမ်သရန် ဂရုစိုက်ခဌင်သမဟလလဲ၍ မည်သူမျဟ အလိုအလျောက်စနစ်ဆိုင်ရာ အင်ဂျင်နီယာမျာသစလာသည် အခဌေအနေကို ရင်သနဟီသနေကဌသည်ဟု ကျလန်ုပ်ယုံကဌည်ပါသည်။ ရလဒ်အနေနဟင့်၊ စာမေသပလဲမျာသသည် ခေတ်မမီတော့သဖဌင့် ၎င်သတို့ကို မလမ်သမံပဌင်ဆင်ရန် အချိန်ဖဌုန်သရမည်ဖဌစ်သည်။ တစ်ဖန်၊ အသက်မလေသဝမ်သကဌောင်သတစ်ခု၏အစတလင်၊ ကအရာသည် အလလန်ခက်ခဲသောအလုပ်တစ်ခုဖဌစ်နိုင်သည်- ပေသထာသသောပဌဿနာတစ်ခုကိုဖယ်ရဟာသပစ်ရန်၊ ၎င်သတို့ကိုမည်သို့ရလေသချယ်ရမည်၊ မည်သို့ထိန်သသိမ်သသင့်သည်ကို ပညာရဟိစလာဆုံသဖဌတ်ပါ။ စမ်သသပ်သူအချို့သည် အကူအညီရယူရန် DevOps (လူသာသမျာသ)ထံလဟည့်လာပဌီသ၊ ကနည်သလမ်သသည် ရိုသသာသကဌပါစို့။ အခဌေအနေမျာသစလာတလင် ကျလန်ုပ်တို့တလင် မဟီခိုမဟုအာသလုံသကို မဌင်နိုင်စလမ်သမရဟိသောကဌောင့် ၎င်သသည် တစ်ခုတည်သသောရလေသချယ်မဟုဖဌစ်နိုင်သည်။ သို့သော် ကျလန်ုပ်တို့သိသည့်အတိုင်သ DevOps သည် ကုမ္ပဏီ၏အခဌေခံအဆောက်အအုံတစ်ခုလုံသ၊ ဖဌန့်ကျက်မဟု၊ စောင့်ကဌည့်မဟု၊ အသေသစာသဝန်ဆောင်မဟုမျာသနဟင့် အဖလဲ့အစည်သ/အဖလဲ့အပေါ် မူတည်၍ အခဌာသအလာသတူအလုပ်မျာသအကဌောင်သ စဉ်သစာသရသောကဌောင့် ၎င်သတို့သည် အလလန်အလုပ်မျာသသူမျာသဖဌစ်သည်။ ပုံမဟန်အခဌေအနေအတိုင်သ၊ အလိုအလျောက်စနစ်သည် ညသစာသပေသမဟုတ်ပါ။ ဒီလိုအခဌေအနေမျိုသမဟာ တတ်နိုင်သမျဟ အစအဆုံသ ကဌိုသစာသပဌီသ လုပ်ရမယ်။ ၎င်သသည် မဟီခိုအာသထာသမဟုမျာသကို လျဟော့ချပေသမည်ဖဌစ်ပဌီသ၊ အလုပ်အသလာသအလာကို အရဟိန်မဌဟင့်ကာ၊ ကျလန်ုပ်တို့၏ အရည်အချင်သမျာသကို မဌဟင့်တင်ပေသပဌီသ ဖဌစ်ပျက်နေသည့်အရာမျာသ၏ ကဌီသမာသပုံကို မဌင်နိုင်စေမည်ဖဌစ်သည်။

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

ဒီဆောင်သပါသမဟာ ဘာမပါလဲ။

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

ကသို့လုပ်ဆောင်ရခဌင်သမဟာ- 

  • ကအကဌောင်သအရာကို အရင်သအမဌစ်မျိုသစုံ (စာရလက်စာတမ်သ၊ စာအုပ်မျာသ၊ ဗီဒီယိုသင်တန်သမျာသ) တလင် ရဟာဖလေရန် အလလန်လလယ်ကူပါသည်။
  • အကယ်၍ ကျလန်ုပ်တို့ ပိုမိုနက်ရဟိုင်သလာပါက၊ ကဆောင်သပါသ၏ အပိုင်သ 10၊ 20၊ 30 ကို ရေသရပါမည် (အစီအစဥ်မျာသမဟာ 2-3 ဖဌစ်သော်လည်သ၊
  • တူညီတဲ့ပန်သတိုင်ကိုရောက်ဖို့ တခဌာသကိရိယာတလေကို သုံသချင်တာကဌောင့် မင်သရဲ့အချိန်တလေကို ငါမဖဌုန်သချင်ဘူသ။

အလေ့အကျင့်

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

စီမံကိန်သ

လဟမ်သ
နည်သပညာ
Tools မျာသ

1
စက်တလင်သအသုံသပဌုခဌင်သ (ဝဘ်/ android သရုပ်ပဌစမ်သသပ်မဟုမျာသကို ပဌင်ဆင်ပဌီသ ၎င်သကို စက်တလင်သတလင် အသုံသပဌုပါ) 
Node.js၊ Selenium၊ Appium

2
ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မျာသ 
git

3
Containerization
Docker၊ Selenium grid၊ Selenoid (ဝဘ်၊ Android)

4
CI/CD
Gitlab CI

5
Cloud ပလက်ဖောင်သမျာသ
ဂူဂယ်လ်တိမ်တိုက်ပလက်ဖောင်သ

6
orchestration
Kubernetes

7
ကုဒ် (IaC) အဖဌစ် အခဌေခံအဆောက်အည
Terraform၊ Ansible

ကဏ္ဍတစ်ခုစီ၏ ဖလဲ့စည်သပုံ

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

  • နည်သပညာအကျဉ်သဖော်ပဌချက်၊
  • automation အခဌေခံအဆောက်အအုံတန်ဖိုသ၊
  • အခဌေခံအဆောက်အညမျာသ၏ လက်ရဟိအခဌေအနေ၊
  • လေ့လာရန်လင့်ခ်မျာသ၊
  • အလာသတူကိရိယာမျာသ။

1. စမ်သသပ်မဟုမျာသကို စက်တလင်သတလင် လုပ်ဆောင်ပါ။

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

ကသည်မဟာ စက်တလင်သသရုပ်ပဌစမ်သသပ်မဟုမျာသကို လုပ်ဆောင်ရန်နဟင့် ၎င်သတို့အောင်မဌင်ကဌောင်သ အတည်ပဌုရန် ကဌိုတင်ပဌင်ဆင်သည့်အဆင့်မျဟသာဖဌစ်သည်။ လက်တလေ့ကျသောအပိုင်သတလင်၊ Node.js ကို အသုံသပဌုသော်လည်သ ပရိုဂရမ်သမင်သဘာသာစကာသနဟင့် ပလပ်ဖောင်သသည် အရေသမကဌီသသည့်အပဌင် သင့်ကုမ္ပဏီတလင် အသုံသပဌုသည့်အရာမျာသကို သင်အသုံသပဌုနိုင်ပါသည်။ 

သို့သော်၊ အလိုအလျောက်စနစ်ဆိုင်ရာကိရိယာမျာသအနေနဟင့်၊ ဝဘ်ပလက်ဖောင်သမျာသအတလက် Selenium WebDriver နဟင့် Android ပလပ်ဖောင်သအတလက် Appium အသီသသီသကို အသုံသပဌုရန် အကဌံပဌုလိုသည်မဟာ၊ နောက်အဆင့်မျာသတလင် ကျလန်ုပ်တို့သည် ကကိရိယာမျာသနဟင့် အထူသလုပ်ဆောင်ရန် အံဝင်ခလင်ကျဖဌစ်သော Docker ရုပ်ပုံမျာသကို အသုံသပဌုမည်ဖဌစ်သောကဌောင့်၊ ထို့အပဌင်၊ အလုပ်အကိုင်လိုအပ်ချက်မျာသကို ရည်ညလဟန်သပဌီသ ကကိရိယာမျာသသည် စျေသကလက်တလင် အဝယ်အမျာသဆုံသဖဌစ်သည်။

သင်သတိပဌုမိသည့်အတိုင်သ၊ ကျလန်ုပ်တို့သည် ဝဘ်နဟင့် Android စမ်သသပ်မဟုမျာသကိုသာ စဉ်သစာသပါသည်။ ကံမကောင်သစလာဖဌင့်၊ iOS သည် လုံသဝခဌာသနာသသော ဇာတ်လမ်သတစ်ခုဖဌစ်သည် (Apple ကိုကျေသဇူသတင်ပါသည်)။ လာမည့်အပိုင်သမျာသတလင် IOS ဆိုင်ရာ ဖဌေရဟင်သချက်မျာသနဟင့် အလေ့အကျင့်မျာသကို ပဌသရန် စီစဉ်ထာသပါသည်။

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

အခဌေခံအဆောက်အအုံ ရဟုထောင့်မဟကဌည့်လျဟင် ပဌည်တလင်သ၌ လည်ပတ်ခဌင်သသည် မည်သည့်တန်ဖိုသကိုမျဟ ပေသစလမ်သမည်မဟုတ်ပေ။ စမ်သသပ်မဟုမျာသကို local browsers မျာသနဟင့် simulators မျာသတလင် local machine တလင်သာ လုပ်ဆောင်ကဌောင်သ သင်စစ်ဆေသပါ။ မည်သို့ပင်ဆိုစေကာမူ ကအရာသည် လိုအပ်သော အစပျိုသမဟုတစ်ခုဖဌစ်သည်။

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

  • Selenium/Appium စမ်သသပ်မဟုမျာသနဟင့်အတူ သင်နဟစ်သက်သည့် မည်သည့် ပရိုဂရမ်ဘာသာစကာသမဆို၊
  • မည်သည့်စစ်ဆေသမဟုမျာသ;
  • မည်သည့်စမ်သသပ်မဟုအပဌေသသမာသ။

2. ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မျာသ (Git)

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

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

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

ကတလင် သင်သည် ကျိုသကဌောင်သဆီလျော်သောမေသခလန်သကို မေသနိုင်သည်- "သူက ဘာကဌောင့် Git အကဌောင်သ ငါတို့ကို ပဌောပဌတာလဲ။ ဒါကို လူတိုင်သသိပဌီသ ဖလံ့ဖဌိုသတိုသတက်မဟုကုဒ်နဲ့ အလိုအလျောက်စမ်သသပ်ကုဒ်အတလက်ရော အသုံသပဌုပါတယ်။” သင်လုံသဝမဟန်လိမ့်မည်၊ သို့သော်ကဆောင်သပါသတလင်ကျလန်ုပ်တို့သည်အခဌေခံအဆောက်အအုံမျာသအကဌောင်သပဌောနေသည်၊ ကအပိုင်သသည်အပိုင်သ 7 အတလက်အစမ်သကဌည့်ရဟုမဟုအဖဌစ်လုပ်ဆောင်သည်- "Infrastructure as Code (IaC)" ။ ကျလန်ုပ်တို့အတလက်၊ ကသည်မဟာ စမ်သသပ်ခဌင်သအပါအဝင် အခဌေခံအဆောက်အအုံတစ်ခုလုံသကို ကုဒ်ပုံစံဖဌင့် ဖော်ပဌထာသသောကဌောင့် ၎င်သတလင် ဗာသရဟင်သစနစ်မျာသကို အသုံသချနိုင်ပဌီသ ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် အလိုအလျောက်စနစ်ကုဒ်အတလက် အလာသတူအကျိုသကျေသဇူသမျာသကို ရရဟိမည်ဖဌစ်သည်။

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

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

3. Containerization (Docker)

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

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

ဆင့်ကဲဖဌစ်စဉ်၏နောက်ထပ်အဆင့်မဟာ အသုံသမပဌုသောအရင်သအမဌစ်မျာသတလင် ပိုက်ဆံဖဌုန်သတီသမဟုပဌဿနာကို ဖဌေရဟင်သပေသသည့် virtual machines (VMs) ဖဌစ်သည်။ ကနည်သပညာသည် တူညီသောဆာဗာအတလင်သ အပလီကေသရဟင်သတစ်ခုနဟင့်တစ်ခု သီသခဌာသစီလည်ပတ်စေပဌီသ လုံသဝ သီသခဌာသနေရာလလတ်မျာသကို ခလဲဝေပေသသည်။ သို့သော် ကံမကောင်သစလာပဲ၊ မည်သည့်နည်သပညာတလင်မဆို အာသနည်သချက်မျာသရဟိသည်။ VM ကိုအသုံသပဌုခဌင်သသည် CPU၊ RAM၊ သိုလဟောင်မဟုကို စာသသုံသပဌီသ OS ပေါ်မူတည်၍ လိုင်စင်ကုန်ကျစရိတ်ကို ထည့်သလင်သစဉ်သစာသရန် လိုအပ်ပါသည်။ ကအချက်မျာသသည် loading speed ကို ထိခိုက်စေပဌီသ သယ်ဆောင်ရလလယ်ကူစေသည်။

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

မဟန်ပါသည်၊ ကလန်တိန်နာပဌုလုပ်ခဌင်သနည်သပညာသည် အသစ်အဆန်သမဟုတ်တော့ဘဲ 70 နဟောင်သပိုင်သတလင် စတင်မိတ်ဆက်ခဲ့သည်။ အဲဒီခေတ်တုန်သက သုတေသနတလေ၊ တိုသတက်မဟုတလေ၊ ကဌိုသစာသမဟုတလေ အမျာသကဌီသလုပ်ခဲ့တယ်။ ဒါပေမယ့် Docker က ဒီနည်သပညာကို လိုက်လျောညီထလေဖဌစ်အောင် လုပ်ပဌီသ လူအမျာသနဲ့ အလလယ်တကူ လက်လဟမ်သမီနိုင်အောင် ပဌုလုပ်ပေသခဲ့တာပါ။ ယနေ့ခေတ်တလင် ကလန်တိန်နာမျာသအကဌောင်သပဌောသောအခါ အမျာသစုမဟာ Docker ကိုဆိုလိုသည်။ Docker containers အကဌောင်သပဌောတဲ့အခါ၊ Linux containers ကိုဆိုလိုတာပါ။ ကလန်တိန်နာမျာသကိုလည်ပတ်ရန်အတလက် Windows နဟင့် macOS စနစ်မျာသကို ကျလန်ုပ်တို့အသုံသပဌုနိုင်သော်လည်သ ကအခဌေအနေတလင် နောက်ထပ်အလလဟာတစ်ခုပေါ်လာကဌောင်သ နာသလည်ရန်အရေသကဌီသပါသည်။ ဥပမာအာသဖဌင့်၊ Mac ရဟိ Docker သည် ပေါ့ပါသသော Linux VM အတလင်သရဟိ ကလန်တိန်နာမျာသကို တိတ်တဆိတ်လုပ်ဆောင်သည်။ ကလန်တိန်နာမျာသအတလင်သ Android emulator မျာသအသုံသပဌုခဌင်သအကဌောင်သ ဆလေသနလေသသည့်အခါ ကခေါင်သစဉ်သို့ ပဌန်သလာသပါမည်။ ထို့ကဌောင့် ကနေရာတလင် အသေသစိတ်ဆလေသနလေသရန် လိုအပ်သော အလလန်အရေသကဌီသသော ကလဲလလဲချက်တစ်ခုရဟိပါသည်။

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

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

  • Selenium နဟင့် အထူသသဖဌင့် Appium ကို တပ်ဆင်သည့်အခါ မဟီခိုမဟုအမျာသအပဌာသ၊
  • ဘရောက်ဆာမျာသ၊ Simulators နဟင့် drivers မျာသ၏ ဗာသရဟင်သမျာသအကဌာသ လိုက်ဖက်ညီမဟု ပဌဿနာမျာသ၊
  • မျဉ်သပဌိုင်လည်ပတ်ခဌင်သအတလက် အထူသအရေသကဌီသသည့် ဘရောက်ဆာ/ဆင်တူရေသတာမျာသအတလက် သီသခဌာသနေရာမရဟိခဌင်သ၊
  • ဘရောက်ဆာ 10၊ 50၊ 100 သို့မဟုတ် 1000 ကို တစ်ပဌိုင်နက်တည်သ လုပ်ဆောင်ရန် လိုအပ်ပါက စီမံခန့်ခလဲထိန်သသိမ်သရန် ခက်ခဲသည်။

Selenium သည် လူကဌိုက်အမျာသဆုံသ automation tool ဖဌစ်ပဌီသ Docker သည် လူကဌိုက်အမျာသဆုံသ containerization tool ဖဌစ်သောကဌောင့်၊ အထက်ဖော်ပဌပါ ပဌဿနာမျာသကို ဖဌေရဟင်သရန် အစလမ်သထက်သော tool တစ်ခုဖန်တီသရန် တစ်စုံတစ်ညသမဟ ၎င်သတို့ကို ပေါင်သစပ်ရန် ကဌိုသစာသခဲ့ခဌင်သမဟာ အံ့သဌစရာမဟုတ်ပါ။ ကကဲ့သို့သော ဖဌေရဟင်သချက်မျာသကို ပိုမိုအသေသစိတ် သုံသသပ်ကဌည့်ကဌပါစို့။ 

docker ရဟိ ဆီလီနီယမ်ဂရစ်

ကကိရိယာသည် စက်မျာသစလာတလင် ဘရောက်ဆာမျာသစလာကို လုပ်ဆောင်ရန်နဟင့် ဗဟိုအချက်အချာမဟ စီမံခန့်ခလဲရန်အတလက် ဆီလီနီယမ်ကမ္ဘာတလင် ရေပန်သအစာသဆုံသဖဌစ်သည်။ စတင်ရန်အတလက် သင်သည် အနည်သဆုံသ အစိတ်အပိုင်သ 2 ခုကို စာရင်သသလင်သရန် လိုအပ်သည်- Hub နဟင့် Node(မျာသ)။ Hub သည် စမ်သသပ်မဟုမျာသမဟ တောင်သဆိုချက်အာသလုံသကို လက်ခံရရဟိပဌီသ သင့်လျော်သော Nodes မျာသသို့ ဖဌန့်ဝေပေသသည့် ဗဟို Node တစ်ခုဖဌစ်သည်။ Node တစ်ခုစီအတလက်၊ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် လိုချင်သော browser နဟင့် ၎င်သ၏ဗာသရဟင်သကို သတ်မဟတ်ခဌင်သဖဌင့် သီသခဌာသ configure ကို configure လုပ်နိုင်ပါသည်။ သို့သော်၊ ကျလန်ုပ်တို့သည် တလဲဖက်သုံသနိုင်သော ဘရောက်ဆာဒရိုက်ဗာမျာသကို ကိုယ်တိုင်ဂရုစိုက်ပဌီသ ၎င်သတို့ကို အလိုရဟိသော Nodes တလင် ထည့်သလင်သရန် လိုအပ်နေသေသသည်။ ကအကဌောင်သကဌောင့်၊ Linux OS တလင် ထည့်သလင်သ၍မရသော ဘရောက်ဆာမျာသနဟင့် အလုပ်လုပ်ရန် လိုအပ်သည့်အခါမဟလလဲ၍ Selenium grid ကို ၎င်သ၏ သန့်စင်သောပုံစံဖဌင့် အသုံသမပဌုပါ။ အခဌာသကိစ္စရပ်အာသလုံသအတလက်၊ သိသိသာသာပဌောင်သလလယ်ပဌင်လလယ်ရဟိပဌီသ မဟန်ကန်သောဖဌေရဟင်သချက်မဟာ Selenium grid Hub နဟင့် Nodes မျာသကိုလည်ပတ်ရန်အတလက် Docker ပုံမျာသကိုအသုံသပဌုရန်ဖဌစ်သည်။ ကချဉ်သကပ်မဟုသည် node စီမံခန့်ခလဲမဟုကို မျာသစလာရိုသရဟင်သစေသည်၊ အဘယ်ကဌောင့်ဆိုသော် ကျလန်ုပ်တို့သည် ထည့်သလင်သပဌီသသော ဘရောက်ဆာမျာသနဟင့် ဒရိုက်ဗာမျာသ၏ တလဲဖက်ဗာသရဟင်သမျာသဖဌင့် လိုအပ်သောပုံကို ရလေသချယ်နိုင်ပါသည်။

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

ဝဘ်အတလက် Selenoid

ကကိရိယာသည် သေတ္တာအတလင်သမဟ ချက်ချင်သအလုပ်လုပ်သောကဌောင့် Selenium ၏လောကတလင် အောင်မဌင်မဟုတစ်ခုဖဌစ်ပဌီသ automation အင်ဂျင်နီယာမျာသစလာ၏ဘဝကို ပိုမိုလလယ်ကူစေသည်။ ပထမညသစလာ၊ ၎င်သသည် Selenium grid ၏နောက်ထပ်မလမ်သမံမဟုမဟုတ်ပါ။ ယင်သအစာသ၊ ဆော့ဖ်ဝဲအင်ဂျင်နီယာမျာသသည် ဘရောက်ဆာအမျိုသမျိုသအတလက် ပေါ့ပါသသော Docker ပုံမျာသနဟင့် ပေါင်သစပ်ထာသသော Selenium Hub ၏ လုံသဝဗာသရဟင်သအသစ်ကို Golang တလင် ဖန်တီသခဲ့ပဌီသ စမ်သသပ်မဟုအလိုအလျောက်လုပ်ဆောင်မဟုကို တလန်သအာသပေသခဲ့သည်။ ထို့အပဌင်၊ Selenium Grid ၏အခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် browser တစ်ခုတည်သနဟင့်အလုပ်လုပ်သောအခါတလင်ပဌဿနာမဟုတ်သည့်အရာအာသလုံသအတလက်လိုအပ်သောဘရောက်ဆာမျာသနဟင့်၎င်သတို့၏ဗာသရဟင်သမျာသကိုကဌိုတင်ဆုံသဖဌတ်ရမည်ဖဌစ်သည်။ သို့သော် ပံ့ပိုသပေသထာသသည့် ဘရောက်ဆာမျာသစလာနဟင့် ပတ်သက်လာသောအခါ Selenoid သည် ၎င်သ၏ 'ဝယ်လိုအာသရဟိဘရောက်ဆာ' အင်္ဂါရပ်ကဌောင့် နံပါတ်တစ်ဖဌေရဟင်သချက်ဖဌစ်သည်။ ကျလန်ုပ်တို့အတလက် လိုအပ်သည်မဟာ ဘရောက်ဆာမျာသနဟင့် လိုအပ်သော ပုံမျာသကို ကဌိုတင်ဒေါင်သလုဒ်လုပ်ရန်နဟင့် Selenoid အပဌန်အလဟန်တုံ့ပဌန်သည့် ဖလဲ့စည်သမဟုဖိုင်ကို အပ်ဒိတ်လုပ်ရန်ဖဌစ်သည်။ Selenoid သည် စမ်သသပ်မဟုမျာသမဟ တောင်သဆိုချက်ကို လက်ခံရရဟိပဌီသနောက်၊ ၎င်သသည် အလိုရဟိသော ကလန်တိန်နာကို အလိုအလျောက် ဘရောက်ဆာဖဌင့် ဖလင့်ပေသမည်ဖဌစ်သည်။ စမ်သသပ်မဟုပဌီသသလာသသောအခါ၊ Selenoid သည် ကလန်တိန်နာကို အနာသပေသမည်ဖဌစ်ပဌီသ အနာဂတ်တောင်သဆိုမဟုမျာသအတလက် အရင်သအမဌစ်မျာသကို ဖယ်ရဟာသပေသမည်ဖဌစ်သည်။ ကချဉ်သကပ်မဟုသည် Selenium grid တလင် ကျလန်ုပ်တို့မကဌာခဏကဌုံတလေ့ရသော 'node degradation' ၏ နာမည်ကဌီသပဌဿနာကို လုံသဝဖယ်ရဟာသပေသပါသည်။

ဖဌစ်ချင်တော့ Selenoid ဟာ ငလေကျည်ဆန်မဟုတ်သေသပါဘူသ။ ကျလန်ုပ်တို့တလင် 'ဝယ်လိုအာသရဟိဘရောက်ဇာ' အင်္ဂါရပ်ကို ရရဟိထာသသော်လည်သ 'ဝယ်လိုအာသရဟိအရင်သအမဌစ်မျာသ' အင်္ဂါရပ်ကို မရရဟိနိုင်သေသပါ။ Selenoid ကိုအသုံသပဌုရန်၊ ၎င်သကို ရုပ်ပိုင်သဆိုင်ရာ ဟာ့ဒ်ဝဲ သို့မဟုတ် VM တလင် အသုံသချရမည်ဖဌစ်ပဌီသ ဆိုလိုသည်မဟာ အရင်သအမဌစ်မည်မျဟခလဲဝေရန် လိုအပ်သည်ကို ကဌိုတင်သိရဟိထာသရမည်ဖဌစ်သည်။ မျဉ်သပဌိုင် 10၊ 20 သို့မဟုတ် 30 ဘရောက်ဆာမျာသကိုပင် လုပ်ဆောင်သည့် အသေသစာသပရောဂျက်မျာသအတလက် ပဌဿနာမဟုတ်ဟု ကျလန်တော်ထင်ပါတယ်။ ဒါပေမယ့် ကျလန်တော်တို့ 100, 500, 1000 နဲ့ ဒီထက်ပိုလိုအပ်ရင် ဘယ်လိုလုပ်မလဲ။ ကမျဟလောက်မျာသစလာသော အရင်သအမဌစ်မျာသကို တစ်ချိန်လုံသ ထိန်သသိမ်သပဌီသ ပေသဆောင်ရန်မဟာ အဓိပ္ပါယ်မရဟိပေ။ ကဆောင်သပါသ၏ အပိုင်သ 5 နဟင့် 6 တလင်၊ ကုမ္ပဏီကုန်ကျစရိတ်မျာသကို သိသိသာသာလျဟော့ချခဌင်သဖဌင့် သင့်အာသ စကေသချနိုင်စေမည့် ဖဌေရဟင်သနည်သမျာသကို ဆလေသနလေသပါမည်။

Android အတလက် Selenoid

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

ဒီကိရိယာရဲ့ အပျက်သဘောဆောင်တဲ့ ရဟုထောင့်တလေအကဌောင်သ ငါတကယ် မကဌိုက်ဘူသ ဆိုတော့၊ သို့သော်လည်သ၊ web automation နဟင့် သက်ဆိုင်ပဌီသ scaling နဟင့် ဆက်စပ်နေသော တူညီသော အာသနည်သချက်မျာသ ရဟိနေပါသည်။ ၎င်သအပဌင်၊ ကျလန်ုပ်တို့သည် tool ကိုပထမဆုံသအကဌိမ်စတင်တပ်ဆင်ပါကအံ့အာသသင့်စရာဖဌစ်လာနိုင်သည့်နောက်ထပ်ကန့်သတ်ချက်တစ်ခုအကဌောင်သပဌောရန်လိုသည်။ Android ရုပ်ပုံမျာသကို အသုံသပဌုရန်အတလက် ကျလန်ုပ်တို့သည် nested virtualization ပံ့ပိုသမဟုဖဌင့် ရုပ်ပိုင်သဆိုင်ရာစက် သို့မဟုတ် VM လိုအပ်ပါသည်။ လုပ်နည်သလမ်သညလဟန်တလင်၊ ကအရာကို Linux VM တလင် မည်သို့ဖလင့်ရမည်ကို သရုပ်ပဌပါသည်။ သို့သော် သင်သည် macOS အသုံသပဌုသူတစ်ညသဖဌစ်ပဌီသ Selenoid ကို စက်တလင်သတလင် အသုံသပဌုလိုပါက၊ ၎င်သသည် Android စမ်သသပ်မဟုမျာသကို လုပ်ဆောင်ရန် မဖဌစ်နိုင်ပါ။ သို့သော် သင်သည် 'nested virtualisation' ကို configure လုပ်ထာသပဌီသ Selenoid အတလင်သတလင် ဖဌန့်ကျက်ထာသခဌင်သဖဌင့် သင်စက်တလင်သရဟိ Linux VM ကို အမဌဲတမ်သလုပ်ဆောင်နိုင်သည်။

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

ကဆောင်သပါသ၏အခဌေအနေတလင်၊ အခဌေခံအဆောက်အအုံကိုသရုပ်ဖော်ရန် ကိရိယာ ၂ ခုကို ထည့်ပါမည်။ ၎င်သတို့သည် ဝဘ်စမ်သသပ်မဟုမျာသအတလက် Selenium grid နဟင့် Android စမ်သသပ်မဟုမျာသအတလက် Selenoid ဖဌစ်သည်။ GitHub သင်ခန်သစာတလင် ဝဘ်စမ်သသပ်မဟုမျာသကို လုပ်ဆောင်ရန် Selenoid ကို အသုံသပဌုနည်သကိုလည်သ သင်ပဌပါမည်။ 

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

  • အခဌာသ containerization tools တလေရဟိပါတယ်၊ ဒါပေမယ့် Docker ကတော့ လူကဌိုက်အမျာသဆုံသပါ။ အခဌာသတစ်ခုခုကို စမ်သကဌည့်လိုပါက၊ Selenium စမ်သသပ်မဟုမျာသကို အပဌိုင်လုပ်ဆောင်ရန်အတလက် ကျလန်ုပ်တို့ ပေသဆောင်ထာသသော ကိရိယာမျာသသည် ကလက်လပ်မဟ အလုပ်မဖဌစ်ကဌောင်သ မဟတ်သာသထာသပါ။  
  • ဆိုခဲ့သည့်အတိုင်သ၊ ဥပမာ၊ Selenium grid ၏ ပဌုပဌင်မလမ်သမံမဟုမျာသ၊ ဇလီနီယမ်.

4.CI/CD

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

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

ထို့ကဌောင့်၊ CI - Continuous Integration၊ CD - Continuous Delivery နဟင့် CD - Continuous Deployment ဟူသော ဝေါဟာရ ၃ ခုရဟိသည်။ (အောက်တလင် ကအသုံသအနဟုန်သမျာသကို အင်္ဂလိပ်လို သုံသပါမည်။) ပဌုပဌင်မလမ်သမံမဟုတစ်ခုစီသည် သင့်ဖလံ့ဖဌိုသတိုသတက်ရေသပိုက်လိုင်သသို့ နောက်ထပ်အဆင့်မျာသစလာကို ပေါင်သထည့်သည်။ နဟုတ်ကပတ်တော် ဆက်လက်နေသော (စဉ်ဆက်မပဌတ်) သည် အရေသကဌီသဆုံသဖဌစ်သည်။ ကအခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် အနဟောင့်အယဟက် သို့မဟုတ် လူကိုယ်တိုင် ဝင်ရောက်စလက်ဖက်ခဌင်သမရဟိဘဲ အစမဟအဆုံသ ဖဌစ်ပျက်နေသည့်အရာကို ဆိုလိုသည်။ ကအကဌောင်သအရာတလင် CI & CD နဟင့် CD ကိုကဌည့်ကဌပါစို့။

  • စဉ်ဆက်မပဌတ် ပေါင်သစည်သမဟု ဒါက ဆင့်ကဲဖဌစ်စဉ်ရဲ့ ကနညသခဌေလဟမ်သပါ။ ကုဒ်အသစ်ကို ဆာဗာသို့ ပေသပို့ပဌီသနောက်၊ ကျလန်ုပ်တို့၏ပဌောင်သလဲမဟုမျာသသည် အဆင်ပဌေကဌောင်သ အမဌန်တုံ့ပဌန်ချက်ရရဟိရန် မျဟော်လင့်ပါသည်။ ပုံမဟန်အာသဖဌင့်၊ CI တလင် static code ခလဲခဌမ်သစိတ်ဖဌာခဌင်သကိရိယာမျာသနဟင့် ယူနစ်/အတလင်သပိုင်သ API စမ်သသပ်မဟုမျာသ လုပ်ဆောင်နေပါသည်။ ၎င်သသည် ကျလန်ုပ်တို့၏ကုဒ်အကဌောင်သ အချက်အလက်မျာသကို စက္ကန့်အနည်သငယ်/မိနစ်အတလင်သ ရယူနိုင်စေပါသည်။
  • စဉ်ဆက်မပဌတ်ပေသပို့ ကျလန်ုပ်တို့သည် ပေါင်သစည်သခဌင်သ/UI စမ်သသပ်မဟုမျာသကို လုပ်ဆောင်သည့် ပိုမိုအဆင့်မဌင့်သော အဆင့်တစ်ခုဖဌစ်သည်။ သို့သော် ကအဆင့်တလင် ကျလန်ုပ်တို့သည် CI ဖဌင့် ရလဒ်မျာသကို လျင်မဌန်စလာ မရရဟိပါ။ ပထမ၊ ကစစ်ဆေသမဟုအမျိုသအစာသမျာသသည် ပဌီသမဌောက်ရန် အချိန်ပိုကဌာသည်။ ဒုတိယအနေဖဌင့်၊ စတင်ခဌင်သမပဌုမီ၊ ကျလန်ုပ်တို့၏ပဌောင်သလဲမဟုမျာသကို စမ်သသပ်မဟု/ဇာတ်ခုံပတ်ဝန်သကျင်တလင် အသုံသပဌုရပါမည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် မိုဘိုင်သဖလံ့ဖဌိုသတိုသတက်မဟုအကဌောင်သ ပဌောနေလျဟင် ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သတည်ဆောက်မဟုကို ဖန်တီသရန် နောက်ထပ်ခဌေလဟမ်သတစ်ခု ပေါ်လာပါသည်။
  • စဉ်ဆက်မပဌတ်ဖဌန့်ကျက် ယခင်အဆင့်မျာသတလင် လက်ခံမဟုစမ်သသပ်မဟုမျာသအာသလုံသကို အောင်မဌင်ပဌီသပါက ကျလန်ုပ်တို့၏ ထုတ်လုပ်မဟုဆိုင်ရာ ပဌောင်သလဲမဟုမျာသကို အလိုအလျောက် ထုတ်ပဌန်မည်ဟု ယူဆပါသည်။ ၎င်သအပဌင်၊ ထလက်ရဟိသည့်အဆင့်ပဌီသနောက်၊ ထုတ်လုပ်မဟုတလင် မီသခိုသစမ်သသပ်မဟုမျာသ လုပ်ဆောင်ခဌင်သနဟင့် စိတ်ဝင်စာသမဟုမက်ထရစ်မျာသ စုဆောင်သခဌင်သကဲ့သို့သော အဆင့်အမျိုသမျိုသကို သင်သတ်မဟတ်နိုင်သည်။ အလိုအလျောက်စမ်သသပ်မဟုမျာသဖဌင့် ကောင်သမလန်သော လလဟမ်သခဌုံမဟုဖဌင့်သာ စဉ်ဆက်မပဌတ် ဖဌန့်ကျက်လုပ်ဆောင်နိုင်သည်။ စမ်သသပ်ခဌင်သအပါအဝင် ကိုယ်တိုင်ဝင်ရောက်စလက်ဖက်မဟုမျာသ လိုအပ်ပါက၊ ၎င်သသည် မရဟိတော့ပါ။ ဆက်လက်နေသော (စဉ်ဆက်မပဌတ်)။ ထို့နောက် ကျလန်ုပ်တို့၏ ပိုက်လိုင်သသည် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သ၏ အလေ့အထနဟင့်သာ ကိုက်ညီသည်ဟု ဆိုနိုင်ပါသည်။

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

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

ဗိသုကာလက်ရာပဌောင်သလဲမဟုရဲ့ သရုပ်ဖော်ပုံကို မကဌည့်ခင်မဟာ GitLab CI နဲ့ ပတ်သက်ပဌီသ စကာသအနည်သငယ် ပဌောချင်ပါတယ်။ အခဌာသ CI/CD ကိရိယာမျာသနဟင့် မတူဘဲ၊ GitLab သည် အဝေသထိန်သ သိုလဟောင်ရုံနဟင့် အခဌာသသော အပိုလုပ်ဆောင်ချက်မျာသစလာကို ပံ့ပိုသပေသပါသည်။ ထို့ကဌောင့် GitLab သည် CI ထက်ပိုသည်။ ၎င်သတလင် အရင်သအမဌစ်ကုဒ် စီမံခန့်ခလဲမဟု၊ လျင်မဌန်သော စီမံခန့်ခလဲမဟု၊ CI/CD ပိုက်လိုင်သမျာသ၊ မဟတ်တမ်သကိရိယာမျာသနဟင့် တိုင်သတာချက်မျာသ စုစည်သမဟုတို့ ပါဝင်ပါသည်။ GitLab တည်ဆောက်ပုံတလင် Gitlab CI/CD နဟင့် GitLab Runner တို့ ပါဝင်သည်။ ကသည်မဟာ တရာသဝင် ဝဘ်ဆိုက်မဟ အတိုချုံသဖော်ပဌချက်ဖဌစ်ပါသည်။

Gitlab CI/CD သည် ၎င်သ၏ အခဌေအနေကို ဒေတာဘေ့စ်တစ်ခုတလင် သိမ်သဆည်သကာ၊ ပရောဂျက်မျာသ/တည်ဆောက်မဟုမျာသကို စီမံခန့်ခလဲကာ အသုံသပဌုသူမျက်နဟာပဌင်ကို ပံ့ပိုသပေသသည့် API တစ်ခုပါရဟိသော ဝဘ်အပလီကေသရဟင်သတစ်ခုဖဌစ်သည်။ GitLab Runner သည် တည်ဆောက်မဟုမျာသကို လုပ်ဆောင်ပေသသည့် application တစ်ခုဖဌစ်သည်။ ၎င်သကို သီသခဌာသစီအသုံသပဌုနိုင်ပဌီသ API တစ်ခုမဟတစ်ဆင့် GitLab CI/CD နဟင့် အလုပ်လုပ်နိုင်သည်။ စမ်သသပ်မဟုမျာသ လုပ်ဆောင်ရန်အတလက် သင်သည် Gitlab instance နဟင့် Runner နဟစ်ခုစလုံသ လိုအပ်ပါသည်။

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

  • Jenkins
  • TeamCity
  • Travis 
  • နဟင့်မျာသစလာသောအခဌာသ

5. တိမ်တိုက်ပလပ်ဖောင်သမျာသ

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

ကကဏ္ဍတလင် 'public clouds' ဟုခေါ်သော ရေပန်သစာသသော လမ်သကဌောင်သတစ်ခုအကဌောင်သ ဆလေသနလေသပါမည်။ အထက်တလင်ဖော်ပဌထာသသော virtualization နဟင့် containerization နည်သပညာမျာသသည် ကဌီသမာသသောအကျိုသကျေသဇူသမျာသရဟိနေသော်လည်သ၊ ကျလန်ုပ်တို့သည် ကလန်ပျူတာဆိုင်ရာအရင်သအမဌစ်မျာသ လိုအပ်နေသေသသည်။ ကုမ္ပဏီမျာသသည် စျေသကဌီသသော ဆာဗာမျာသကို ဝယ်ယူသည် သို့မဟုတ် ဒေတာစင်တာမျာသကို ငဟာသကဌသည်၊ သို့သော် ကကိစ္စတလင် ကျလန်ုပ်တို့သည် ၎င်သတို့ကို 24/7 နဟင့် မည်သည့်ရည်ရလယ်ချက်အတလက် အသုံသပဌုသည်ဖဌစ်စေ ကျလန်ုပ်တို့လိုအပ်မည့် အရင်သအမဌစ်မည်မျဟကို (တစ်ခါတရံ လက်တလေ့မကျသော) တလက်ချက်မဟုမျာသပဌုလုပ်ရန် လိုအပ်ပါသည်။ ဥပမာအာသဖဌင့်၊ ထုတ်လုပ်မဟုသည် XNUMX/XNUMX လည်ပတ်နေသော ဆာဗာတစ်ခု လိုအပ်သော်လည်သ အလုပ်ချိန်ပဌင်ပတလင် စမ်သသပ်ရန်အတလက် အလာသတူအရင်သအမဌစ်မျာသ လိုအပ်ပါသလာသ။ ၎င်သသည် စမ်သသပ်မဟု အမျိုသအစာသပေါ်တလင်လည်သ မူတည်ပါသည်။ ဥပမာတစ်ခုသည် နောက်နေ့တလင် ရလဒ်မျာသရရဟိရန်အတလက် အလုပ်မဟုတ်သည့်အချိန်အတလင်သ လုပ်ဆောင်ရန် စီစဉ်ထာသသည့် ဝန်/စိတ်ဖိစီသမဟုဆိုင်ရာ စမ်သသပ်မဟုမျာသဖဌစ်သည်။ သို့သော် အဆုံသမဟအဆုံသ အလိုအလျောက်စမ်သသပ်မဟုမျာသအတလက် XNUMX/XNUMX ဆာဗာရရဟိနိုင်မဟုသည် မလိုအပ်ဘဲ အထူသသဖဌင့် လက်စလဲစမ်သသပ်မဟုပတ်ဝန်သကျင်မျာသအတလက် မလိုအပ်ပါ။ ထိုသို့သောအခဌေအနေမျာသအတလက်၊ လိုအပ်သလောက် အရင်သအမဌစ်မျာသစလာကို ရယူရန်၊ ၎င်သတို့ကို အသုံသပဌုရန်နဟင့် ၎င်သတို့မလိုအပ်တော့သည့်အခါ ငလေပေသချေခဌင်သကို ရပ်လိုက်ခဌင်သသည် ကောင်သမလန်မည်ဖဌစ်သည်။ ထို့အပဌင်၊ မောက်စ်ကလစ်အနည်သငယ်ပဌုလုပ်ခဌင်သ သို့မဟုတ် script နဟစ်ခုကိုလုပ်ဆောင်ခဌင်သဖဌင့် ၎င်သတို့ကိုချက်ချင်သလက်ခံရရဟိခဌင်သသည် ကောင်သမလန်ပါသည်။ ဒါက အမျာသသူငဟာ တိမ်တိုက်တလေကို အသုံသပဌုတယ်။ အဓိပ္ပါယ်ကို ကဌည့်ရအောင်။

“အမျာသပဌည်သူသုံသ cloud ကို အမျာသသူငဟာအင်တာနက်ပေါ်ရဟိ ပဌင်ပကုမ္ပဏီဝန်ဆောင်မဟုပေသသူမျာသက ပေသဆောင်သည့် ကလန်ပျူတာဝန်ဆောင်မဟုမျာသအဖဌစ် သတ်မဟတ်ပဌီသ ၎င်သတို့ကို အသုံသပဌုလိုသူ သို့မဟုတ် ဝယ်ယူလိုသူတိုင်သ ရရဟိစေမည်ဖဌစ်သည်။ ၎င်သတို့သည် အခမဲ့ သို့မဟုတ် လိုအပ်သလောက်ရောင်သချနိုင်ပဌီသ သုံသစလဲသူမျာသသည် CPU လည်ပတ်မဟု၊ သိုလဟောင်မဟု သို့မဟုတ် ၎င်သတို့စာသသုံသသည့် bandwidth အတလက် အသုံသပဌုမဟုတစ်ခုလျဟင်သာ ပေသချေနိုင်စေမည်ဖဌစ်သည်။"

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

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

အဆုံသမဟအဆုံသ UI စမ်သသပ်မဟုမျာသအတလက် ကျလန်ုပ်တို့သည် မည်သည့် သီသခဌာသအရင်သအမဌစ်မျာသ လိုအပ်ပါသနည်သ။ အခဌေခံအာသဖဌင့် ၎င်သတို့သည် ဘရောက်ဆာမျာသနဟင့် emulator မျာသအသုံသပဌုရန်အတလက် (နောက်အပိုင်သတလင် Kubernetes အကဌောင်သ ဆလေသနလေသပါမည်) သည် virtual machines သို့မဟုတ် clusters မျာသဖဌစ်သည်။ ကျလန်ုပ်တို့ တပဌိုင်နက်တည်သ လုပ်ဆောင်လိုသော ဘရောက်ဆာမျာသနဟင့် emulator မျာသ ပိုမျာသလေ၊ CPU နဟင့် Memory လိုအပ်လေလေ၊ ၎င်သအတလက် ကျလန်ုပ်တို့ ပေသဆောင်ရမည့်ငလေ ပိုမျာသလေဖဌစ်သည်။ ထို့ကဌောင့်၊ စမ်သသပ်မဟုအလိုအလျောက်စနစ်၏အခဌေအနေတလင် အမျာသသူငဟာ cloud မျာသသည် လိုအပ်ချက်အရ ဘရောက်ဆာ/emulators အမျာသအပဌာသ (100၊ 200၊ 1000...) ကို လည်ပတ်နိုင်စေရန်၊ စမ်သသပ်မဟုရလဒ်မျာသကို မဌန်နိုင်သမျဟမဌန်မဌန်ရယူပဌီသ ထိုကဲ့သို့ ရူသနဟမ်သနဟမ်သသုံသစာသရိတ်ဖဌင့် ငလေပေသချေခဌင်သကို ရပ်လိုက်ပါ ပါဝါ။ 

ရေပန်သအစာသဆုံသ cloud ဝန်ဆောင်မဟုပေသသူမျာသမဟာ Amazon Web Services (AWS)၊ Microsoft Azure၊ Google Cloud Platform (GCP) တို့ဖဌစ်သည်။ လုပ်နည်သလမ်သညလဟန်တလင် GCP ကိုအသုံသပဌုပုံနမူနာမျာသကို ပေသဆောင်ထာသသော်လည်သ ယေဘုယျအာသဖဌင့် အလိုအလျောက်လုပ်ဆောင်ခဌင်သလုပ်ငန်သမျာသအတလက် သင်အသုံသပဌုသည့်အရာသည် အရေသမကဌီသပါ။ ၎င်သတို့အာသလုံသသည် ခန့်မဟန်သခဌေအာသဖဌင့် တူညီသော လုပ်ဆောင်နိုင်စလမ်သကို ပေသစလမ်သသည်။ ပုံမဟန်အာသဖဌင့်၊ ဝန်ဆောင်မဟုပေသသူတစ်ညသကို ရလေသချယ်ရန်၊ စီမံခန့်ခလဲမဟုသည် ကဆောင်သပါသ၏ အတိုင်သအတာထက်ကျော်လလန်သည့် ကုမ္ပဏီ၏ အခဌေခံအဆောက်အအုံနဟင့် လုပ်ငန်သလိုအပ်ချက်မျာသအာသလုံသကို အလေသပေသပါသည်။ အော်တိုမက်တစ်အင်ဂျင်နီယာမျာသအတလက်၊ Sauce Labs၊ BrowserStack၊ BitBar စသည်တို့ကဲ့သို့သော စမ်သသပ်ရည်ရလယ်ချက်အတလက် cloud ပလပ်ဖောင်သမျာသကို အသုံသပဌုခဌင်သနဟင့် cloud ဝန်ဆောင်မဟုပေသသူမျာသအသုံသပဌုခဌင်သကို နဟိုင်သယဟဉ်ရန် ပို၍စိတ်ဝင်စာသဖလယ်ကောင်သပါလိမ့်မည်။ ဒါဆိုလည်သ လုပ်ကဌရအောင်။ ကျလန်တော့်အမဌင်အရ၊ Sauce Labs သည် အကျော်ကဌာသဆုံသ cloud testing farm ဖဌစ်သောကဌောင့် ၎င်သကို နဟိုင်သယဟဉ်ရန်အတလက် အသုံသပဌုပါသည်။ 

အလိုအလျောက်လုပ်ဆောင်ခဌင်သအတလက် GCP နဟင့် Sauce Labs မျာသ-

ကျလန်ုပ်တို့သည် ဝဘ်စမ်သသပ်မဟု ၈ ခုနဟင့် Android စမ်သသပ်မဟု ၈ ခုကို တစ်ပဌိုင်နက် လုပ်ဆောင်ရန် လိုအပ်သည်ဟု စိတ်ကူသကဌည့်ကဌပါစို့။ ၎င်သအတလက်ကျလန်ုပ်တို့သည် GCP ကိုအသုံသပဌုပဌီသ Selenoid ဖဌင့် virtual machine 8 ခုကို run ပါမည်။ ပထမတစ်ခုတလင် ဘရောက်ဆာမျာသဖဌင့် ကလန်တိန်နာ ၈ ခုကို ပဌုစုပျိုသထောင်ပါမည်။ ဒုတိယတလင် emulator ပါသော ကလန်တိန်နာ ၈ ခုရဟိသည်။ စျေသနဟုန်သတလေကို တစ်ချက်ကဌည့်လိုက်ရအောင်။  

DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်
Chrome ဖဌင့် ကလန်တိန်နာတစ်လုံသကို အသုံသပဌုရန် ကျလန်ုပ်တို့ လိုအပ်ပါသည်။ n1-စံ-1 ကာသ။ Android မဟာဆိုရင်တော့ ဖဌစ်ပါလိမ့်မယ်။ n1-စံ-4 emulator တစ်ခုအတလက်။ အမဟန်မဟာ၊ ပိုမိုပဌောင်သလလယ်ပဌင်လလယ်နဟင့် စျေသသက်သာသောနည်သလမ်သမဟာ CPU/Memory အတလက် သတ်မဟတ်ထာသသော အသုံသပဌုသူတန်ဖိုသမျာသကို သတ်မဟတ်ရန်ဖဌစ်သော်လည်သ ယခုအချိန်တလင် Sauce Labs နဟင့် နဟိုင်သယဟဉ်ရန်အတလက် အရေသမကဌီသပါ။

ဆော့စ်ဓာတ်ခလဲခန်သမျာသကို အသုံသပဌုခဌင်သအတလက် အခလန်အခမျာသ ဖဌစ်ပါသည်-

DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်
ခဌာသနာသချက်ကို သင် သတိပဌုမိပဌီသပဌီဟု ကျလန်ုပ်ယုံကဌည်ပါသည်၊ သို့သော် ကျလန်ုပ်တို့၏လုပ်ငန်သတာဝန်အတလက် တလက်ချက်မဟုမျာသပါရဟိသည့် ဇယာသကို ကျလန်ုပ် ဆက်လက်ဖော်ပဌပေသပါမည်-

လိုအပ်သောအရင်သအမဌစ်မျာသ
လစဉ်
အလုပ်ချိန်(မနက် ၈ နာရီမဟ ည ၈ နာရီ)
အလုပ်ချိန်+ မဖဌစ်​နိုင်​ဘူသ။

ဝဘ်အတလက် GCP
n1-standard-1 x 8 = n1-standard-8
$194.18
23 ရက် * 12 နာရီ * 0.38 = $104.88 
23 ရက် * 12 နာရီ * 0.08 = $22.08

ဝဘ်အတလက် Sauce Labs
Virtual Cloud8 အပဌိုင်စမ်သသပ်မဟုမျာသ
$1.559
-
-

Android အတလက် GCP
n1-standard-4 x 8: n1-standard-16
$776.72
23 ရက် * 12 နာရီ * 1.52 = $419.52 
23 ရက် * 12 နာရီ * 0.32 = $88.32

Android အတလက် Sauce Labs
Real Device Cloud 8 အပဌိုင်စမ်သသပ်မဟုမျာသ
$1.999
-
-

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

ကဌိုတင်ကာကလယ်နိုင်သော VM သည် သာမန်သာဓကမျာသထက် မျာသစလာသက်သာသောစျေသနဟုန်သဖဌင့် သင်ဖန်တီသပဌီသ လုပ်ဆောင်နိုင်သော ဥပမာတစ်ခုဖဌစ်သည်။ သို့ရာတလင်၊ အခဌာသလုပ်ဆောင်စရာမျာသအတလက် ထိုအရင်သအမဌစ်မျာသကို အသုံသပဌုခလင့် လိုအပ်ပါက၊ Compute Engine သည် ကဖဌစ်ရပ်မျာသကို (ကဌိုတင်) ရပ်ဆိုင်သထာသနိုင်သည်။ ကဌိုတင်ကာကလယ်နိုင်သော ဖဌစ်ရပ်မျာသသည် ကလန်ပဌူတာအင်ဂျင်စလမ်သရည် ပိုလျဟံနေသောကဌောင့် ၎င်သတို့၏ရရဟိနိုင်မဟုမဟာ အသုံသပဌုမဟုပေါ်မူတည်၍ ကလဲပဌာသပါသည်။

သင့်အက်ပ်မျာသသည် အမဟာသအယလင်သမျာသကို ခံနိုင်ရည်ရဟိပဌီသ ဖဌစ်နိုင်ချေရဟိသော သာဓက ကဌိုတင်ကာကလယ်မဟုမျာသကို ခံနိုင်ရည်ရဟိပါက၊ ကဌိုတင်ကာကလယ်နိုင်သည့်အရာမျာသသည် သင်၏ Compute Engine ကုန်ကျစရိတ်ကို သိသိသာသာ လျဟော့ချနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ batch processing jobs သည် ကဌိုတင်ကာကလယ်နိုင်သော အခဌေအနေမျာသတလင် လုပ်ဆောင်နိုင်သည်။ အချို့သောဖဌစ်ရပ်မျာသသည် လုပ်ဆောင်နေစဉ်အတလင်သ ရပ်တန့်သလာသပါက အလုပ်နဟေသကလေသသော်လည်သ လုံသဝရပ်တန့်သလာသမည်မဟုတ်ပေ။ ကဌိုတင်ကာကလယ်နိုင်သော သာဓကမျာသသည် သင့်လက်ရဟိအခဌေအနေမျာသတလင် အပိုအလုပ်တာဝန်မျာသကို မထည့်ဘဲနဟင့် နောက်ထပ်သာမန်ဖဌစ်ရပ်မျာသအတလက် သင့်အာသ စျေသနဟုန်သအပဌည့်ပေသဆောင်ရန် မလိုအပ်ဘဲ ပဌီသမဌောက်စေပါသည်။

မပဌီသသေသပါ။ တကယ်တော့ အနာသယူချိန် 12 နာရီကဌာ ဘယ်သူမဟ စာမေသပလဲမဖဌေရဘူသဆိုတာ သေချာပါတယ်။ သို့ဆိုလျဟင်၊ သင်သည် virtual machines မျာသကို မလိုအပ်သည့်အခါ အလိုအလျောက် စတင်နိုင်ပဌီသ ရပ်တန့်နိုင်သည်။ အမဟန်တကယ်အသုံသပဌုချိန်ကို တစ်ရက်လျဟင် 6 နာရီအထိ လျဟော့ချနိုင်သည်။ ထို့နောက် ကျလန်ုပ်တို့၏လုပ်ငန်သဆောင်တာတလင် ငလေပေသချေမဟုသည် ဘရောက်ဆာ 11 ခုအတလက် တစ်လလျဟင် $8 သို့ လျော့ကျသလာသမည်ဖဌစ်သည်။ ဒါက အံ့သဌစရာပဲ မဟုတ်လာသ? သို့သော် ကဌိုတင်ကာကလယ်နိုင်သော စက်မျာသဖဌင့် ကျလန်ုပ်တို့သည် ကအခဌေအနေမျာသကို ဆော့ဖ်ဝဲလ်တလင် ပံ့ပိုသပေသနိုင်သော်လည်သ အနဟောင့်အယဟက်မျာသနဟင့် မတည်မငဌိမ်မျာသအတလက် ဂရုတစိုက် ပဌင်ဆင်ရမည်ဖဌစ်သည်။ ထိုက်တန်ပါတယ်။

ဒါပေမယ့် 'cloud test farms တလေကို ဘယ်တော့မဟ မသုံသဘူသ' လို့ ပဌောနေတာတော့ မရဟိပါဘူသ။ သူတို့မဟာ အာသသာချက်တလေ အမျာသကဌီသရဟိတယ်။ ပထမညသစလာ၊ ၎င်သသည် virtual machine တစ်ခုမျဟသာမက၊ ဘောက်စ်အတလင်သမဟ လုပ်ဆောင်နိုင်စလမ်သအစုံပါရဟိသော ပဌည့်စုံသောစမ်သသပ်မဟု automation ဖဌေရဟင်သချက်- အဝေသမဟဝင်ရောက်မဟု၊ မဟတ်တမ်သမျာသ၊ ဖန်သာသပဌင်ဓာတ်ပုံမျာသ၊ ဗီဒီယိုရိုက်ကူသမဟု၊ အမျိုသမျိုသသောဘရောက်ဆာမျာသနဟင့် ရုပ်ပိုင်သဆိုင်ရာမိုဘိုင်သကိရိယာမျာသ။ အခဌေအနေမျာသစလာတလင်၊ ၎င်သသည် မရဟိမဖဌစ်လိုအပ်သော အမိုက်စာသရလေသချယ်မဟုတစ်ခု ဖဌစ်နိုင်သည်။ အမျာသသူငဟာ cloud မျာသသည် Linux/Windows စနစ်မျာသကိုသာ ပေသဆောင်နိုင်သောအခါတလင် စမ်သသပ်ခဌင်သပလပ်ဖောင်သမျာသသည် IOS အလိုအလျောက်စနစ်အတလက် အထူသအသုံသဝင်ပါသည်။ ဒါပေမယ့် နောက်ဆောင်သပါသတလေမဟာ iOS အကဌောင်သပဌောပါမယ်။ အခဌေအနေကို အမဌဲကဌည့်ရဟုပဌီသ အလုပ်မျာသမဟ စတင်ရန် အကဌံပဌုလိုပါသည်- အချို့ကိစ္စမျာသတလင် အမျာသသူငဟာ clouds မျာသကို အသုံသပဌုရန် ပိုမိုစျေသသက်သာပဌီသ ပိုမိုထိရောက်မဟုရဟိပဌီသ အချို့သောစမ်သသပ်မဟုပလက်ဖောင်သမျာသသည် သုံသစလဲရသည့်ငလေကို ကျိန်သသေထိုက်တန်ပါသည်။

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

6. တီသမဟုတ်ခဌင်သ။

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

သတင်သကောင်သရဟိပါတယ် - ကျလန်ုပ်တို့သည် ဆောင်သပါသ၏အဆုံသနီသပါသတလင် ရဟိနေပါသည်။ လောလောဆယ်တလင်၊ ကျလန်ုပ်တို့၏ အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံတလင် Docker-enabled tools မျာသ- Selenium grid နဟင့် Selenoid ကိုအသုံသပဌု၍ GitLab CI မဟတဆင့် အပဌိုင်လုပ်ဆောင်သည့် ဝဘ်နဟင့် Android စမ်သသပ်မဟုမျာသ ပါဝင်ပါသည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ဘရောက်ဆာမျာသနဟင့် emulator မျာသဖဌင့် ကလန်တိန်နာမျာသကို လက်ခံကျင်သပရန်အတလက် GCP မဟတစ်ဆင့် ဖန်တီသထာသသော virtual machines မျာသကို အသုံသပဌုပါသည်။ ကုန်ကျစရိတ်မျာသကို လျဟော့ချရန်အတလက်၊ ကျလန်ုပ်တို့သည် က virtual machines မျာသကို ဝယ်လိုအာသတလင်သာ စတင်ပဌီသ စမ်သသပ်ခဌင်သမပဌုသည့်အခါ ၎င်သတို့ကို ရပ်တန့်စေပါသည်။ ကျလန်ုပ်တို့၏ အခဌေခံအဆောက်အအုံကို မဌဟင့်တင်ပေသနိုင်သည့် အခဌာသအရာမျာသ ရဟိပါသလာသ။ အဖဌေက ဟုတ်တယ်! Kubernetes (K8s) နဟင့်တလေ့ဆုံပါ။

ညသစလာ၊ စကာသလုံသမျာသစုစည်သမဟု၊ အစုအဝေသနဟင့် Kubernetes တို့သည် တစ်ခုနဟင့်တစ်ခု မည်သို့ဆက်စပ်သည်ကို ကဌည့်ကဌပါစို့။ မဌင့်မာသသောအဆင့်တလင်၊ orchestration သည် အပလီကေသရဟင်သမျာသကို ဖဌန့်ကျက်ပဌီသ စီမံခန့်ခလဲသည့်စနစ်ဖဌစ်သည်။ စမ်သသပ်မဟု အလိုအလျောက်စနစ်အတလက်၊ ထိုကဲ့သို့ ကလန်တိန်နာထည့်ထာသသော အပလီကေသရဟင်သမျာသသည် Selenium grid နဟင့် Selenoid တို့ဖဌစ်သည်။ Docker နဟင့် K8s သည် တစ်ခုနဟင့်တစ်ခု အာသဖဌည့်ပေသသည်။ ပထမတစ်မျိုသကို အပလီကေသရဟင်သဖဌန့်ကျက်ရန်၊ ဒုတိယကို တီသမဟုတ်ခဌင်သအတလက် အသုံသပဌုသည်။ တစ်ဖန် K8s သည် အစုအဝေသတစ်ခုဖဌစ်သည်။ အစုအဖလဲ့၏တာဝန်မဟာ အမျိုသမျိုသသောလုပ်ဆောင်နိုင်စလမ်သမျာသ၊ ပရိုဂရမ်မျာသနဟင့် ဝန်ဆောင်မဟုမျာသကို ဆာဗာတစ်ခု (cluster) အတလင်သတလင် ထည့်သလင်သရန်ခလင့်ပဌုသည့် VMs ကို Nodes အဖဌစ် အသုံသပဌုရန်ဖဌစ်သည်။ Nodes တစ်ခုခု ပျက်ကလက်ပါက၊ ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သ၏ အနဟောက်အယဟက်ကင်သစလာ လည်ပတ်မဟုကို သေချာစေသည့် အခဌာသ Nodes မျာသကို ကောက်ယူပါမည်။ ၎င်သအပဌင်၊ K8s သည် load နဟင့် ကန့်သတ်ချက်မျာသအပေါ်အခဌေခံ၍ အကောင်သဆုံသအရင်သအမဌစ်မျာသကို ကျလန်ုပ်တို့အလိုအလျောက်ရယူပေသသောကဌောင့် အတိုင်သအတာချဲ့ခဌင်သနဟင့်သက်ဆိုင်သည့် အရေသကဌီသသောလုပ်ဆောင်နိုင်စလမ်သရဟိသည်။

အမဟန်မဟာ၊ Kubernetes ကို အစမဟနေ၍ ကိုယ်တိုင်အသုံသပဌုခဌင်သသည် အသေသအဖလဲအလုပ်မဟုတ်ပေ။ "Kubernetes The Hard Way" ရဲ့ နာမည်ကဌီသနည်သလမ်သညလဟန်ကို လင့်ခ်ချန်ထာသခဲ့မယ် စိတ်ဝင်စာသရင် လေ့ကျင့်နိုင်ပါတယ်။ သို့သော် ကံကောင်သထောက်မစလာ၊ အခဌာသနည်သလမ်သမျာသနဟင့် ကိရိယာမျာသရဟိသည်။ အလလယ်ဆုံသနည်သလမ်သမဟာ GCP တလင် Google Kubernetes Engine (GKE) ကို အသုံသပဌုရန်ဖဌစ်ပဌီသ ကလစ်အနည်သငယ်ဖဌင့် အသင့်လုပ်ထာသသော အစုအဝေသတစ်ခုကို ရရဟိစေမည်ဖဌစ်သည်။ သင်ယူမဟုစတင်ရန် ကချဉ်သကပ်နည်သကို အသုံသပဌုရန် ကျလန်ုပ်အကဌံပဌုလိုသည်၊ အဘယ်ကဌောင့်ဆိုသော် ၎င်သသည် သင့်လုပ်ငန်သဆောင်တာမျာသအတလက် K8s ကို မည်သို့အသုံသပဌုရမည်ကို လေ့လာရန် အာရုံစိုက်နိုင်စေသောကဌောင့် အတလင်သပိုင်သအစိတ်အပိုင်သမျာသကို တစ်ခုနဟင့်တစ်ခု ပေါင်သစပ်သင့်သည်တို့ကို လေ့လာခဌင်သထက် အာရုံစိုက်နိုင်စေမည်ဖဌစ်သည်။ 

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

K8s မဟ ပံ့ပိုသပေသသော သိသာထင်ရဟာသသော အင်္ဂါရပ်အချို့ကို ကဌည့်ကဌပါစို့။

  • အပလီကေသရဟင်သ ဖဌန့်ကျက်ခဌင်သ- VM မျာသအစာသ nodes အစုအဝေသတစ်ခုကို အသုံသပဌုခဌင်သ၊
  • ဒိုင်သနမစ်စကေသချဲ့ခဌင်သ- ဝယ်လိုအာသတလင်သာ အသုံသပဌုသည့် အရင်သအမဌစ်မျာသ၏ ကုန်ကျစရိတ်ကို လျဟော့ချပေသသည်။
  • ကိုယ်တိုင်ကုစာသခဌင်သ- အစေ့မျာသကို အလိုအလျောက် ပဌန်လည်ရယူခဌင်သ (ရလဒ်အနေဖဌင့် ကလန်တိန်နာမျာသကို ပဌန်လည်ရယူခဌင်သ)၊
  • အပ်ဒိတ်မျာသနဟင့် အပဌောင်သအလဲမျာသကို အချိန်မဆိုင်သဘဲ ပဌန်လည်ရုပ်သိမ်သခဌင်သ- ကိရိယာမျာသ အပ်ဒိတ်လုပ်ခဌင်သ၊ ဘရောက်ဆာမျာသနဟင့် အီမူလီတာမျာသသည် လက်ရဟိအသုံသပဌုသူမျာသ၏ လုပ်ငန်သကို အနဟောင့်အယဟက်မဖဌစ်စေပါ။

သို့သော် K8s သည် ငလေကျည်ဆန်မဟုတ်သေသပါ။ ကျလန်ုပ်တို့ထည့်သလင်သစဉ်သစာသနေသည့် ကိရိယာမျာသ (Selenium grid၊ Selenoid) ၏ အာသသာချက်မျာသနဟင့် ကန့်သတ်ချက်မျာသအာသလုံသကို နာသလည်ရန် K8s ၏ ဖလဲ့စည်သပုံကို အတိုချုပ် ဆလေသနလေသပါမည်။ Cluster တလင် Nodes နဟစ်မျိုသပါရဟိသည်- Master Nodes နဟင့် Workers Nodes။ Master Nodes မျာသသည် စီမံခန့်ခလဲမဟု၊ အသုံသချခဌင်သနဟင့် အချိန်ဇယာသဆလဲခဌင်သဆိုင်ရာ ဆုံသဖဌတ်ချက်မျာသအတလက် တာဝန်ရဟိပါသည်။ Workers node မျာသသည် အပလီကေသရဟင်သမျာသ လုပ်ဆောင်သည့်နေရာဖဌစ်သည်။ Node မျာသတလင် container runtime ပတ်ဝန်သကျင်လည်သ ပါရဟိပါသည်။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ၎င်သသည် ကလန်တိန်နာနဟင့်ပတ်သက်သည့် လုပ်ဆောင်ချက်မျာသအတလက် တာဝန်ရဟိသည့် Docker ဖဌစ်သည်။ ဒါပေမယ့် ဥပမာအာသဖဌင့် အခဌာသရလေသချယ်စရာ ဖဌေရဟင်သနည်သတလေလည်သ ရဟိပါတယ်။ မဌတ်နိုသ. အတိုင်သအတာ သို့မဟုတ် ကိုယ်တိုင်ကုသခဌင်သသည် ကလန်တိန်နာမျာသနဟင့် တိုက်ရိုက်မသက်ဆိုင်ကဌောင်သ နာသလည်ရန် အရေသကဌီသပါသည်။ ၎င်သသည် ကလန်တိန်နာမျာသပါရဟိသော အစေ့အရေအတလက်ကို ပေါင်သထည့်ခဌင်သ/လျဟော့ချခဌင်သဖဌင့် ၎င်သကို အကောင်အထည်ဖော်ခဌင်သဖဌစ်သည် (မျာသသောအာသဖဌင့် ဘူသတစ်ခုလျဟင် ကလန်တိန်နာတစ်လုံသ၊ သို့သော် လုပ်ငန်သဆောင်တာပေါ်မူတည်၍ နောက်ထပ်ရဟိနိုင်သည်)။ အထက်တန်သအဆင့်တလင် ကလန်တိန်နာမျာသအတလင်သတလင် အကလက်မျာသပါရဟိသော အလုပ်သမာသ ဆုံမဟတ်မျာသ ပါဝင်ပါသည်။

စကေသချဲ့ခဌင်သအင်္ဂါရပ်သည် သော့ချက်ဖဌစ်ပဌီသ အစုအဝေသတစ်ခုအတလင်သ ဆုံမဟတ်နဟစ်ခုလုံသနဟင့် node အတလင်သရဟိ pods နဟစ်ခုလုံသကို အသုံသချနိုင်သည်။ node နဟင့် pods နဟစ်ခုလုံသတလင် အသုံသချနိုင်သော အတိုင်သအတာ အမျိုသအစာသ 2 ခုရဟိသည်။ ပထမအမျိုသအစာသမဟာ ရေပဌင်ညီဖဌစ်သည် - node/pods အရေအတလက်ကို တိုသမဌဟင့်ခဌင်သဖဌင့် အတိုင်သအတာကို တိုင်သတာခဌင်သ ဖဌစ်ပေါ်ပါသည်။ ဒီအမျိုသအစာသက ပိုကောင်သပါတယ်။ ဒုတိယအမျိုသအစာသမဟာ ဒေါင်လိုက်ဖဌစ်သည်။ Node/pods မျာသ၏ အရလယ်အစာသကို တိုသမဌဟင့်ခဌင်သဖဌင့် ၎င်သတို့၏ အရေအတလက်ကို ချဲ့ထလင်ခဌင်သ မဟုတ်ဘဲ၊

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

ဆီလီနီယမ်ဂရစ်

အစောပိုင်သတလင်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ Selenium grid သည် အလလန်ရေပန်သစာသသော tool တစ်ခုဖဌစ်ပဌီသ ၎င်သကို ကလန်တိန်နာထည့်သလင်သထာသခဌင်သမဟာ အံ့သဌစရာမရဟိပါ။ ထို့ကဌောင့်၊ Selenium grid ကို K8s တလင်အသုံသပဌုနိုင်သည်မဟာ အံ့သဌစရာမဟုတ်ပါ။ ၎င်သကိုပဌုလုပ်ပုံ၏ဥပမာကိုတရာသဝင် K8s သိုလဟောင်မဟုတလင်တလေ့နိုင်သည်။ ခါတိုင်သလိုပဲ၊ အပိုင်သရဲ့အဆုံသမဟာ လင့်ခ်တလေကို တလဲတင်ထာသတယ်။ ထို့အပဌင်၊ လမ်သညလဟန်ချက်သည် Terraform တလင် ၎င်သကို မည်သို့လုပ်ဆောင်ရမည်ကို ပဌသထာသသည်။ ဘရောက်ဆာကလန်တိန်နာမျာသပါ ၀ င်သော pods အရေအတလက်ကိုစကေသချနည်သ လမ်သညလဟန်ချက်မျာသလည်သရဟိသည်။ သို့သော် K8s ၏အခဌေအနေတလင် အလိုအလျောက်စကေသချဲ့ခဌင်သလုပ်ဆောင်ချက်သည် လုံသဝထင်ရဟာသသောအလုပ်မဟုတ်သေသပါ။ စတင်လေ့လာချိန်မဟာတော့ လက်တလေ့ကျတဲ့ လမ်သညလဟန်ချက် ဒါမဟမဟုတ် အကဌံပဌုချက်တလေကို ရဟာမတလေ့ခဲ့ပါဘူသ။ DevOps အဖလဲ့၏ပံ့ပိုသမဟုဖဌင့် လေ့လာမဟုအမျာသအပဌာသနဟင့် စမ်သသပ်မဟုမျာသပဌီသနောက်၊ အလုပ်သမာသ node တစ်ခုအတလင်သတလင်ရဟိသော pod တစ်ခုအတလင်သ လိုအပ်သောဘရောက်ဆာမျာသနဟင့်အတူ ကလန်တိန်နာမျာသပဌုစုပျိုသထောင်ခဌင်သနည်သလမ်သကို ကျလန်ုပ်တို့ရလေသချယ်ခဲ့သည်။ ကနည်သလမ်သသည် နံပါတ်မျာသကို တိုသမဌဟင့်ခဌင်သဖဌင့် node မျာသ၏ အလျာသလိုက် အတိုင်သအတာ ဗျူဟာကို အသုံသချနိုင်စေပါသည်။ ၎င်သသည် အနာဂတ်တလင် ပဌောင်သလဲလာမည်ဟု မျဟော်လင့်ပဌီသ အထူသသဖဌင့် ပဌောင်သလဲထာသသော အတလင်သပိုင်သဗိသုကာဖဌင့် Selenium grid 4 ကို ထုတ်ဝေပဌီသနောက် ပိုမိုကောင်သမလန်သော ချဉ်သကပ်မဟုမျာသနဟင့် အဆင်သင့်လုပ်ထာသသော ဖဌေရဟင်သချက်မျာသကို ပိုမိုဖော်ပဌချက်မျာသကို ကျလန်ုပ်တို့မဌင်တလေ့နိုင်မည်ဖဌစ်သည်။

ဆီလီနလိုက်:

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

လ:

Selenoid နဲ့ အလုပ်လုပ်တဲ့အခါ ဒီပိတ်ဆို့မဟုကို သိထာသတော့ Developer တလေက Moon လို့ခေါ်တဲ့ ပိုအစလမ်သထက်တဲ့ tool ကို ထုတ်လလဟတ်လိုက်ပါတယ်။ ကကိရိယာသည် Kubernetes နဟင့် အလုပ်လုပ်ရန် မူလက ဒီဇိုင်သထုတ်ထာသပဌီသ ရလဒ်အနေဖဌင့် အော်တိုစကေသချဲ့ခဌင်သအင်္ဂါရပ်ကို အသုံသပဌုသင့်သည်။ ဒါ့ထက် ပဌောရမယ်ဆိုရင် လောလောဆယ် ဖဌစ်နေတာ သာ မူလ K8s အစုအဝေသ ပံ့ပိုသမဟုပါရဟိသော Selenium ကမ္ဘာရဟိ ကိရိယာတစ်ခု (မရနိုင်တော့ပါ၊ နောက်ကိရိယာကိုကဌည့်ပါ။ ) ကပံ့ပိုသမဟုပေသသော Moon ၏ အဓိကအင်္ဂါရပ်မျာသမဟာ- 

လုံသဝနိုင်ငံမဲ့။ Selenoid သည် လက်ရဟိအသုံသပဌုနေသည့် ဘရောက်ဆာဆက်ရဟင်မျာသအကဌောင်သ မမ်မိုရီအချက်အလက်တလင် သိမ်သဆည်သထာသသည်။ အကဌောင်သတစ်ခုခုကဌောင့် ၎င်သ၏ လုပ်ငန်သစဉ် ပျက်သလာသပါက - လည်ပတ်နေသည့် ဆက်ရဟင်မျာသအာသလုံသ ဆုံသရဟုံသသလာသပါမည်။ Moon သည် အတလင်သပိုင်သအခဌေအနေမရဟိသည့်အပဌင် ဒေတာစင်တာမျာသတလင် ပုံတူပလာသနိုင်သည်။ ပုံတူတစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသောပုံတူမျာသ ကျသလာသသော်လည်သ ဘရောင်ဇာဆက်ရဟင်မျာသသည် အသက်ရဟင်နေသေသသည်။

ထို့ကဌောင့် Moon သည် ကောင်သမလန်သောဖဌေရဟင်သချက်တစ်ခုဖဌစ်သော်လည်သ ပဌဿနာတစ်ခုရဟိသည်- ၎င်သသည် အလကာသမဟုတ်ပါ။ စျေသနဟုန်သသည် sessions အရေအတလက်ပေါ် မူတည်. အထူသအသုံသမဝင်သော 0-4 ဆက်ရဟင်မျာသကို အခမဲ့သာ သင်သုံသနိုင်သည်။ သို့သော် ပဉ္စမအကဌိမ်မဟ စတင်၍ တစ်ခုစီအတလက် $5 ပေသဆောင်ရမည်ဖဌစ်သည်။ အခဌေအနေက ကုမ္ပဏီတစ်ခုနဲ့တစ်ခု မတူနိုင်ပေမယ့် ကျလန်တော်တို့ကိစ္စမဟာ Moon ကိုအသုံသပဌုတာက အဓိပ္ပါယ်မဲ့ပါတယ်။ အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ၊ ကျလန်ုပ်တို့သည် ဝယ်လိုအာသအရ Selenium Grid ဖဌင့် VMs ကို run သို့မဟုတ် cluster ရဟိ Nodes အရေအတလက်ကို တိုသနိုင်သည်။ ခန့်မဟန်သခဌေအာသဖဌင့် ပိုက်လိုင်သတစ်ခုအတလက်၊ ကျလန်ုပ်တို့သည် ဘရောက်ဆာ 500 ကိုဖလင့်ပဌီသ စမ်သသပ်မဟုမျာသပဌီသဆုံသပဌီသနောက် အရင်သအမဌစ်အာသလုံသကို ရပ်တန့်လိုက်သည်။ အကယ်၍ ကျလန်ုပ်တို့သည် Moon ကိုအသုံသပဌုပါက၊ ကျလန်ုပ်တို့သည် စာမေသပလဲမည်မျဟမကဌာခဏလုပ်ဆောင်နေပါစေ တစ်လလျဟင် 500 x 5 = $2500 ထပ်မံပေသဆောင်ရမည်ဖဌစ်ပါသည်။ နောက်တခါ Moon မသုံသဘူသလို့ မပဌောပါဘူသ။ သင့်လုပ်ငန်သတာဝန်မျာသအတလက်၊ ၎င်သသည် မရဟိမဖဌစ်လိုအပ်သော ဖဌေရဟင်သချက်တစ်ခုဖဌစ်နိုင်သည်၊ ဥပမာ၊ သင့်အဖလဲ့အစည်သတလင် ပရောဂျက်မျာသ/အဖလဲ့မျာသရဟိပဌီသ လူတိုင်သအတလက် ကဌီသမာသသောဘုံအစုအဝေသတစ်ခု လိုအပ်ပါက၊ အမဌဲတမ်သအတိုင်သပဲ၊ အဆုံသမဟာ လင့်ခ်တစ်ခုချန်ထာသခဲ့ကာ မင်သအလုပ်ရဲ့ဆက်စပ်မဟုမဟာ လိုအပ်တဲ့ တလက်ချက်မဟုတလေအာသလုံသကို လုပ်ဆောင်ဖို့ အကဌံပဌုပါတယ်။

Callisto: (သတိထာသ! ၎င်သသည် မူရင်သဆောင်သပါသတလင်မဟုတ်ပါ၊ ရုရဟာသဘာသာပဌန်၌သာ ပါရဟိသည်။)

ကျလန်တော်ပဌောခဲ့သလိုပဲ Selenium ဟာ အလလန်ရေပန်သစာသတဲ့ ကိရိယာတစ်ခုဖဌစ်ပဌီသ IT နယ်ပယ်ဟာ အလလန်လျင်မဌန်စလာ တိုသတက်နေပါတယ်။ ဘာသာပဌန်လုပ်ငန်သကို လုပ်ဆောင်နေစဉ်၊ ဝဘ်ပေါ်တလင် Callisto ဟုခေါ်သော အလာသအလာရဟိသော ကိရိယာအသစ်တစ်ခု (မင်္ဂလာပါ Cypress နဟင့် အခဌာသ Selenium လူသတ်သမာသမျာသ) ပေါ်လာသည်။ ၎င်သသည် K8s နဟင့် မူလအတိုင်သ အလုပ်လုပ်ပဌီသ Nodes အနဟံ့ ဖဌန့်ဝေထာသသော pods မျာသတလင် Selenoid ကလန်တိန်နာမျာသကို ဖလင့်နိုင်သည်။ အော်တိုစကေသချဲ့ခဌင်သအပါအဝင် အရာအာသလုံသသည် ဘောက်စ်ပဌင်ပတလင် အလုပ်လုပ်ပါသည်။ အံ့သဌဖလယ်ကောင်သသော်လည်သ စမ်သသပ်ရန် လိုအပ်သည်။ ကျလန်ုပ်သည် ကကိရိယာကို အသုံသပဌုပဌီသ စမ်သသပ်မဟုမျာသစလာကို လုပ်ဆောင်နိုင်ခဲ့ပဌီသဖဌစ်သည်။ ဒါပေမယ့် ကောက်ချက်ဆလဲဖို့က စောလလန်သတယ်၊ အဝေသကဌီသမဟာ ရလဒ်တလေရပဌီသ၊ နောက်ဆောင်သပါသတလေမဟာ သုံသသပ်ချက်တစ်ခု လုပ်မယ်။ ယခုအချိန်တလင် ကျလန်ုပ်သည် အမဟီအခိုကင်သသော သုတေသနအတလက် လင့်ခ်မျာသသာ ကျန်ရဟိတော့သည် ။  

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ

အလာသတူကိရိယာမျာသ

7. Code (IaC) အဖဌစ် အခဌေခံအဆောက်အအုံ၊

နည်သပညာအကဌောင်သ အကျဉ်သချုပ်ဖော်ပဌချက်

ယခုကျလန်ုပ်တို့နောက်ဆုံသအပိုင်သကိုရောက်ပါပဌီ။ ပုံမဟန်အာသဖဌင့်၊ ကနည်သပညာနဟင့် ဆက်စပ်အလုပ်မျာသသည် automation အင်ဂျင်နီယာမျာသ၏ တာဝန်မဟုတ်ပါ။ ပဌီသတော့ ဒီအတလက် အကဌောင်သပဌချက်တလေ ရဟိတယ်။ ပထမညသစလာ၊ အဖလဲ့အစည်သမျာသစလာတလင် အခဌေခံအဆောက်အအုံဆိုင်ရာပဌဿနာမျာသသည် DevOps ဌာန၏ထိန်သချုပ်မဟုအောက်တလင်ရဟိပဌီသ ဖလံ့ဖဌိုသတိုသတက်ရေသအဖလဲ့မျာသသည် ပိုက်လိုင်သကိုမည်သို့လုပ်ဆောင်စေသည်နဟင့် ၎င်သနဟင့်ချိတ်ဆက်ထာသသည့်အရာအာသလုံသကို မည်ကဲ့သို့ပံ့ပိုသပေသရမည်ကို အမဟန်တကယ်ဂရုမစိုက်ပါ။ ဒုတိယအနေနဲ့ ရိုသရိုသသာသသာသပဌောရရင် Infrastructure as Code (IaC) ကို ကုမ္ပဏီတော်တော်မျာသမျာသမဟာ လက်ခံကျင့်သုံသနေကဌတုန်သပါပဲ။ သို့သော် ၎င်သသည် ရေပန်သစာသသောလမ်သကဌောင်သတစ်ခုဖဌစ်လာပဌီသ ၎င်သနဟင့်ဆက်စပ်နေသော လုပ်ငန်သစဉ်မျာသ၊ ချဉ်သကပ်မဟုမျာသနဟင့် ကိရိယာမျာသတလင် ပါဝင်ရန်ကဌိုသစာသရန် အရေသကဌီသပါသည်။ အနည်သဆုံသတော့ နောက်ဆုံသပေါ်နေပါ။

ကနည်သလမ်သကိုအသုံသပဌုရန် လဟုံ့ဆော်မဟုဖဌင့် စတင်ကဌပါစို့။ GitlabCI တလင် စမ်သသပ်မဟုမျာသကို လုပ်ဆောင်ရန်၊ Gitlab Runner ကို run ရန်အတလက် အနည်သဆုံသ အရင်သအမဌစ်မျာသ လိုအပ်မည် ဖဌစ်ကဌောင်သ ကျလန်ုပ်တို့ ဆလေသနလေသထာသပဌီသဖဌစ်သည်။ ဘရောက်ဆာ/emulator မျာသဖဌင့် ကလန်တိန်နာမျာသကို ဖလင့်ရန်၊ VM သို့မဟုတ် အစုအဝေသတစ်ခုကို ကဌိုတင်ထာသရန် လိုအပ်သည်။ အရင်သအမဌစ်မျာသကို စမ်သသပ်ခဌင်သအပဌင်၊ ဒေတာဘေ့စ်မျာသ၊ အလိုအလျောက်အချိန်ဇယာသမျာသ၊ ကလန်ရက်ဖလဲ့စည်သပုံမျာသ၊ ဝန်ချိန်ခလင်လျဟာမျာသ၊ အသုံသပဌုသူအခလင့်အရေသမျာသနဟင့် အခဌာသအရာမျာသပါ၀င်သော ဖလံ့ဖဌိုသတိုသတက်မဟု၊ အဆင့်မဌဟင့်တင်မဟု၊ ထုတ်လုပ်မဟုပတ်ဝန်သကျင်မျာသကို ပံ့ပိုသရန် စလမ်သရည်မျာသစလာ လိုအပ်ပါသည်။ အဓိက ကတော့ အာသလုံသဝိုင်သဝန်သကူညီ ပံ့ပိုသပေသဖို့ လိုပါတယ်။ ကျလန်ုပ်တို့သည် အပဌောင်သအလဲမျာသကို ပဌုလုပ်နိုင်ပဌီသ အပ်ဒိတ်မျာသကို ထုတ်ပေသနိုင်သည့် နည်သလမ်သမျာသစလာရဟိပါသည်။ ဥပမာအာသဖဌင့်၊ GCP ၏အခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် ဘရောက်ဆာရဟိ UI ကလန်ဆိုသလ်ကို အသုံသပဌုနိုင်ပဌီသ ခလုတ်မျာသကိုနဟိပ်ခဌင်သဖဌင့် လုပ်ဆောင်မဟုမျာသအာသလုံသကို လုပ်ဆောင်နိုင်သည်။ အခဌာသရလေသချယ်စရာတစ်ခုမဟာ cloud entities မျာသနဟင့် အပဌန်အလဟန်တုံ့ပဌန်ရန် API ခေါ်ဆိုမဟုမျာသကို အသုံသပဌုခဌင်သ သို့မဟုတ် လိုချင်သောခဌယ်လဟယ်မဟုမျာသကို လုပ်ဆောင်ရန် gcloud command line utility ကို အသုံသပဌုခဌင်သဖဌစ်လိမ့်မည်။ သို့သော် အမဟန်တကယ် မျာသပဌာသသော အစိတ်အပိုင်သမျာသနဟင့် အခဌေခံအဆောက်အအုံဆိုင်ရာ အစိတ်အပိုင်သမျာသနဟင့်အတူ၊ လုပ်ဆောင်ချက်အာသလုံသကို ကိုယ်တိုင်လုပ်ဆောင်ရန် ခက်ခဲသည် သို့မဟုတ်ပင် မဖဌစ်နိုင်ပေ။ ထို့အပဌင်၊ ကလက်စလဲလုပ်ဆောင်မဟုမျာသအာသလုံသကို ထိန်သချုပ်၍မရပါ။ မလုပ်ဆောင်မီ ၎င်သတို့ကို ပဌန်လည်သုံသသပ်ရန်၊ ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်ကို အသုံသပဌုကာ အဖဌစ်အပျက်သို့ ညသတည်သလာသသော အပဌောင်သအလဲမျာသကို အမဌန်ပဌန်လဟန်၍မရပါ။ ထိုသို့သောပဌဿနာမျာသကိုဖဌေရဟင်သရန်အတလက် အင်ဂျင်နီယာမျာသသည် လုပ်ထုံသလုပ်နည်သပုံစံအတိုင်သ လျင်မဌန်စလာဖတ်ရန်၊ နာသလည်ရန်၊ ထိန်သသိမ်သရန်နဟင့် ပဌင်ဆင်ရန် မလလယ်ကူသောကဌောင့် ယခင်နည်သလမ်သမျာသထက် မျာသစလာသာလလန်ခဌင်သမရဟိသည့် အလိုအလျောက် bash/shell script မျာသကို အင်ဂျင်နီယာမျာသက ဖန်တီသဖန်တီသပေသပါသည်။

ကဆောင်သပါသနဟင့် လုပ်နည်သလမ်သညလဟန်တလင် IaC အလေ့အကျင့်နဟင့်သက်ဆိုင်သော ကိရိယာ ၂ ခုကို ကျလန်ုပ်အသုံသပဌုပါသည်။ ၎င်သတို့သည် Terraform နဟင့် Ansible တို့ဖဌစ်သည်။ ၎င်သတို့၏ လုပ်ဆောင်နိုင်စလမ်သသည် ဆင်တူပဌီသ ၎င်သတို့သည် အပဌန်အလဟန်အသုံသပဌုနိုင်သောကဌောင့် ၎င်သတို့ကို တစ်ချိန်တည်သတလင် အသုံသပဌုခဌင်သသည် အဓိပ္ပါယ်မရဟိဟု အချို့က ယုံကဌည်ကဌသည်။ သို့သော် အမဟန်မဟာ အစပိုင်သတလင် ၎င်သတို့ကို လုံသဝခဌာသနာသသော တာဝန်မျာသကို ပေသထာသသည်။ ထို့အပဌင် အဆိုပါကိရိယာမျာသသည် တစ်ခုနဟင့်တစ်ခု ဖဌည့်စလက်သင့်သည်ဟူသောအချက်ကို HashiCorp နဟင့် RedHat ကိုယ်စာသပဌု developer မျာသက ပူသတလဲတင်ဆက်မဟုတလင် အတည်ပဌုခဲ့သည်။ အယူအဆကလဲပဌာသမဟုမဟာ Terraform သည် ဆာဗာမျာသကို ၎င်သတို့ကိုယ်တိုင် စီမံခန့်ခလဲရန်အတလက် စီမံဆောင်ရလက်ပေသသည့်ကိရိယာတစ်ခုဖဌစ်သည်။ Ansible သည် ကဆာဗာမျာသပေါ်တလင် ဆော့ဖ်ဝဲလ်ကို ထည့်သလင်သရန်၊ ပဌင်ဆင်သတ်မဟတ်ရန်နဟင့် စီမံခန့်ခလဲရန်တာဝန်ရဟိသည့် စီမံဖလဲ့စည်သမဟုစီမံခန့်ခလဲမဟုကိရိယာတစ်ခုဖဌစ်သည်။

ကကိရိယာမျာသ၏ နောက်ထပ်ထူသခဌာသချက်မဟာ ကုဒ်ရေသနည်သဖဌစ်သည်။ bash နဟင့် Ansible တို့နဟင့်မတူဘဲ၊ Terraform သည် အကောင်အထည်ဖော်မဟုရလဒ်အဖဌစ် အောင်မဌင်စေရန်အလိုရဟိသောအဆုံသအခဌေအနေဖော်ပဌချက်အပေါ်အခဌေခံ၍ ကဌေငဌာစတိုင်ကိုအသုံသပဌုသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် 10 VM ကိုဖန်တီသပဌီသ Terraform မဟတဆင့်ပဌောင်သလဲမဟုမျာသကိုအသုံသပဌုပါက၊ ကျလန်ုပ်တို့သည် 10 VM ကိုရရဟိမည်ဖဌစ်သည်။ ကျလန်ုပ်တို့သည် ဇာတ်ညလဟန်သကို ထပ်မံလုပ်ဆောင်ပါက၊ ကျလန်ုပ်တို့တလင် VM 10 ခုရဟိပဌီသဖဌစ်သောကဌောင့် မည်သည့်အရာမျဟ ဖဌစ်လာမည်မဟုတ်ကဌောင်သနဟင့် Terraform သည် ၎င်သသည် ပဌည်နယ်ဖိုင်တစ်ခုတလင် အခဌေခံအဆောက်အည၏ လက်ရဟိအခဌေအနေအာသ သိမ်သဆည်သထာသသောကဌောင့် ၎င်သကို သိရဟိပါသည်။ သို့သော် Ansible သည် လုပ်ထုံသလုပ်နည်သချဉ်သကပ်နည်သကိုအသုံသပဌုပဌီသ VM 10 ခုဖန်တီသရန်တောင်သဆိုပါက၊ ထို့နောက်ပထမအကဌိမ်တလင် Terraform နဟင့်ဆင်တူသည့် VM 10 ခုကိုကျလန်ုပ်တို့ရရဟိမည်ဖဌစ်သည်။ သို့သော် ပဌန်လည်စတင်ပဌီသနောက် ကျလန်ုပ်တို့တလင် VM 20 ရဟိနဟင့်ပဌီသဖဌစ်သည်။ ဒါက အရေသကဌီသတဲ့ ခဌာသနာသချက်ပါ။ လုပ်ထုံသလုပ်နည်သပုံစံတလင်၊ ကျလန်ုပ်တို့သည် လက်ရဟိအခဌေအနေအာသ သိမ်သဆည်သခဌင်သမပဌုဘဲ လုပ်ဆောင်ရမည့်အဆင့်မျာသ အဆင့်ဆင့်ကို ရိုသရိုသရဟင်သရဟင်သဖော်ပဌပါသည်။ ဟုတ်ပါတယ်၊ ကျလန်ုပ်တို့သည် အမျိုသမျိုသသော အခဌေအနေမျာသကို ကိုင်တလယ်နိုင်ပဌီသ အရင်သအမဌစ်မျာသတည်ရဟိမဟုနဟင့် လက်ရဟိအခဌေအနေအတလက် စစ်ဆေသမဟုမျာသစလာကို ထည့်သလင်သနိုင်သော်လည်သ ကျလန်ုပ်တို့၏အချိန်ကို ဖဌုန်သတီသကာ ကယုတ္တိကို ထိန်သချုပ်ရန် အာသစိုက်ထုတ်ခဌင်သမဟာ အဓိပ္ပါယ်မရဟိပါ။ ထို့အပဌင်၊ ၎င်သသည် အမဟာသလုပ်မိနိုင်ခဌေကို တိုသစေသည်။ 

အထက်ဖော်ပဌပါ အာသလုံသကို အကျဉ်သချုပ်အာသဖဌင့်၊ Terraform နဟင့် declarative notation မျာသသည် ဆာဗာမျာသကို ပံ့ပိုသပေသရန်အတလက် ပိုမိုသင့်လျော်သော ကိရိယာတစ်ခုဖဌစ်ကဌောင်သ ကျလန်ုပ်တို့ ကောက်ချက်ချနိုင်ပါသည်။ ဒါပေမယ့် Ansible ရဲ့ configuration management အလုပ်ကို လလဟဲအပ်တာက ပိုကောင်သပါတယ်။ အဲဒါအပဌင်၊ အလိုအလျောက်စနစ်ရဲ့ ဆက်စပ်မဟုမဟာ အသုံသပဌုမဟုကိစ္စတလေကို ကဌည့်ကဌရအောင်။

အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

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

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

1. Terraform ကို အသုံသပဌု၍ VM မျာသနဟင့် အစုအဝေသမျာသ၏ လိုအပ်သော ဝိသေသလက္ခဏာမျာသနဟင့် ကန့်သတ်ချက်မျာသကို ဖော်ပဌပါ။

2. Ansible ကို အသုံသပဌု၍ စမ်သသပ်ရန်အတလက် လိုအပ်သော ကိရိယာမျာသကို တပ်ဆင်ပါ- docker၊ Selenoid၊ Selenium Grid နဟင့် browsers/emulator မျာသ၏ လိုအပ်သောဗာသရဟင်သမျာသကို ဒေါင်သလုဒ်လုပ်ပါ။

3. Terraform ကိုအသုံသပဌု၍ GitLab Runner ကိုစတင်မည့် VM ၏ဝိသေသလက္ခဏာမျာသကိုဖော်ပဌပါ။

4. Ansible ကို အသုံသပဌု၍ GitLab Runner နဟင့် လိုအပ်သော တလဲဖက်ကိရိယာမျာသကို ထည့်သလင်သပါ၊ ဆက်တင်မျာသနဟင့် ပုံစံမျာသကို သတ်မဟတ်ပါ။

လက်ရဟိ အခဌေခံအဆောက်အည အခဌေအနေ ပုံဥပမာ

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

လေ့လာရန်လင့်ခ်မျာသ-

အလာသတူကိရိယာမျာသ

အနဟစ်ချုပ်ရအောင်။

လဟမ်သ
နည်သပညာ
Tools မျာသ
အလိုအလျောက်စနစ်အခဌေခံအဆောက်အအုံအတလက်တန်ဖိုသ

1
ပဌည်တလင်သပဌေသ
Node.js၊ Selenium၊ Appium

  • ဝဘ်နဟင့် မိုဘိုင်သအတလက် ရေပန်သအစာသဆုံသ ကိရိယာမျာသ
  • ဘာသာစကာသမျာသနဟင့် ပလက်ဖောင်သမျာသစလာကို ပံ့ပိုသပေသသည် (Node.js အပါအဝင်)

2
ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မျာသ 
git

  • ဖလံ့ဖဌိုသတိုသတက်မဟုကုဒ်နဟင့်အတူ အလာသတူအကျိုသကျေသဇူသမျာသ

3
Containerization
Docker၊ Selenium grid၊ Selenoid (ဝဘ်၊ Android)

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

4
CI/CD
Gitlab CI

  • ပိုက်လိုင်သ၏ အစိတ်အပိုင်သကို စမ်သသပ်သည်။
  • အမဌန်တုံ့ပဌန်ချက်
  • ကုမ္ပဏီ/အဖလဲ့တစ်ခုလုံသအတလက် မဌင်နိုင်မဟု

5
Cloud ပလက်ဖောင်သမျာသ
ဂူဂယ်လ်တိမ်တိုက်ပလက်ဖောင်သ

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

6
orchestration
Kubernetes
pods မျာသအတလင်သဘရောက်ဆာ/emulator မျာသပါရဟိသောကလန်တိန်နာမျာသ၏အခဌေအနေတလင်-

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

7
ကုဒ် (IaC) အဖဌစ် အခဌေခံအဆောက်အည
Terraform၊ Ansible

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

စိတ်မဌေပုံကာသချပ်မျာသ- အခဌေခံအဆောက်အညမျာသ၏ ဆင့်ကဲဖဌစ်စဉ်

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

အဆင့် 2- VCS
DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်

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

အဆင့် 4- CI/CD 
DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်

အဆင့် 5- Cloud ပလပ်ဖောင်သမျာသ
DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်

အဆင့် 6: တီသမဟုတ်ခဌင်သ။
DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်

အဆင့် 7- IaC
DevOps ကိရိယာမျာသသည် DevOps အတလက်သာ မဟုတ်ပါ။ စမ်သသပ်မဟု automation အခဌေခံအဆောက်အအုံကို အစမဟအဆုံသ တည်ဆောက်ခဌင်သ လုပ်ငန်သစဉ်

လာမည့်ဘာလဲ?

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

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

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

ငါ့ဘက်မဟာ

ခေါင်သစဉ်ကနေ ဒါက ပထမပိုင်သပဲလို့ မဌင်တယ်။ အတော်လေသ ကဌီသလာပေမယ့် အရေသကဌီသတဲ့ အကဌောင်သအရာတလေကို ဒီနေရာမဟာ မခဌုံငုံမိသေသပါဘူသ။ ဒုတိယအပိုင်သတလင်၊ IOS ၏အခဌေအနေတလင် automation infrastructure ကိုကဌည့်ရဟုရန်စီစဉ်ထာသသည်။ macOS စနစ်မျာသတလင်သာ iOS simulators မျာသအသုံသပဌုခဌင်သအပေါ် Apple ၏ကန့်သတ်ချက်မျာသကဌောင့် ကျလန်ုပ်တို့၏ဖဌေရဟင်သချက်အကလာအဝေသသည် ကျဉ်သမဌောင်သသလာသပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် virtual machines မျာသကိုလည်ပတ်ရန် Simulator သို့မဟုတ် public clouds ကို run ရန် Docker ကို အသုံသမပဌုနိုင်ပါ။ ဒါပေမယ့် ဒါက တခဌာသရလေသချယ်စရာတလေမရဟိဘူသလို့ မဆိုလိုပါဘူသ။ အဆင့်မဌင့်ဖဌေရဟင်သနည်သမျာသနဟင့် ခေတ်မီကိရိယာမျာသဖဌင့် သင့်အာသ ခေတ်မီစေရန် ကဌိုသစာသပါမည်။

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

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

source: www.habr.com

မဟတ်ချက် Add