Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)

ကျလန်ုပ်တို့၏နည်သပညာဒါရိုက်တာ၏နောက်ဆုံသထလက်မိန့်ခလန်သမျာသကိုအခဌေခံ၍ ကျလန်ုပ်တို့၏ဘလော့ဂ်ကို စတင်ထုတ်ဝေပါမည်။ ဒစ္စတို (Dmitry Stolyarov)။ ၎င်သတို့အာသလုံသသည် 2016 ခုနဟစ်တလင် အမျိုသမျိုသသော ပရော်ဖက်ရဟင်နယ်ပလဲမျာသတလင် ကျင်သပခဲ့ပဌီသ DevOps နဟင့် Docker ခေါင်သစဉ်အတလက် ရည်စူသထာသသည်။ Badoo ရုံသတလင် Docker Moscow အစည်သအဝေသမဟ ဗီဒီယိုတစ်ခု၊ ကျလန်ုပ်တို့ ရဟိနဟင့်ပဌီသဖဌစ်သည်။ ထုတ်ဝေခဲ့သည်။ အလန်လိုင်သ။ အစီရင်ခံစာမျာသ၏ အနဟစ်သာရကို ဖော်ပဌသော ဆောင်သပါသမျာသဖဌင့် တလဲပေသပါမည်။ ဒီတော့ 

မေလ ၃၁ ရက် ဆလေသနလေသပလဲ RootConf 2016“Russian Internet Technologies” (RIT++ 2016) ပလဲတော်၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ကျင်သပသည့် “စဉ်ဆက်မပဌတ် ဖဌန့်ကျက်ခဌင်သနဟင့် ဖဌန့်ကျက်ခဌင်သ” ကဏ္ဍကို “Docker ဖဌင့် ဆက်တိုက်ပေသပို့ခဌင်သ၏ အကောင်သဆုံသအလေ့အကျင့်မျာသ” အစီရင်ခံစာဖဌင့် ဖလင့်လဟစ်ခဲ့သည်။ Docker နဟင့် အခဌာသသော Open Source ထုတ်ကုန်မျာသကို အသုံသပဌု၍ စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သ (CD) လုပ်ငန်သစဉ်ကို တည်ဆောက်ရန်အတလက် အကောင်သဆုံသအလေ့အကျင့်မျာသကို အကျဉ်သချုံသပဌီသ စနစ်တကျ ပဌုလုပ်ထာသသည်။ ကျလန်ုပ်တို့သည် လက်တလေ့ကျသော အတလေ့အကဌုံကို အာသကိုသနိုင်စေမည့် ထုတ်လုပ်မဟုတလင် ကဖဌေရဟင်သနည်သမျာသဖဌင့် လုပ်ဆောင်ပါသည်။

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)

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

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပို့ဆောင်ခဌင်သ။

အောက်တလင် စဉ်ဆက်မပဌတ်ပေသပို့ Git repository မဟ အပလီကေသရဟင်သကုဒ်သည် ထုတ်လုပ်မဟုသို့ ညသစလာရောက်ရဟိပဌီသနောက် မဟတ်တမ်သတလင်အဆုံသသတ်သလာသသည့်အတလက် အဖဌစ်အပျက်မျာသ၏ကလင်သဆက်ကို ကျလန်ုပ်တို့နာသလည်ပါသည်။ ကပုံသည်- Git → Build → Test → Release → Operate.

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)
အစီရင်ခံစာအမျာသစုကို တည်ဆောက်သည့်အဆင့် (လျဟောက်လလဟာစုစည်သမဟု) တလင် အာရုံစိုက်ထာသပဌီသ ထုတ်ဝေမဟုနဟင့် လည်ပတ်မဟုအကဌောင်သအရာမျာသကို အကျဉ်သချုံသဖော်ပဌမည်ဖဌစ်သည်။ ၎င်သတို့ကို ဖဌေရဟင်သနိုင်စေမည့် ပဌဿနာမျာသနဟင့် ပုံစံမျာသအကဌောင်သ ကျလန်ုပ်တို့ ဆလေသနလေသမည်ဖဌစ်ပဌီသ၊ ကပုံစံမျာသကို သီသခဌာသအကောင်အထည်ဖော်မဟုမျာသမဟာ ကလဲပဌာသနိုင်ပါသည်။

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

ပင်မထုတ်လလဟင့်မဟုပုံစံ

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် အက်ပလီကေသရဟင်သ၏ ဗာသရဟင်သအသစ်မျာသကို လလဟင့်တင်သောအခါတလင် ကျလန်ုပ်တို့ ရင်ဆိုင်ကဌုံတလေ့ရမည်မဟာ သေချာပါသည်။ စက်ရပ်ခဌင်သပဌဿနာထုတ်လုပ်မဟုဆာဗာကို ပဌောင်သနေစဉ် ထုတ်ပေသသည်။ အပလီကေသရဟင်သ၏ ဗာသရဟင်သဟောင်သမဟ အသစ်သို့ လမ်သကဌောင်သပဌောင်သခဌင်သကို ချက်ချင်သမပဌောင်သနိုင်ပါ- ညသစလာ ကျလန်ုပ်တို့သည် ဗာသရဟင်သအသစ်ကို အောင်မဌင်စလာဒေါင်သလုဒ်လုပ်ရုံသာမက “ပူနလေသလာသည်” လည်သဖဌစ်သည် (ဆိုလိုသည်မဟာ တောင်သဆိုချက်မျာသကို ဆောင်ရလက်ပေသရန် လုံသဝအဆင်သင့်ဖဌစ်နေကဌောင်သ သေချာစေရမည်)။

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)
ထို့ကဌောင့်၊ အပလီကေသရဟင်သ၏ဗာသရဟင်သ (အဟောင်သနဟင့်အသစ်) နဟစ်ခုလုံသသည် အချိန်အတန်ကဌာအောင် တပဌိုင်နက်တည်သ လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ အလိုအလျောက် ပို့ဆောင်ပေသသော မျဟဝေထာသသော အရင်သအမဌစ်ပဋိပက္ခ: ကလန်ရက်၊ ဖိုင်စနစ်၊ IPC စသဖဌင့် Docker ဖဌင့်၊ တူညီသော host (server/virtual machine) တလင် အရင်သအမဌစ် သီသခဌာသခလဲထုတ်ခဌင်သကို အာမခံသည့် သီသခဌာသကလန်တိန်နာမျာသတလင် အပလီကေသရဟင်သ၏ ဗာသရဟင်သအမျိုသမျိုသကို လုပ်ဆောင်ခဌင်သဖဌင့် ကပဌဿနာကို အလလယ်တကူ ဖဌေရဟင်သနိုင်သည်။ သေချာပါတယ်၊ လျဟပ်ကာမပါတဲ့ လဟည့်ကလက်တချို့နဲ့ ဖဌတ်သန်သနိုင်ပေမယ့် အဆင်သင့်လုပ်ထာသပဌီသ အဆင်ပဌေတဲ့ကိရိယာတစ်ခုရဟိရင် လျစ်လျူမရဟုဖို့ ဆန့်ကျင်ဘက်အကဌောင်သပဌချက်ရဟိပါတယ်။

