GitOps: дагы бир сөз же автоматташтыруудагы ачылыш?

GitOps: дагы бир сөз же автоматташтыруудагы ачылыш?

Көпчүлүгүбүз IT блогосферасында же конференцияда дагы бир жаңы терминди байкап, эртеби-кечпи ушундай суроону беришет: “Бул эмне? Жөн эле дагы бир сөз, "кызыл сөз" же чындап көңүл бурууга, изилдөөгө жана жаңы горизонтторду убада кылууга татыктуу нерсеби? Термин менен да ушундай болду GitOps бир нече убакыт мурун. Көптөгөн бар макалалар менен куралданган, ошондой эле компаниянын кесиптештеринин билими GitLab, Мен бул кандай жырткыч экенин жана аны колдонуу иш жүзүндө кандай болушу мүмкүн экенин аныктоого аракет кылдым.

Айтмакчы, терминдин жаңылыгы тууралуу GitOps Биздин акыркы сурамжылоо дагы мындай дейт: сурамжылоого катышкандардын жарымынан көбү анын принциптери менен иштей элек.

Демек, инфраструктураны башкаруу маселеси жаңы эмес. Көптөгөн булут провайдерлери жалпы коомчулукка ондогон жылдар бою жеткиликтүү жана инфраструктура үчүн жооптуу командалардын ишин жөнөкөй жана жөнөкөй кылышы керек окшойт. Бирок, тиркемени иштеп чыгуу процессине салыштырганда (автоматташтыруу улам жаңы деңгээлге чыгып баратат), инфраструктуралык долбоорлор дагы эле көп кол тапшырмаларды камтыйт жана өзгөчө билимди жана тажрыйбаны талап кылат, айрыкча каталарга чыдамдуулук, ийкемдүүлүк, масштабдуулук жана ийкемдүүлүк боюнча бүгүнкү талаптарды эске алуу менен.

Булут кызматтары бул талаптарды абдан ийгиликтүү аткарды жана алар мамиленин өнүгүшүнө олуттуу түрткү болгон IaC. Бул түшүнүктүү. Анткени, алар толугу менен виртуалдык маалымат борборун конфигурациялоого мүмкүндүк берди: физикалык серверлер, стеллаждар же тармактык компоненттер жок; бүт инфраструктураны скрипттердин жана конфигурация файлдарынын жардамы менен сүрөттөсө болот.

Ошентип, так айырмасы эмнеде? GitOps от IaC? Мына ушул суроо менен иликтөөмдү баштадым. Кесиптештерим менен сүйлөшкөндөн кийин, мен төмөнкүдөй салыштырууга жетиштим:

GitOps

IaC

Бардык код git репозиторийинде сакталат

Коддун версиясы милдеттүү эмес

Декларативдик код Description/Idempotency

Декларативдик жана императивдик мүнөздөмөлөр кабыл алынат

Өзгөртүүлөр Бириктирүү Сурамынын / Тартуу Сурамынын механизмдерин колдонуу менен күчүнө кирет

Макулдашуу, бекитүү жана кызматташуу милдеттүү эмес

Жаңыртуу процесси автоматташтырылган

Жаңыртуу процесси стандартташтырылган эмес (автоматтык, кол менен, файлдарды көчүрүү, буйрук сабын колдонуу ж.б.)

Башкача айтканда GitOps принциптерди колдонуу аркылуу так жаралган IaC. Биринчиден, инфраструктура жана конфигурациялар эми тиркемелер сыяктуу эле сакталышы мүмкүн. Кодду сактоо оңой, бөлүшүү, салыштыруу жана версияларды түзүү мүмкүнчүлүктөрүн колдонуу оңой. Версиялар, бутактар, тарых. Мунун баары жалпы команда үчүн ачык жерде. Ошондуктан, версия башкаруу системаларын пайдалануу толугу менен табигый өнүгүү болуп калды. Атап айтканда, git, эң популярдуу.

