GitOps: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?

GitOps: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· нас, подмСчая ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π² IT блогосфСрС ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ задаСтся ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ вопросом: β€œΠ§Ρ‚ΠΎ это? ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ ΠΌΠΎΠ΄Π½ΠΎΠ΅ слово, β€œbuzzword” ΠΈΠ»ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ стоящСС ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания, изучСния ΠΈ ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹?” Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΡˆΠ»ΠΎ Ρƒ мСня ΠΈ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ GitOps Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π°Π·Π°Π΄. Π’ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡΡŒ мноТСством ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… статСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»Π»Π΅Π³ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ GitLab, я попытался Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Π·Π° Π·Π²Π΅Ρ€ΡŒ, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎ Π½ΠΎΠ²ΠΈΠ·Π½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° GitOps Ρ‚Π°ΠΊΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ опрос: Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ ΠΎΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° управлСния инфраструктурой Π½Π΅ Π½ΠΎΠ²Π°. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΡƒΠΆΠ΅ Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ дСсяток Π»Π΅Ρ‚ доступны ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ΅ ΠΈ, казалось Π±Ρ‹, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° инфраструктуру ΠΊΠΎΠΌΠ°Π½Π΄ простой ΠΈ Π½Π΅Π·Π°Ρ‚Π΅ΠΉΠ»ΠΈΠ²ΠΎΠΉ. Однако ΠΏΡ€ΠΈ сравнСнии с процСссом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π³Π΄Π΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ достигаСт всС Π½ΠΎΠ²Ρ‹Ρ… ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚ΠΎΠ²), инфраструктурныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ всС Π΅Ρ‰Π΅ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ мноТСство выполняСмых Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ особых Π·Π½Π°Π½ΠΈΠΉ ΠΈ спСциалистов, особСнно с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ соврСмСнных Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ отказоустойчивости, гибкости, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ эластичности.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвисы ΠΎΡ‡Π΅Π½ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ выполняли эти трСбования ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π°Π»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° IaC. Оно ΠΈ понятно. Π’Π΅Π΄ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: Π½Π΅Ρ‚ физичСских сСрвСров, стоСк, сСтСвых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, всю инфраструктуру ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ скриптов ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ собствСнно ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ GitOps ΠΎΡ‚ IaC? ИмСнно с этого вопроса я ΠΈ Π½Π°Ρ‡Π°Π» своС расслСдованиС. ΠŸΠΎΠΎΠ±Ρ‰Π°Π²ΡˆΠΈΡΡŒ с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сравнСниС:

GitOps

IaC

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ хранится Π² git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Π’Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°

Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ описаниС ΠΊΠΎΠ΄Π° / Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ

Допустимо ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ описаниС

ИзмСнСния Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² силу с использованиСм ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Merge Request / Pull Request

БогласованиС, ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ коллаборация Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ‹ΠΊΠ°Ρ‚Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ‹ΠΊΠ°Ρ‚Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π΅ Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ (автоматичСский, Ρ€ΡƒΡ‡Π½ΠΎΠΉ, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ Ρ‚.Π΄.)

Π˜Π½Ρ‹ΠΌΠΈ словами GitOps появился Π½Π° свСт ΠΈΠΌΠ΅Π½Π½ΠΎ благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² IaC. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, инфраструктуру ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ прилоТСния. Код Π»Π΅Π³ΠΊΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ возмоТностями вСрсионности. ВСрсии, Π²Π΅Ρ‚ΠΊΠΈ, история. И всС это Π² общСдоступном для всСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСстС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΏΠΎΠ»Π½Π΅ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ стало использования систСм контроля вСрсий. Π’ частности, git, ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярного.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы управлСния инфраструктурой. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ быстрСС, Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ ΠΈ дСшСвлС. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ CI / CD ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ извСстны ΠΈ популярны срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. НСобходимо Π±Ρ‹Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСнСсти ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ извСстныС знания ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π­Ρ‚ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° Ρ€Π°ΠΌΠΊΠΈ стандартного опрСдСлСния Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Π°, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Ρ€ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ понятиС GitOps.

GitOps: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?

Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎΡΡ‚ΡŒ GitOps, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅Ρ‰Π΅ ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, связанная с ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠΌ. Π­Ρ‚ΠΎ скорСС ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ Π½Π°ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ: DevOps.

Π’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ GitLab ΠΌΡ‹ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π΄Π²Π° опрСдСлСния этого Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°: тСорСтичСский ΠΈ практичСски. НачнСм с тСорСтичСского:

GitOps — это мСтодология, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ DevOps, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий, взаимодСйствиС, согласованиС, CI/CD, ΠΈ примСняСт ΠΈΡ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния инфраструктурой.

ВсС процСссы GitOps Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с использованиСм ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ инструмСнтов. Π’Π΅ΡΡŒ инфраструктурный ΠΊΠΎΠ΄ хранятся Π² ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, измСнСния проходят Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс согласования, Ρ‡Ρ‚ΠΎ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° процСсс Π²Ρ‹ΠΊΠ°Ρ‚Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‡Ρ‚ΠΎ позволяСт свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ошибки чСловСчСского Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

Π‘ практичСской ΠΆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΡ‹ описываСм GitOps ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

GitOps: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΌΡ‹ ΡƒΠΆΠ΅ обсудили, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… этой Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… участников.

Merge Request (Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Pull Request). Π’ ΠΏΠ»Π°Π½Π΅ процСсса MR — это запрос Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ слияниС Π²Π΅Ρ‚ΠΎΠΊ. Но Π² ΠΏΠ»Π°Π½Π΅ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ — это скорСС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для получСния ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ всСх вносимых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ code diff, собранный ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ количСства ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½ΠΎ ΠΈ контСкст, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Если ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ инфраструктурный ΠΊΠΎΠ΄, Ρ‚ΠΎ Π½Π°ΠΌ интСрСсно, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнится инфраструктура, сколько Π½ΠΎΠ²Ρ‹Ρ… рСсурсов Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ случаС с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ финансовыС послСдствия понСсСт это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

Но MR — это Π΅Ρ‰Π΅ ΠΈ срСдство совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, взаимодСйствия, общСния. Π’ΠΎ мСсто, Π³Π΄Π΅ вступаСт Π² дСйствиС систСма сдСрТСк ΠΈ противовСсов. ΠžΡ‚ простых ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠΉ ΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ.

Ну ΠΈ послСдняя ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ: CI/CD, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс внСсСния инфраструктурных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, тСстирования (ΠΎΡ‚ простой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТного статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°). А Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ обнаруТСния Π΄Ρ€Π΅ΠΉΡ„Π°: ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ состояния систСмы. НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ нСсанкционированных Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Π° систСм.

Π”Π°, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ GitOps Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ нас Π½ΠΈ с Ρ‡Π΅ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ, Π½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ вСлосипСд, Π° всСго лишь примСняСт ΡƒΠΆΠ΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Π² Π½ΠΎΠ²ΠΎΠΉ области. Но Π² этом ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π΅Π³ΠΎ сила.

А Ссли Π²Π°ΠΌ Π²Π΄Ρ€ΡƒΠ³ станСт интСрСсно, ΠΊΠ°ΠΊ это всС выглядит Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°ΡŽ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ наш мастСр-класс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я пошагово Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ GitLab:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ GitOps

  • Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ инфраструктуру (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Yandex Cloud)

  • ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄Ρ€Π΅ΠΉΡ„Π° систСмы ΠΎΡ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ состояния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

GitOps: ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ?https://bit.ly/34tRpwZ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com