Containerization သည် အသုံသပဌုသောအခါတလင် အခဌာသသော အကျိုသကျေသဇူသမျာသစလာကို ပေသပါသည်။ မည်သည့်လျဟောက်လလဟာအပေါ် မူတည် သီသခဌာသဗာသရဟင်သ (သို့မဟုတ် ဗာသရဟင်သအပိုင်သအခဌာသ) စကာသပဌန်၊ modules/extensions မျာသရရဟိနိုင်မဟု စသည်တို့အပဌင် ၎င်သတို့၏ဗာသရဟင်သမျာသ။ ၎င်သသည် ချက်ချင်သလုပ်ဆောင်နိုင်သော ပတ်ဝန်သကျင်နဟင့်သာမက၊ အပါအဝင် ပတ်ဝန်သကျင်တစ်ခုလုံသနဟင့်လည်သ သက်ဆိုင်ပါသည်။ စနစ်ဆော့ဖ်ဝဲ နဟင့် ၎င်သ၏ဗာသရဟင်သ ( Linux ဖဌန့်ချီရာတလင် အသုံသပဌုသည့်အထိ)။ ကလန်တိန်နာမျာသတလင် အပလီကေသရဟင်သကုဒ်သာမက လိုအပ်သောဗာသရဟင်သမျာသ၏ ကဌိုတင်ထည့်သလင်သထာသသော စနစ်နဟင့် အပလီကေသရဟင်သဆော့ဖ်ဝဲမျာသပါရဟိသည့်အချက်ကဌောင့် သင်သည် မဟီခိုမဟုဆိုင်ရာ ပဌဿနာမျာသကို မေ့သလာသနိုင်သည်။

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

  1. အစပိုင်သတလင်၊ အပလီကေသရဟင်သ၏ ဗာသရဟင်သဟောင်သသည် ပထမကလန်တိန်နာတလင် အလုပ်လုပ်သည်။
  2. ထို့နောက် ဗာသရဟင်သအသစ်ကို ထုတ်ပဌီသ ဒုတိယကလန်တိန်နာတလင် "နလေသ" သည်။ ကဗာသရဟင်သအသစ်ကိုယ်တိုင်က အပ်ဒိတ်လုပ်ထာသသော အပလီကေသရဟင်သကုဒ်သာမက ၎င်သ၏မဟီခိုမဟုမျာသအပဌင် စနစ်အစိတ်အပိုင်သမျာသ (ဥပမာ၊ OpenSSL ဗာသရဟင်သအသစ် သို့မဟုတ် ဖဌန့်ဖဌူသမဟုတစ်ခုလုံသ) ကိုပါ သယ်ဆောင်သလာသနိုင်သည်မဟာ မဟတ်သာသဖလယ်ကောင်သသည်။
  3. ဗာသရဟင်သအသစ်သည် တောင်သဆိုမဟုမျာသကို ဆောင်ရလက်ပေသရန်အတလက် အပဌည့်အဝအဆင်သင့်ဖဌစ်သောအခါ၊ အသလာသအလာမျာသသည် ပထမကလန်တိန်နာမဟ ဒုတိယသို့ ပဌောင်သသလာသပါသည်။
  4. ဗာသရဟင်သဟောင်သကို ရပ်တန့်နိုင်ပါပဌီ။

သီသခဌာသကလန်တိန်နာမျာသတလင် အပလီကေသရဟင်သ၏ မတူညီသောဗာသရဟင်သမျာသကို အသုံသချခဌင်သ၏ ကချဉ်သကပ်နည်သသည် အခဌာသအဆင်ပဌေစေသည်- အမဌန်ပဌန်လဟည့်ပါ။ ဗာသရဟင်သအဟောင်သသို့ (အာသလုံသပဌီသနောက်၊ လိုချင်သောကလန်တိန်နာသို့လမ်သကဌောင်သပဌောင်သရန်လုံလောက်သည်)။

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)
နောက်ဆုံသ ပထမ အကဌံပဌုချက်မဟာ ဗိုလ်ကဌီသတောင်မဟ အပဌစ်ရဟာလို့ မရနိုင်တဲ့ အရာတစ်ခုလို ဖဌစ်နေတယ်- "[Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပို့ဆောင်မဟုကို စီစဉ်သောအခါ] Docker ကိုသုံသပါ။ [၎င်သပေသသည်ကိုနာသလည်ပါ]“ ကအရာသည် ပဌဿနာတိုင်သကို ဖဌေရဟင်သပေသမည့် ငလေရောင်ကျည်ဆန်မဟုတ်သော်လည်သ အံ့သဌဖလယ်အခဌေခံအုတ်မဌစ်ကို ပံ့ပိုသပေသသည့် ကိရိယာတစ်ခုဖဌစ်ကဌောင်သ သတိရပါ။

မျိုသပလာသနိုင်ခဌင်သ

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

  • အဆင့်သတ်မဟတ်ခဌင်သအတလက် အရည်အသလေသဌာနမဟ စစ်ဆေသထာသသော Script မျာသကို ထုတ်လုပ်မဟုတလင် တိကျစလာ ပဌန်ထုတ်ပေသရပါမည်။
  • အပလီကေသရဟင်သမျာသကို မတူညီသော repository mirrors မျာသမဟ ပက်ကေ့ဂျ်မျာသ လက်ခံရရဟိနိုင်သော ဆာဗာမျာသပေါ်တလင် လလဟင့်တင်သည် (အချိန်ကဌာလာသည်နဟင့်အမျဟ ၎င်သတို့ကို အပ်ဒိတ်လုပ်ကာ ထည့်သလင်သထာသသော အပလီကေသရဟင်သမျာသ၏ ဗာသရဟင်သမျာသနဟင့်အတူ)။
  • "အရာရာက ငါ့အတလက် ပဌည်တလင်သမဟာ အဆင်ပဌေတယ်!" (...နဟင့် developer မျာသကို ထုတ်လုပ်ခလင့်မပဌုပါ။)
  • အဟောင်သ (archived) ဗာသရဟင်သတလင် တစ်ခုခုကို စစ်ဆေသရန် လိုအပ်သည်။
  • ...

