GitOps: өөр нэг алдартай үг эсвэл автоматжуулалтын нээлт үү?

GitOps: өөр нэг алдартай үг эсвэл автоматжуулалтын нээлт үү?

Бидний ихэнх нь мэдээллийн технологийн блог эсвэл бага хурал дахь өөр нэг шинэ нэр томъёог анзаарч, эрт орой хэзээ нэгэн цагт үүнтэй төстэй асуулт асуудаг: "Энэ юу вэ? Зүгээр л өөр нэг шуугиан дэгдээсэн үг, "цогц үг" эсвэл үнэхээр анхааралтай ажиглаж, судалж, шинэ ирээдүйг амлаж байх ёстой зүйл үү? Нэр томьёотой ижил зүйл надад тохиолдсон GitOps хэсэг хугацааны өмнө. Одоо байгаа олон нийтлэл, мөн компанийн хамт ажиллагсдын мэдлэгээр зэвсэглэсэн GitLab, Би энэ ямар араатан бэ, түүний хэрэглээ практикт ямар харагдаж болохыг олж мэдэхийг хичээсэн.

Дашрамд хэлэхэд, нэр томъёоны шинэлэг байдлын талаар GitOps Бидний саяхан хийсэн судалгаагаар судалгаанд хамрагдагсдын талаас илүү хувь нь түүний зарчмуудыг хэрэгжүүлж эхлээгүй байна.

Тэгэхээр дэд бүтцийн менежментийн асуудал шинэ зүйл биш. Олон үүлэн үйлчилгээ үзүүлэгч олон арван жилийн турш олон нийтэд нээлттэй байсан бөгөөд дэд бүтцийг хариуцах багуудын ажлыг энгийн бөгөөд ойлгомжтой болгох ёстой юм шиг санагдаж байна. Гэсэн хэдий ч програм боловсруулах үйл явцтай харьцуулахад (автоматжуулалт нь шинэ түвшинд хүрч байна) дэд бүтцийн төслүүд нь ихэвчлэн олон гарын авлагын ажлуудыг багтаасан хэвээр байгаа бөгөөд тусгай мэдлэг, туршлага шаарддаг, ялангуяа алдааг тэсвэрлэх чадвар, уян хатан байдал, өргөтгөх чадвар, уян хатан байдлын өнөөгийн шаардлагыг харгалзан үздэг.

Үүлэн үйлчилгээ нь эдгээр шаардлагыг маш амжилттай биелүүлсэн бөгөөд энэ арга барилыг хөгжүүлэхэд ихээхэн түлхэц өгсөн хүмүүс юм IaC. Энэ нь ойлгомжтой. Эцсийн эцэст тэд бүрэн виртуал өгөгдлийн төвийг тохируулах боломжтой болгосон: физик сервер, тавиур, сүлжээний бүрэлдэхүүн хэсэг байхгүй; бүхэл бүтэн дэд бүтцийг скрипт болон тохиргооны файлуудыг ашиглан дүрсэлж болно.

Тэгэхээр яг юугаараа ялгаатай вэ? GitOps нь IaC? Энэ асуултаар би мөрдөн байцаалтаа эхлүүлсэн. Хамтран ажиллагсадтайгаа ярилцсаны дараа би дараах харьцуулалтыг гаргаж чадсан.

GitOps

IaC

Бүх код нь git репозиторт хадгалагддаг

Кодын хувилбар нь сонголттой

Тунхаглалын кодын тайлбар / Idempotency

Тунхаглалын болон захиалгын тодорхойлолтыг хоёуланг нь хүлээн зөвшөөрөх боломжтой

Өөрчлөлтүүд нь нэгтгэх хүсэлт / татах хүсэлтийн механизмуудыг ашиглан хүчин төгөлдөр болно

Гэрээ, зөвшөөрөл, хамтран ажиллах нь сонголттой

Шинэчлэлтийг нэвтрүүлэх үйл явц автоматжуулсан

Шинэчлэлтийг нэвтрүүлэх үйл явц нь стандартчилагдаагүй (автомат, гарын авлага, файл хуулах, тушаалын мөрийг ашиглах гэх мэт).

Өөрөөр хэлбэл GitOps зарчмуудыг хэрэгжүүлэх замаар яг төрсөн IaC. Нэгдүгээрт, дэд бүтэц, тохиргоог одоо аппликешнүүдийн нэгэн адил хадгалах боломжтой болсон. Код нь хадгалахад хялбар, хуваалцах, харьцуулах, хувилбар гаргахад хялбар байдаг. Хувилбарууд, салбарууд, түүхүүд. Мөн энэ бүгдийг бүхэл бүтэн багт олон нийтэд нээлттэй газар. Тиймээс хувилбарын хяналтын системийг ашиглах нь бүрэн байгалийн хөгжил болжээ. Ялангуяа git нь хамгийн алдартай.

Нөгөөтэйгүүр, дэд бүтцийн менежментийн үйл явцыг автоматжуулах боломжтой болсон. Одоо үүнийг илүү хурдан, илүү найдвартай, хямдхан хийх боломжтой. Түүнээс гадна CI / CD-ийн зарчмууд нь програм хангамж хөгжүүлэгчдийн дунд аль хэдийн мэдэгдэж байсан бөгөөд алдартай байсан. Зөвхөн өмнө нь мэдэгдэж байсан мэдлэг, ур чадварыг шинэ газар руу шилжүүлэх, хэрэгжүүлэх шаардлагатай байв. Гэсэн хэдий ч эдгээр практик нь Дэд бүтцийн стандартыг код гэж тодорхойлсон стандарт тодорхойлолтоос давж гарсан бөгөөд энэ нь үзэл баримтлал юм GitOps.

