DevOps တစ်ယောက်ဖြစ်ဖို့ လွယ်လား?

DevOps တစ်ယောက်ဖြစ်ဖို့ လွယ်လား?

အပိုင်း(၁)

Table of contents

No heading

No headings in the article.

ဒီခေါင်းစဥ်ကို သေချာစဥ်းစားကြည့်လိုက်တဲ့အခါ လွယ်တယ်လို့လည်း ပြောလို့ရသလို မလွယ်ဘူးလို့လဲ​ ပြောလို့ရပါတယ်။ ဟုတ်ပြီ ဒီတော့ ကျွန်တော်တို့ ဘာတွေလေ့လာဖို့လိုမလဲ ဆိုတဲ့အပိုင်းကနေ စသွားလိုက်မယ်

DevOps တစ်ယောက်ဖြစ်လာဖို့ဆိုတာ ကြိုးစားအားထုတ်မှုတွေရှိပြီး စဥ်ဆက်မပြတ်လေ့လာနိုင်တဲ့သူတွေ အတွက်တော့ ဖြစ်ဖို့လွယ်ကူပေမယ့် ဖြစ်ချင်တယ် ဖြစ်ချင်တယ်ဆိုပြီး ထိုင်အော် DevOps သင်တန်းတွေတက်ကြည့်ရုံနဲ့တော့ ဖြစ်မလာနိုင်ဖူးလို့ မိမိ အမြင်သပ်သပ် အရ ဆိုလိုချင်ပါတယ်။

DevOps တစ်ယောက်မှာရှိသင့်ရှိထိုက်တဲ့ အသိပညာ အတတ်ပညာတွေဆိုတာ ရှိပါတယ်။ ဒီတော့ အသိပညာဆိုရမှာ ကိုယ်တိုင်လုပ်ပေးစရာမလိုပဲ​ သိနေဖို့လိုအပ်တဲ့ အခြေခံသဘောတရားတွေရှိပါတယ်။

ဆိုလိုချင်တာကတော့ ဥပမာ website တခုရေးဖို့ DevOps တစ်ယောက်အနေနဲ့ ရေးတတ်ဖို့ မလိုပါဘူး ဒါပေမယ့် Website တခုက ဘယ်လိုအလုပ်လုပ်တယ် ဘာတွေ ပါဝင်တယ်ဆိုတာမျိုးတော့ သိထားဖို့လိုပါတယ်။ ဒီဘက်ခတ်ကြီးထဲမှာ အစအဆုံးလုပ်ပေးရတာမျိုးတွေရှားသွားပြီဖြစ်လို့ သိသင့်သိထိုက်တဲ့ အခြေခံသဘောတရားတွေကိုတော့ သိထားဖို့ က အရေးကြီးပါတယ်။ ဥပမာ အားဖြင့် DNS server လိုမျိုးတွေက ကိုယ်တိုင် setup လုပ်ပြီးသုံးတာမျိုးထက် DNS server တွေဘယ်လို အလုပ်လုပ်လည်းဆိုတာမျိုး DNS ကို ဘယ်လို manage လုပ်မလဲဆိုတာမျိုးကို ကောင်းကောင်းနားလည်ထားဖို့လိုပါတယ်။ ဒါကြောင့်မို့ စာရေးသူအနေ အသိပညာဆိုပြီး နာမည်တပ်လိုက်ခြင်းပဲဖြစ်ပါတယ်။

နောက်တခုကတော့ အတတ်ပညာပေါ့ ၊ အတတ်ပညာမှာတော့ DevOps တစ်ယောက် လုပ်သင့် လုပ်နိုင် လုပ်တတ်ရမယ့် အကြောင်းအရာတွေပဲဖြစ်ပါတယ်။ DevOps တစ်ယောက်ဟာ Linux သို့မဟုတ် Windows server တခုကို အကျွမ်းကျင်ဆုံး ကိုင်တွယ်နိုင်ရမှာဖြစ်ပါတယ်။ နှစ်ခုလုံးကို ရင်းနီးထားရင်တော့ ပိုအဆင်ပြေပါတယ်။ အထူးသဖြင့် ကျွန်တော့်တို့ နိုင်ငံမှာတော့ Linux environment တွေနဲ့ထိတွေ့ဖို့ ပိုများတယ်လို့ စာရေးသူအနေနဲ့ မှတ်ချက်ချလိုပါတယ်။ ဒီတော့ Linux ကိုအဓိက ထားပြီးပြောချင်ပါတယ်။ စာရေးသူကိုယ်တိုင်ကလည်း Linux System Administration ကို ပဲ ပိုပြီး အကျွမ်းတဝင်ရှိလို့ ပြောခြင်းဖြစ်ပါတယ်။

Linux System Administration လို့ဆိုရမှာတော့ Ubuntu ကိုပဲ သုံးတတ်တယ် Centos ကိုပဲ သိတယ် Red Hat ကိုပဲလေ့လာဖူးတာ ဆိုတာမျိုးထက် DevOps တစ်ယောက်အတွက်ကတော့ Main Distro (server) ထဲမှာ အသုံးများတဲ့ Red Hat based OS တွေရယ် Debian Based OS တွေရယ်ကိုတော့ ကိုင်တွယ်နိုင်စွမ်း ရှိဖို့ လိုအပ်တယ်လို့ မြင်မိပါတယ်။ DevOps တစ်ယောက်အနေနဲ့ က environemnt မျိုးစုံကို ရောက်သွားနိုင်တဲ့အတွက် Enterprise မှာဆို Red Hat ကိုအသုံးများတာမျိုး start up လို evnironment မှာဆို Debian based ဖြစ်တဲ့ Ubuntu ကို အသုံးများတာမျိုးတွေပေါ့။ Linux SysAdmin ကတော့ အခြေခံကတော့ concept တွေက အတူတူပဲဖြစ်လို့ လေ့လာဖို့အတွက်လွယ်ကူပါတယ်။ Configuration အပိုင်းတွေ command လေးတွေ config file path လေးတွေ အစရှိသည်တို့မှာသာ ကွဲပြားသွားတာမျိုးလို့ မှတ်ယူမိပါတယ်။ ဒီတော့ Linux ကိုမမေ့ဖို့ အကြံပေးရင်း အတတ်ပညာတခုအနေနဲ့ သတ်မှတ်ထားမိပါတယ်။ အထူးသဖြင့် Web Server တွေ setup လုပ်ခြင်း၊ Database setup, Database cluster setup, monitoring tools setup (Zabbix, monit, etc..) , file permissions, log tracing, system troubleshooting, Firewall management (UFW, IPTables, SELinux) ဒီအပိုင်းတွေကို နားလည်ထားဖို့ လေ့လာထားဖို့ လုပ်ကြည့်ဖူးထားဖို့ လိုပါတယ်။

နောက်တခုကတော့ Git ဖြစ်ပါတယ်။ Git လို့ဆိုရမှာကတော့ Git အကိုအသုံးပြုရုံတင်မဟုတ်ပဲ Git Version Control system ကို ပါ တည်ဆောက်တတ်ဖို့ တည်ဆောက်ကြည့်ဖူးဖို့ လိုတယ်လို့ မြင်မိပါတယ်။ ဥပမာအားဖြင့် Gitlab self-hosted server ကိုဘယ်လို host မလဲ? နောက်ပြီး Ci/Cd လုပ်ဖို့ ဘယ် runner ကိုသုံးမလဲ? Shared runner ကိုသုံးမလား? Auto scaling runner ကို setup လုပ်မလား? များစွာသော လား ပေါင်းများစွာ အတွက် အဖြေရှိနေဖို့ သိနေဖို့လိုပါတယ်။ Git နဲ့ ကိုယ့် server နဲ့ authenicate လုပ်တဲ့နေရာမှာ ဘယ်လိုလုပ်မလဲ? ကိုယ့် အလုပ်ခွင်ရဲ့ compliance တွေ regulation တွေအရ git server ကို private မှာပဲထားမလား ဒါဆို developer တွေအနေနဲ့ ဘယ်လိုမျိုး access လုပ်မလဲ? နောက်တခုကတော့ Git Flow - git မှာ branching ကို ဘယ်လို define လုပ်မလဲဆိုတာမျိုးကို Developer Team Lead တွေနဲ့ disucss လုပ်ရတဲ့အပိုင်းတွေ git commit တွေကို ဘယ်လို standard ကျကျပေးရမလဲ? git log, git checkout ... အစရှိတဲ့ command တွေ git branch မှာဆိုရင်လည်း merge လုပ်ဖို့ ဘယ်သူ့မှာပဲ​ တာဝန်ရှိတာမျိုး အစရှိသည့်ဖြင့် ဒီလို git နဲ့ပတ်သတ်တဲ့အရာတွေမှာ နားလည်ထားဖို့လိုပါတယ် ကိုယ်ပိုင် decision maker လုပ်တာမျိုးထပ် Development team lead တွေနဲ့ disucss လုပ်ပြီး input ပေးဖို့လိုတာကတော့ အမှန်ပါပဲ။

နောက်တခုကတော့ soft-skills တခုဖြစ်တဲ့ communication skills ပဲဖြစ်ပါတယ်။ DevOps တစ်ယောက်ဖြစ်လာပြီဆိုတာနဲ့ server တွေကိုပဲ​ ကိုင်တွယ်နေရတဲ့သူ မဟုတ်ပါဘူး။ DevOps တစ်ယောက်ရဲ့ input ဟာ project တိုင်းမှာ ပါဝင်ဖို့လိုပါတယ်။ အထူးသဖြင့် Developer တွေ PM တွေကြားမှာ ကိုယ်က အရေးကြီးတဲ့ role တခုကနေ ပါဝင်ဖို့လိုပါတယ်။ project အစကနေ project အဆုံး Devlivery လုပ်ပြီးသည်ထိ အောင် DevOps တစ်ယောက်က ဒီ project နဲ့ ဆက်စပ်နေရတုန်းပါပဲ input တွေအများကြီးပါရအုံးမှာပဲဖြစ်ပါတယ်။

ဒီနေ့ကတော့ ဒီတပိုင်းကို ဒီလောက်နဲ့ပဲ နားခွင့်ပြုပါခဗျာ။ နောက်တပိုင်းမှာတော့ DevOps တစ်ယောက် အနေနဲ့ သိသင့်သိထိုက်တဲ့ အသိပညာ၊ အတတ်ပညာတွေကို ထပ်မံဆွေးနွေးပေးပါအုံးမယ်ခဗျာ။

သဘောကျနှစ်သက် အကျိုးရှိတယ်ဆိုရင်တော့ Like & Share လေးလုပ်ပြီး ကောမန့်လေးနဲ့ပါ အားပေးလို့ရပါတယ်ခဗျာ...

KT

DevKTOps Technical Blog