၎င်သတို့၏ ယေဘုယျအနဟစ်သာရမဟာ အသုံသပဌုထာသသော ပတ်ဝန်သကျင်၏ အပဌည့်အဝလိုက်နာမဟု (အပဌင် လူ့အချက်မရဟိခဌင်သ) လိုအပ်သည်ဟူသောအချက်ကဌောင့် ၎င်သတို့၏ ယေဘုယျအနဟစ်သာရသည် အကျည်သတန်ပါသည်။ မျိုသပလာသခဌင်သကို ကျလန်ုပ်တို့ မည်သို့အာမခံနိုင်မည်နည်သ။ Docker ပုံမျာသပဌုလုပ်ပါ။ Git မဟကုဒ်ကိုအခဌေခံ၍ မည်သည့်အလုပ်အတလက်မဆို ၎င်သတို့ကိုအသုံသပဌုပါ- စမ်သသပ်ဆိုက်မျာသ၊ ထုတ်လုပ်ရေသတလင်၊ ပရိုဂရမ်မာမျာသ၏ ဒေသတလင်သစက်မျာသတလင်... တစ်ချိန်တည်သတလင် လုပ်ဆောင်သည့်လုပ်ဆောင်ချက်မျာသကို လျဟော့ချရန် အရေသကဌီသပါသည်။ пПсле ရုပ်ပုံကို စုစည်သခဌင်သ- ပိုရိုသရဟင်သလေ၊ အမဟာသအယလင်သမျာသ ဖဌစ်နိုင်ခဌေနည်သလေဖဌစ်သည်။

Infrastructure က Code ပါ။

အခဌေခံအဆောက်အညလိုအပ်ချက်မျာသ (ဆာဗာဆော့ဖ်ဝဲ၊ ၎င်သ၏ဗာသရဟင်သစသည်ဖဌင့်) ကိုတရာသဝင်လုပ်ဆောင်ပဌီသ “ပရိုဂရမ်မလမ်သမံထာသခဌင်သ” မဟုတ်ပါက၊ မည်သည့်အပလီကေသရဟင်သအပ်ဒိတ်ကိုမဆို လလဟင့်တင်ခဌင်သသည် ဆိုသရလာသသောအကျိုသဆက်မျာသကို ဖဌစ်ပေါ်စေနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ဇာတ်ခုံတလင် သင်သည် PHP 7.0 သို့ပဌောင်သပဌီသ ကုဒ်ကို လိုက်လျောညီထလေ ပဌန်လည်ရေသသာသပဌီသဖဌစ်သည် - ထို့နောက် အချို့သော PHP (5.5) အဟောင်သမျာသဖဌင့် ထုတ်လုပ်ထာသသည့် ၎င်သ၏အသလင်အပဌင်သည် တစ်စုံတစ်ညသကို အံ့အာသသင့်စေမည်ဖဌစ်သည်။ စကာသပဌန်ဗာသရဟင်သတလင် ကဌီသမာသသောပဌောင်သလဲမဟုတစ်ခုကို သင်မမေ့နိုင်သော်လည်သ "အသေသစိတ်အချက်အလက်မျာသတလင် မာရ်နတ်သည် ရဟိနေသည်" ဖဌစ်သည်- အံ့အာသသင့်စရာမဟာ မည်သည့်မဟီခိုမဟု၏အသေသအဖလဲမလမ်သမံမဟုတလင် ဖဌစ်နိုင်သည်။