GitOps: өөр нэг алдартай үг эсвэл автоматжуулалтын нээлт үү?

Сониуч зан GitOpsМэдээжийн хэрэг, энэ нь ямар нэгэн борлуулагчтай холбоотой бүтээгдэхүүн, залгаас эсвэл платформ биш юм. Энэ нь бидний мэддэг өөр нэг нэр томъёотой төстэй парадигм ба зарчмуудын багц юм: DevOps.

Компани дээр GitLab Бид энэ шинэ нэр томъёоны онолын болон практик гэсэн хоёр тодорхойлолтыг боловсруулсан. Онолын талаас эхэлье:

GitOps нь хувилбарын удирдлага, хамтын ажиллагаа, зохион байгуулалт, CI/CD гэх мэт програм хөгжүүлэхэд ашигладаг шилдэг DevOps зарчмуудыг авч, дэд бүтцийн менежментийг автоматжуулах сорилтод ашигладаг аргачлал юм.

Бүх процессууд GitOps Би одоо байгаа хэрэгслийг ашиглан ажилладаг. Бүх дэд бүтцийн кодууд аль хэдийн танил болсон git репозиторид хадгалагдаж, өөрчлөлтүүд нь бусад програмын кодтой адил батлах процессоор дамждаг бөгөөд нэвтрүүлэх үйл явц нь автоматжсан бөгөөд энэ нь хүний ​​алдааг багасгах, найдвартай байдал, давтагдах чадварыг нэмэгдүүлэх боломжийг олгодог.

Практик талаас нь бид тайлбарлаж байна GitOps дараах байдлаар:

GitOps: өөр нэг алдартай үг эсвэл автоматжуулалтын нээлт үү?

Энэ томьёоны гол бүрэлдэхүүн хэсгүүдийн нэг болох кодын хувьд бид дэд бүтцийг аль хэдийн хэлэлцсэн. Үлдсэн оролцогчдыг танилцуулъя.

Нэгтгэх хүсэлт (өөр нэр татах хүсэлт). Процессын хувьд MR нь кодын өөрчлөлтийг хэрэглэх, дараа нь салбаруудыг нэгтгэх хүсэлт юм. Гэхдээ бидний ашигладаг хэрэгслүүдийн хувьд энэ нь хийгдэж буй бүх өөрчлөлтийн бүрэн дүр зургийг авах боломж юм: зөвхөн тодорхой тооны үйлдлээс цуглуулсан код ялгаатай төдийгүй контекст, туршилтын үр дүн, эцсийн хүлээгдэж буй үр дүн. Хэрэв бид дэд бүтцийн кодын тухай ярьж байгаа бол дэд бүтэц яг яаж өөрчлөгдөх, хэчнээн шинэ нөөц нэмэгдэх, хасах, өөрчлөгдөхийг сонирхож байна. Илүү тохиромжтой, уншихад хялбар форматтай байх нь дээр. Үүлэн үйлчилгээ үзүүлэгчдийн хувьд энэхүү өөрчлөлтийн санхүүгийн нөлөөлөл ямар байхыг мэдэх нь зүйтэй.

Гэхдээ MR бол хамтын ажиллагаа, харилцан үйлчлэл, харилцааны хэрэгсэл юм. Хяналт, тэнцвэрийн тогтолцоо хэрэгжиж эхэлдэг газар. Энгийн тайлбараас эхлээд албан ёсны зөвшөөрөл, зөвшөөрөл хүртэл.

За, сүүлийн бүрэлдэхүүн хэсэг: CI/CD нь бидний аль хэдийн мэдэж байгаагаар дэд бүтцийн өөрчлөлт, туршилт хийх үйл явцыг автоматжуулах боломжийг олгодог (энгийн синтакс шалгахаас эхлээд илүү төвөгтэй статик кодын шинжилгээ хүртэл). Мөн цаашдын шилжилтийг илрүүлэхэд: системийн бодит болон хүссэн төлөв хоорондын ялгаа. Жишээлбэл, зөвшөөрөлгүй гараар хийсэн өөрчлөлт эсвэл системийн эвдрэлийн үр дүнд.

Тийм ээ, нэр томъёо GitOps Энэ нь бидэнд цоо шинэ зүйлийг танилцуулдаггүй, дугуйг дахин зохион бүтээдэггүй, харин аль хэдийн хуримтлуулсан туршлагаа шинэ газар нутагт ашигладаг. Гэхдээ энэ бол түүний хүч чадал юм.

Хэрэв та гэнэт энэ бүхэн бодит байдал дээр хэрхэн харагдахыг сонирхож эхэлвэл би таныг манайхыг үзэхийг урьж байна мастер анги, үүнд би GitLab-ийг хэрхэн ашиглах талаар алхам алхмаар хэлж өгнө:

  • GitOps-ийн үндсэн зарчмуудыг хэрэгжүүлэх

  • Үүлний дэд бүтцийг үүсгэж, өөрчлөлт оруулах (Yandex Cloud-ийн жишээг ашиглан)

  • Идэвхтэй хяналтыг ашиглан хүссэн төлөвөөс системийн шилжилтийг автоматаар илрүүлэх

GitOps: өөр нэг алдартай үг эсвэл автоматжуулалтын нээлт үү?https://bit.ly/34tRpwZ

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх