DevOps-д зориулсан гарын авлага: DevOps-ийн ур чадварын модоо тэгээс эхлэн бүтээх нь
DevOps-д зориулсан гарын авлага: DevOps-ийн ур чадварын модоо тэгээс эхлэн бүтээх нь
DevOps бол зүгээр нэг ажил биш, харин соёл, үзэл баримтлал бөгөөд хөгжүүлэлт (Development) болон ажиллагаа (Operations)-ны хоорондох ханыг эвдэж, автоматжуулалт, хамтын ажиллагаа, тасралтгүй сайжруулалтаар дамжуулан програм хангамжийн хүргэлтийн процессыг хурдасгаж, чанарыг сайжруулах зорилготой юм. Хэрэв та DevOps-ийн салбарт хөл тавих гэж байгаа бол энэ нийтлэл нь танд DevOps-ийн ур чадварын модоо бүтээхэд туслах практик гарын авлага болох болно.
1. DevOps-ийн гол ойлголт ба зарчим
Тодорхой технологид гүнзгий орохоос өмнө DevOps-ийн гол ойлголтыг ойлгох нь чухал юм.
- Соёлын өөрчлөлт: DevOps нь багуудын хамтын ажиллагаа, харилцаа холбоо, хариуцлагыг хуваалцахыг онцолдог. Silos-ыг эвдэж, итгэлцэл, ил тод байдлын соёлыг бий болгох нь амжилтын түлхүүр юм.
- Автоматжуулалт: Автоматжуулсан туршилт, бүтээн байгуулалт, байршуулалт гэх мэт процессуудаар дамжуулан хүний оролцоог багасгаж, үр ашгийг дээшлүүлж, алдааны түвшинг бууруулна.
- Тасралтгүй интеграцчлал/Тасралтгүй хүргэлт (CI/CD): Энэ бол DevOps-ийн гол практикүүдийн нэг юм. CI нь кодын интеграцчлал, туршилтад анхаарлаа хандуулдаг бол CD нь автоматжуулсан байршуулалт, нийтлэлд анхаарлаа хандуулдаг.
- Дэд бүтэц нь код (IaC): Код ашиглан дэд бүтцийг удирдах, тохируулах, дэд бүтцийг автоматжуулсан provisioning болон удирдлагыг хэрэгжүүлэх.
- Хяналт ба санал хүсэлт: Програм болон дэд бүтцийн гүйцэтгэлийг тасралтгүй хянаж, санал хүсэлтийг цуглуулж, сайжруулахад ашиглах.
- Хэмнэлтийн зарчим: Хэмнэлтийн зарчмыг хэрэгжүүлэх, жишээлбэл, хаягдлыг арилгах, тасралтгүй сайжруулах, хурдан санал хүсэлт авах.
2. DevOps-ийн ур чадварын модоо бүтээх
X (Twitter) дээрх хэлэлцүүлэгт үндэслэн DevOps-ийн ур чадварын модыг бүтээх гол чиглэл, хэрэгслүүд энд байна.
2.1 Үйлдлийн систем: Linux-ийн үндэс
Linux бол DevOps-ийн суурь юм. Та дараах зүйлийг эзэмших хэрэгтэй:
- Үндсэн командууд:
cd,ls,mkdir,rm,cp,mv,grep,awk,sedгэх мэт. - Файлын зөвшөөрөл:
chmodболонchownкомандуудыг ойлгож, файлын зөвшөөрлийг зөв удирдах,chmod 777гэх мэт алдаа гаргахаас зайлсхийх. Аюулгүй байдал нэгдүгээрт! - Процессын удирдлага: Процессуудыг хэрхэн эхлүүлэх, зогсоох, хянах,
ps,top,killгэх мэт командуудыг ашиглах талаар мэдэх. - Shell скрипт: Shell скрипт бичих нь сервер тохируулах, нөөцлөх гэх мэт олон үйлдлийн ажлыг автоматжуулж чадна.
- Сүлжээний тохиргоо: Linux-ийн сүлжээний тохиргоог ойлгох, жишээлбэл, IP хаяг, чиглүүлэлт, галт хана гэх мэт.
2.2 Сүлжээний үндэс
Сүлжээг ойлгох нь алдааг олж засварлаж, гүйцэтгэлийг оновчтой болгоход чухал ач холбогдолтой. Та дараах зүйлийг эзэмших хэрэгтэй:
- TCP/IP протокол: TCP/IP протоколын стекний давхаргууд болон тэдгээрийн функцийг ойлгох.
- HTTP протокол: HTTP хүсэлт болон хариултын бүтцийг ойлгож, нийтлэг HTTP аргуудыг эзэмших.
- DNS: Домейн нэрийг шийдвэрлэх зарчмыг ойлгож, DNS серверийг хэрхэн тохируулах талаар мэдэх.
- NAT: NAT-ийн ажлын зарчим болон хэрэглээний хувилбарыг ойлгох.
2.3 Хувилбарын хяналт: Git болон GitHub/GitLab
Git бол хувилбарын хяналтын системийн стандарт бөгөөд GitHub болон GitLab нь Git агуулахын алдартай хостинг платформууд юм. Та дараах зүйлийг эзэмших хэрэгтэй:
- Үндсэн Git командууд:
init,clone,add,commit,push,pull,branch,merge,rebaseгэх мэт. - Салбарын удирдлага: Салбарыг ашиглан хөгжүүлэх, кодыг хэрхэн нэгтгэх талаар суралцах.
- Pull Requests (PRs): PR-ийн процессыг мэддэг байх, код хянах, хамтран ажиллах.
- Git ажлын урсгал: Gitflow гэх мэт нийтлэг Git ажлын урсгалыг ойлгох.
2.4 Үүлэн платформ: AWS, GCP, AzureҮүлэн платформ нь уян хатан, өргөжих боломжтой дэд бүтцийг хангадаг бөгөөд DevOps-ийн чухал хэсэг юм. AWS-д голчлон анхаарлаа хандуулснаар ихэнх мэдлэгийг хамарч болно. Танд дараах зүйлс хэрэгтэй:
- Гол үйлчилгээнүүд: EC2 (виртуал машин), S3 (объектын хадгалах сан), IAM (таних болон хандалтын удирдлага), VPC (виртуал хувийн үүл) зэрэг үүлэн платформын гол үйлчилгээнүүдийг мэддэг байх.
- Аюулгүй байдал: Хяналтын хандалт, шифрлэлт, сүлжээний аюулгүй байдал гэх мэт үүлэн платформын аюулгүй байдлын механизмыг ойлгох.
- Зардлын оновчлол: AWS Cost Explorer зэрэг үүлэн платформын зардлын удирдлагын хэрэгслүүдийг хэрхэн ашиглах, зардлын шинжилгээ хийх, оновчлох (FinOps) талаар суралцах.
2.5 Контейнерчлэл: Docker
Docker нь танд програм болон түүний хамаарлыг нэг контейнерт багцлах, хурдан байршуулах, тогтвортой байдлыг хангах боломжийг олгодог. Танд дараах зүйлс хэрэгтэй:
- Docker image: Docker image-ийг хэрхэн бүтээх, удирдах талаар ойлгох.
- Docker контейнер: Docker контейнерийг хэрхэн ажиллуулах, зогсоох, удирдах талаар суралцах.
- Dockerfile: Image-ийг бүтээх процессыг тодорхойлох Dockerfile бичих.
- Docker Compose: Олон контейнертэй програмыг удирдахын тулд Docker Compose ашиглах.
2.6 Контейнер зохион байгуулалт: Kubernetes
Kubernetes (K8s) нь контейнерийг байршуулах, өргөжүүлэх, удирдах ажлыг автоматжуулахад ашиглагддаг. Танд дараах зүйлс хэрэгтэй:
- Гол ойлголтууд: Pod, Service, Deployment, Namespace зэрэг Kubernetes-ийн гол ойлголтуудыг ойлгох.
- kubectl команд: Kubernetes кластерыг удирдахын тулд
kubectlкомандыг ашиглах. - YAML тохиргоо: Kubernetes нөөцийг тодорхойлох YAML файл бичих.
- Horizontal Pod Autoscaling (HPA): Kubernetes-ийн Scaling стратегийг судалж, нөөцийн ашиглалтын дагуу Pod-ын тоог автоматаар тохируулах.
2.7 Тасралтгүй интеграцчлал/Тасралтгүй хүргэлт (CI/CD): Jenkins, GitHub Actions
CI/CD хэрэгслүүд нь програм хангамжийг бүтээх, турших, байршуулах процессыг автоматжуулахад ашиглагддаг. Танд дараах зүйлс хэрэгтэй:
- CI/CD хоолой: Код оруулах, бүтээх, турших, байршуулах гэх мэт CI/CD хоолойн үе шатуудыг ойлгох.
- Jenkins: Jenkins-ийг бүтээх, байршуулах ажлыг тохируулах.
- GitHub Actions: CI/CD ажлын урсгалыг тодорхойлохын тулд GitHub Actions ашиглах.
- Автомат туршилт: Автомат туршилтыг CI/CD хоолойд нэгтгэх.
2.8 Дэд бүтэц нь код (IaC): Terraform, CloudFormation
IaC хэрэгслүүд нь кодыг ашиглан дэд бүтцийг удирдах, тохируулахад ашиглагддаг. Танд дараах зүйлс хэрэгтэй:
- Terraform: Terraform ашиглан дэд бүтцийн нөөцийг тодорхойлж, удирдах. Terraform төслийн бүтэц болон хэсэг бүрийн үүргийг ойлгох.
- CloudFormation: CloudFormation (AWS) ашиглан дэд бүтцийн нөөцийг тодорхойлж, удирдах.
- Төлөвийн удирдлага: Дэд бүтцийн тогтвортой байдлыг хангахын тулд IaC хэрэгслийн төлөвийн файлыг хэрхэн удирдах талаар ойлгох.
2.9 Хяналт ба бүртгэл: ELK/EFK Stack
Хяналт ба бүртгэлийн хэрэгслүүд нь програм болон дэд бүтцийн гүйцэтгэлийн өгөгдлийг цуглуулах, шинжлэх, дүрслэхэд ашиглагддаг. Танд дараах зүйлс хэрэгтэй:
- ELK Stack: Elasticsearch, Logstash, Kibana-г хэрхэн ашиглах талаар мэдэх.
- EFK Stack: Elasticsearch, Fluentd, Kibana-г хэрхэн ашиглах талаар мэдэх.
- Хяналтын үзүүлэлтүүд: CPU ашиглалт, санах ойн ашиглалт, дискний I/O гэх мэт нийтлэг хяналтын үзүүлэлтүүдийг мэдэх.### 3. Дадлага бол хамгийн сайн багш
Онолын мэдлэг чухал боловч DevOps-ийг сурахад дадлага хамгийн чухал. Дараах зөвлөмжүүдийг анхаарна уу:
- CI/CD хоолойн төсөл байгуулах: Код хадгалах сан, бүтээн байгуулалт, туршилт, байршуулалт гэх мэт бүхэл бүтэн CI/CD хоолойг эхнээс нь байгуул.
- Дэд бүтэц нь код төсөл: Terraform эсвэл CloudFormation ашиглан үүлэн дэд бүтцээ удирдах.
- Kubernetes кластер болон бичил үйлчилгээний хяналтын төсөл: Kubernetes кластер байршуулж, хяналтын хэрэгслээр гүйцэтгэлийг хянах.
- Нээлттэй эхийн төсөлд оролцох: Нээлттэй эхийн төсөлд оролцох нь DevOps-ийн бодит дадлагыг сурахад тусална.
- Бодит асуудлыг шийдвэрлэх: Ажлын байран дээрээ тулгарч буй DevOps-ийн асуудлыг шийдвэрлэхийг хичээ.
4. Тасралтгүй суралцах
DevOps салбар байнга хөгжиж, шинэ хэрэгсэл, технологиуд гарч ирдэг. Тасралтгүй суралцах нь өрсөлдөх чадвартай байхын үндэс юм. Дараах сургалтын эх сурвалжуудыг ашиглана уу:
- Онлайн курс: Coursera, Udemy, A Cloud Guru зэрэг платформууд DevOps-ийн олон тооны курсуудыг санал болгодог.
- Блог болон нийтлэл: DevOps-той холбоотой блог болон нийтлэлүүдийг уншиж, хамгийн сүүлийн үеийн технологи, дадлагыг мэдэж авах.
- Нийгэмлэг: DevOps нийгэмлэгт оролцож, бусад DevOps инженерүүдтэй харилцах.
- Технологийн хурал: DevOps технологийн хуралд оролцож, хамгийн сүүлийн үеийн чиг хандлага, технологийг мэдэж авах.
5. Шилдэг дадлага
- Бүх зүйлийг автоматжуул: Давтагдах бүх ажлыг аль болох автоматжуул.
- Бүх зүйлийг хяна: Програм болон дэд бүтцийн гүйцэтгэлийг байнга хяна.
- Алдааг хүлээн зөвшөөр: Алдаанаас суралцаж, байнга сайжруул.
- Мэдлэгээ хуваалц: Багийн гишүүдтэйгээ мэдлэг, туршлагаа хуваалц.
- Аюулгүй байдал нэгдүгээрт: Аюулгүй байдлыг DevOps үйл явцад шингээ.