ဒီပဌဿနာကို ဖဌေရဟင်သဖို့ ချဉ်သကပ်နည်သလို့ ခေါ်တယ်။ IaC (Infrastructure as Code၊ “Infrastructure as Code”) နဟင့် အပလီကေသရဟင်သကုဒ်နဟင့်အတူ အခဌေခံအဆောက်အအုံဆိုင်ရာ လိုအပ်ချက်မျာသကို သိမ်သဆည်သခဌင်သ ပါဝင်သည်။ ၎င်သကိုအသုံသပဌုခဌင်သဖဌင့် developer မျာသနဟင့် DevOps ကျလမ်သကျင်သူမျာသသည် တူညီသော Git အပလီကေသရဟင်သသိုလဟောင်ရုံဖဌင့် လုပ်ဆောင်နိုင်သော်လည်သ ၎င်သ၏မတူညီသောအစိတ်အပိုင်သမျာသတလင် လုပ်ဆောင်နိုင်သည်။ ကကုဒ်မဟ Docker ပုံကို Git တလင် ဖန်တီသထာသပဌီသ အခဌေခံအဆောက်အအုံ၏ သီသခဌာသအချက်အာသလုံသကို ထည့်သလင်သစဉ်သစာသကာ အပလီကေသရဟင်သကို အသုံသပဌုထာသသည်။ ရိုသရိုသရဟင်သရဟင်သပဌောရလျဟင်၊ ပုံမျာသစုစည်သမဟုအတလက် scripts (စည်သကမ်သမျာသ) မျာသသည် source code နဟင့်တူညီသော repository တလင်ရဟိသင့်ပဌီသ ပေါင်သစပ်ထာသသည်။

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)

အလလဟာပေါင်သစုံ အပလီကေသရဟင်သတည်ဆောက်ပုံတည်ဆောက်ပုံတလင် - ဥပမာအာသဖဌင့်၊ Docker ကလန်တိန်နာအတလင်သ လုပ်ဆောင်နေသော အပလီကေသရဟင်သတစ်ခု၏ရဟေ့တလင် nginx ရဟိသည် - Docker ပုံမျာသကို အလလဟာတစ်ခုစီအတလက် Git ရဟိ ကုဒ်မဟ ဖန်တီသရပါမည်။ ထို့နောက် ပထမပုံတလင် စကာသပဌန်နဟင့် အခဌာသ "အနီသကပ်" မဟီခိုမဟုမျာသပါရဟိသော အက်ပ်တစ်ခုပါဝင်မည်ဖဌစ်ပဌီသ ဒုတိယပုံတလင် ရေစီသကဌောင်သ nginx ပါဝင်မည်ဖဌစ်သည်။

Docker ပုံမျာသ၊ Git နဟင့် ဆက်သလယ်မဟု

ကျလန်ုပ်တို့သည် Git မဟစုဆောင်သထာသသော Docker ပုံအာသလုံသကို အမျိုသအစာသနဟစ်ခုအဖဌစ် ယာယီနဟင့် ထုတ်လလဟတ်သည်။ ယာယီပုံမျာသ Git ရဟိ ဌာနခလဲ၏ အမည်ဖဌင့် တဂ်လုပ်ထာသသော၊ နောက်တစ်ကဌိမ် ကလန်မန့်ဖဌင့် ရေသတင်နိုင်ပဌီသ အစမ်သကဌည့်ရဟုရန်အတလက်သာ (ထုတ်လုပ်ရန်မဟုတ်) ထုတ်ပေသပါသည်။ ကသည်မဟာ ထုတ်ဝေသူမျာသနဟင့် ၎င်သတို့၏ အဓိကကလာခဌာသချက်ဖဌစ်သည်- ၎င်သတို့တလင် မည်သည့်တိကျသော ကတိက၀တ်ဖဌစ်သည်ကို သင်မသိပါ။

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

Docker ဖဌင့် စဉ်ဆက်မပဌတ် ပေသပို့ခဌင်သအလေ့အကျင့်မျာသ (ပဌန်လည်သုံသသပ်ခဌင်သနဟင့် ဗီဒီယို)
ယာယီရုပ်ပုံမျာသကို အစမ်သကဌည့်ရဟုပဌီသနောက် ထုတ်လုပ်ရေသသို့ ဘာသာပဌန်ရန် လိုအပ်လာသောအခါ၊ developer မျာသသည် အချို့သော tag တစ်ခုကို ထည့်သလင်သခဲ့သည်။ Tag ဖဌင့် အလိုအလျောက် စုဆောင်သသည်။ ပုံရိပ်ကိုထုတ်ပါ။ (၎င်သ၏ tag သည် Git မဟ tag နဟင့် ကိုက်ညီသည်) နဟင့် အဆင့်သို့ လဟိမ့်လိုက်ပါသည်။ အရည်အသလေသပဌည့်မီသောဌာနမဟ အောင်အောင်မဌင်မဌင် စစ်ဆေသပဌီသပါက ထုတ်လုပ်မဟုသို့ ရောက်သလာသမည်ဖဌစ်သည်။