Экинчи жагынан, инфраструктураны башкаруу процесстерин автоматташтыруу мүмкүн болду. Эми муну тезирээк, ишенимдүү жана арзаныраак жасоого болот. Мындан тышкары, CI / CD принциптери программалык камсыздоону иштеп чыгуучулардын арасында белгилүү жана популярдуу болгон. Болгону белгилүү болгон билимди жана көндүмдөрдү жаңы аймакка өткөрүп берүү жана колдонуу керек болчу. Бирок бул практикалар Инфраструктуранын код катары стандарттык аныктамасынан, демек концепциянын чегинен чыгып кеткен GitOps.

GitOps: дагы бир сөз же автоматташтыруудагы ачылыш?

Кызыгуу GitOps, албетте, бул кандайдыр бир сатуучу менен байланышкан продукт, плагин же платформа эмес экендигинде. Бул бизге тааныш болгон башка терминге окшош парадигма жана принциптердин жыйындысы: DevOps.

Компанияда GitLab биз бул жаңы терминдин эки аныктамасын иштеп чыктык: теориялык жана практикалык. Теориялык жактан баштайлы:

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

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

практикалык көз караштан алганда, биз сүрөттөйт GitOps төмөнкүдөй:

GitOps: дагы бир сөз же автоматташтыруудагы ачылыш?

Биз инфраструктураны код катары бул формуланын негизги компоненттеринин бири катары талкууладык. Калган катышуучулар менен тааныштыралы.

Бириктирүү өтүнүчү (альтернативдик аталышы Pull Request). Процесстин шартында, MR - бул кодду өзгөртүүнү колдонуу жана андан кийин бутактарды бириктирүү. Бирок биз колдонгон инструменттер боюнча, бул жасалып жаткан өзгөрүүлөрдүн толук сүрөтүн алуу үчүн көбүрөөк мүмкүнчүлүк болуп саналат: белгилүү бир сандагы милдеттенмелерден чогултулган код гана эмес, ошондой эле контекст, тесттин натыйжалары жана акыркы күтүлгөн натыйжа. Эгерде биз инфраструктуралык код жөнүндө сөз кыла турган болсок, анда инфраструктура кандайча өзгөрөт, канча жаңы ресурстар кошулат же жок кылынат, өзгөрөт деген суроолорго кызыкдарбыз. Ыңгайлуураак жана окууга оңой форматта. Булут провайдерлери үчүн бул өзгөртүүнүн финансылык таасири кандай болорун билүү жакшы идея.

Бирок MR дагы кызматташуунун, өз ара аракеттенүүнүн жана баарлашуунун каражаты болуп саналат. Текшерүү жана тең салмактуулук системасы ишке кирген жер. Жөнөкөй комментарийлерден формалдуу жактырууларга жана бекитүүгө чейин.

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

Ооба, термин GitOps бизди таптакыр жаңы эч нерсе менен тааныштырбайт, дөңгөлөктү кайра ойлоп таппайт, бирок жөн гана жаңы чөйрөдө топтолгон тажрыйбаны колдонот. Бирок анын күчү мына ушунда.

Жана эгер сиз күтүлбөгөн жерден мунун баары иш жүзүндө кандай болоруна кызыгып калсаңыз, анда мен сизди биздин макалабызды карап көрүүгө чакырам устакана, анда мен сизге GitLab кантип колдонууну этап-этабы менен айтып берем:

  • GitOps негизги принциптерин ишке ашыруу

  • Булут инфраструктурасын түзүңүз жана ага өзгөртүүлөрдү киргизиңиз (Яндекс Булуттун мисалын колдонуу менен)

  • Активдүү мониторингди колдонуу менен системанын каалаган абалдан кетишин автоматташтырыңыз

GitOps: дагы бир сөз же автоматташтыруудагы ачылыш?https://bit.ly/34tRpwZ

Source: www.habr.com

Комментарий кошуу