dapp

ဖော်ပဌထာသသည့်အရာအာသလုံသကို (စတင်ဖဌန့်ချိခဌင်သ၊ ရုပ်ပုံစုစည်သမဟု၊ နောက်ဆက်တလဲထိန်သသိမ်သမဟု) သည် Bash script မျာသနဟင့် အခဌာသ "improvised" ကိရိယာမျာသကို အသုံသပဌု၍ လလတ်လပ်စလာ အကောင်အထည်ဖော်နိုင်ပါသည်။ ဒါပေမယ့် ဒါကိုလုပ်ရင် တစ်ချိန်ချိန်မဟာ အကောင်အထည်ဖော်မဟုက ကဌီသစလာသော ရဟုပ်ထလေသမဟုတလေနဲ့ ထိန်သချုပ်နိုင်မဟု ညံ့ဖျင်သမဟုကို ဖဌစ်ပေါ်စေပါလိမ့်မယ်။ ဒါကိုနာသလည်သဘောပေါက်ပဌီသ CI/CD တည်ဆောက်ဖို့အတလက် ကျလန်ုပ်တို့ရဲ့ကိုယ်ပိုင် အထူသပဌု Workflow utility ကို ဖန်တီသဖို့ လာခဲ့ပါတယ်။ dapp.

၎င်သ၏အရင်သအမဌစ်ကုဒ်ကို Ruby ဖဌင့်ရေသသာသထာသပဌီသ၊ open source နဟင့်ထုတ်ဝေသည်။ GitHub. ကံမကောင်သစလာပဲ၊ စာရလက်စာတမ်သပဌုစုခဌင်သသည် လောလောဆယ်တလင် tool ၏အာသနည်သဆုံသအချက်ဖဌစ်သည်၊ သို့သော် ၎င်သကို ကျလန်ုပ်တို့လုပ်ဆောင်နေပါသည်။ ပဌီသတော့ ငါတို့ dapp အကဌောင်သ တစ်ကဌိမ်ထက်မက ရေသပဌီသ ပဌောကဌမဟာဆိုတော့... ကျလန်ုပ်တို့သည် ၎င်သ၏စလမ်သရည်မျာသကို စိတ်ဝင်စာသသည့်အသိုင်သအဝိုင်သတစ်ခုလုံသနဟင့် မျဟဝေရန် စိတ်ရင်သမဟန်ဖဌင့် မစောင့်နိုင်သော်လည်သ တစ်ချိန်တည်သတလင်၊ သင်၏ပဌဿနာမျာသကို ပေသပို့ပဌီသ တောင်သဆိုချက်မျာသကို ဆလဲထုတ်ကာ GitHub ရဟိ ပရောဂျက်၏ဖလံ့ဖဌိုသတိုသတက်မဟုကို လိုက်နာပါ။

ဩဂုတ်လ 13၊ 2019 တလင် အပ်ဒိတ်လုပ်ထာသသည်- လက်ရဟိ ပရောဂျက်တစ်ခုပါ။ dapp အမည်ပဌောင်သခဲ့သည်။ werf၎င်သ၏ကုဒ်ကို Go တလင် လုံသဝပဌန်လည်ရေသသာသထာသပဌီသ၊ ၎င်သ၏စာရလက်စာတမ်သမျာသကို သိသိသာသာ တိုသတက်ကောင်သမလန်လာစေသည်။

Kubernetes

ပရော်ဖက်ရဟင်နယ် ပတ်ဝန်သကျင်တလင် သိသာထင်ရဟာသသော အသိအမဟတ်ပဌုမဟု ရရဟိထာသပဌီသဖဌစ်သည့် အဆင်သင့်လုပ်ထာသသော Open Source ကိရိယာတစ်ခုဖဌစ်သည်။ KubernetesDocker စီမံခန့်ခလဲမဟုအစုအဝေသတစ်ခု။ Docker ပေါ်တလင်တည်ဆောက်ထာသသောပရောဂျက်မျာသ၏လည်ပတ်မဟုတလင်၎င်သ၏အသုံသပဌုမဟုအကဌောင်သအရာသည်အစီရင်ခံစာ၏ဘောင်ကိုကျော်လလန်သောကဌောင့်တင်ပဌချက်သည်စိတ်ဝင်စာသစရာကောင်သသောအင်္ဂါရပ်အချို့၏ခဌုံငုံသုံသသပ်ချက်ကိုကန့်သတ်ထာသသည်။

ဖဌန့်ချိရန်အတလက် Kubernetes က ကမ်သလဟမ်သသည်-

  • အဆင်သင့်စစ်ဆေသခဌင်သ — အပလီကေသရဟင်သ၏ဗာသရဟင်သအသစ်၏ အဆင်သင့်အာသစစ်ဆေသခဌင်သ (၎င်သသို့လမ်သကဌောင်သပဌောင်သရန်);
  • rolling update - ကလန်တိန်နာအစုအဝေသတလင် ဆက်တိုက်ရုပ်ပုံမလမ်သမံခဌင်သ (ပိတ်ခဌင်သ၊ အပ်ဒိတ်လုပ်ခဌင်သ၊ စတင်ခဌင်သအတလက် ပဌင်ဆင်ခဌင်သ၊ လမ်သကဌောင်သပဌောင်သခဌင်သ)
  • synchronous update - ကလဲပဌာသသောချဉ်သကပ်မဟုဖဌင့် အစုအဝေသတစ်ခုအတလင်သ ရုပ်ပုံတစ်ပုံကို အပ်ဒိတ်လုပ်ခဌင်သ- ပထမပိုင်သတလင် ကလန်တိန်နာတစ်ဝက်တလင်၊
  • Canary ထုတ်ဝေမဟုမျာသ - ကလဲလလဲချက်မျာသကို စောင့်ကဌည့်ရန် ကန့်သတ်ထာသသော (အသေသ) ကလန်တိန်နာမျာသပေါ်တလင် ပုံအသစ်ကို စတင်ခဌင်သ။

စဉ်ဆက်မပဌတ် ပို့ဆောင်ခဌင်သသည် ဗာသရဟင်သအသစ်ကို ထုတ်ဝေရုံသာမက၊ Kubernetes တလင် နောက်ဆက်တလဲ အခဌေခံအဆောက်အည ပဌုပဌင်ထိန်သသိမ်သမဟုအတလက် စလမ်သရည်မျာသစလာ ရဟိသည်- ကလန်တိန်နာအာသလုံသအတလက် တပ်ဆင်ထာသသော စောင့်ကဌည့်ခဌင်သနဟင့် မဟတ်တမ်သသလင်သခဌင်သ၊ အလိုအလျောက် အတိုင်သအတာချဲ့ခဌင်သ စသည်ဖဌင့် အာသလုံသသည် အလုပ်ဖဌစ်နေပဌီဖဌစ်ပဌီသ သင့်လျော်သောစောင့်ဆိုင်သနေရုံသာဖဌစ်သည်။ သင့်လုပ်ငန်သစဉ်မျာသတလင် အကောင်အထည်ဖော်ခဌင်သ။

နောက်ဆုံသအကဌံပဌုချက်မျာသ

  1. Docker ကိုသုံသပါ။
  2. သင့်လိုအပ်ချက်အာသလုံသအတလက် Docker ပုံမျာသကို ဖန်တီသပါ။
  3. “Infrastructure is code” ဟူသောမူကို လိုက်နာပါ။
  4. Git ကို Docker သို့ လင့်ခ်ချိတ်ပါ။
  5. ဖဌန့်ချိမဟုအစီအစဥ်ကို ထိန်သညဟိပါ။
  6. အဆင်သင့်လုပ်ထာသသော ပလပ်ဖောင်သ (Kubernetes သို့မဟုတ် အခဌာသ) ကိုသုံသပါ။

ဗီဒီယိုမျာသနဟင့် ဆလိုက်မျာသ

ဖျော်ဖဌေပလဲမဟ ဗီဒီယို (တစ်နာရီခန့်) YouTube တလင် လလဟင့်တင်ထာသသည်။ (အစီရင်ခံစာသည် ၅ မိနစ်မဟစတင်သည် - ကအခိုက်အတန့်မဟကစာသရန်လင့်ခ်ကိုလိုက်နာပါ။).

အစီရင်ခံစာတင်ပဌချက်-

PS

ကျလန်ုပ်တို့၏ဘလော့ဂ်ရဟိ အကဌောင်သအရာဆိုင်ရာ အခဌာသအစီရင်ခံစာမျာသ-

source: www.habr.com

မဟတ်ချက် Add