Какво С GitOps?

ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Π‘Π»Π΅Π΄ послСдната публикация Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ pull ΠΈ push Π² GitOps, Π½ΠΈΠ΅ видяхмС интСрСс към Ρ‚Π°Π·ΠΈ ΠΌΠΎΠ΄Π΅Π», Π½ΠΎ рускоязычнитС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚Π° са ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ (Π² Π₯Π°Π±Ρ€ просто Π³ΠΈ няма). Π—Π°Ρ‚ΠΎΠ²Π° с радост ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³Π° статия β€” ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° стара! β€” ΠΎΡ‚ компанията Weaveworks, Ρ‡ΠΈΠΉΡ‚ΠΎ основатСл измисли Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° β€žGitOpsβ€œ. Π’ тСкста сС обяснява ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΡƒ различия ΠΎΡ‚ Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅.

ΠŸΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…ΠΌΠ΅ въвСдСниС Π² GitOps. Π’ΠΎΠ³Π°Π²Π° Ρ€Π°Π·ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ ΠΊΠ°ΠΊ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Weaveworks стартира SaaS услуга, напълно Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Kubernetes, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ прСдписващи Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° внСдряванС, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² срСда cloud native.

Бтатията сС ΠΎΠΊΠ°Π·Π° популярна. Π”Ρ€ΡƒΠ³ΠΈ Ρ…ΠΎΡ€Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° говорят Π·Π° GitOps, станаха популярни Π½ΠΎΠ²ΠΈ инструмСнти Π·Π° git push, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π½Π° Ρ‚Π°ΠΉΠ½ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΈ Π΄Ρ€. На нашия сайт сС появи голямо количСство ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GitOps. Но ΠΏΡ€ΠΈ някои Ρ…ΠΎΡ€Π° всС ΠΏΠ°ΠΊ останаха Π²ΡŠΠΏΡ€ΠΎΡΠΈ. Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° инфраструктура ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка (Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка)? Π—Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π»ΠΈ Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Kubernetes?

Π‘ΠΊΠΎΡ€ΠΎ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½ΠΎΠ²ΠΎ описаниС, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‰ΠΎ:

  1. Много ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΈ истории;
  2. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° GitOps;
  3. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка.

Π’ Ρ‚Π°Π·ΠΈ статия сС ΠΎΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΎΠ±Ρ…Π²Π°Π½Π΅ΠΌ всички Ρ‚Π΅Π·ΠΈ Ρ‚Π΅ΠΌΠΈ. Π’ нСя Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΎ въвСдСниС Π² GitOps ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ към Π½Π΅Π³ΠΎ ΠΎΡ‚ страна Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ CI/CD. Основно сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Kubernetes, ΠΌΠ°ΠΊΠ°Ρ€ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС: GitOps

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Ρ‚Π΅ си Алиса. Вя управлява компанията Family Insurance, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‰Π° застраховатСлни ΠΏΠΎΠ»ΠΈΡ†ΠΈ Π·Π° Π·Π΄Ρ€Π°Π²Π΅, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎ имущСство ΠΈ ΠΏΡŠΡ‚ΡƒΠ²Π°Π½ΠΈΡ Π½Π° Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚Π²ΡŠΡ€Π΄Π΅ Π·Π°Π΅Ρ‚ΠΈ, Π·Π° Π΄Π° сС справят с Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ самостоятСлно. НСйният бизнСс Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Π» ΠΊΠ°Ρ‚ΠΎ страничСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Алиса Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»Π° Π² Π±Π°Π½ΠΊΠ° ΠΊΠ°Ρ‚ΠΎ data scientist. Π•Π΄ΠΈΠ½ Π΄Π΅Π½ тя осъзнала, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ създаванС Π½Π° застраховатСлни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π˜Π½Π²Π΅ΡΡ‚ΠΈΡ‚ΠΎΡ€ΠΈΡ‚Π΅ финансирали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ сСга компанията ѝ носи Π½Π°Π΄ 20 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π΄ΠΎΠ»Π°Ρ€Π° годишно ΠΈ Π±ΡŠΡ€Π·ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π°. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² нСя работят 180 Π΄ΡƒΡˆΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π‘Ρ€Π΅Π΄ тях Π΅ ΠΈ тСхнологичният Π΅ΠΊΠΈΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° сайта, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° клиСнтската Π±Π°Π·Π°. Π•ΠΊΠΈΠΏΡŠΡ‚ ΠΎΡ‚ 60 Π΄ΡƒΡˆΠΈ сС Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π‘ΠΎΠ± β€” тСхничСския Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° компанията.

Π•ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Π‘ΠΎΠ± Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° production-систСми Π² ΠΎΠ±Π»Π°ΠΊΠ°. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΈΠΌ прилоТСния работят Π½Π° GKE, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ прСдимствата Π½Π° Kubernetes Π² Google Cloud. ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.

Family Insurance Π½Π΅ бСшС ΠΏΠ»Π°Π½ΠΈΡ€Π°Π»Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π½ΠΎ сС Π·Π°Ρ€Π°Π·ΠΈ с Π΅Π½Ρ‚ΡƒΡΠΈΠ°Π·ΡŠΠΌ ΠΎΠΊΠΎΠ»ΠΎ Docker. Π‘ΠΊΠΎΡ€ΠΎ спСциалиститС Π² компанията ΠΎΡ‚ΠΊΡ€ΠΈΡ…Π°, Ρ‡Π΅ GKE позволява лСсно ΠΈ Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ Π·Π° тСстванС Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Jenkins Π·Π° CI ΠΈ Quay Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, написани бяха скриптовС Π·Π° Jenkins, ΠΊΠΎΠΈΡ‚ΠΎ push-Π²ΠΈΡ…Π° Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² GKE.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π° извСстно Π²Ρ€Π΅ΠΌΠ΅. Алиса ΠΈ Π‘ΠΎΠ± сС Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Ρ…Π° ΠΎΡ‚ производитСлността Π½Π° избрания ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ влияниСто ΠΌΡƒ Π²ΡŠΡ€Ρ…Ρƒ бизнСса. ВнСдряванСто Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ производитСлността Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΅ΠΊΠΈΠΏΡŠΡ‚ сС надявашС. Понякога внСдряванията сС проваляха, ΠΈ Π½Π΅ бСшС ясно Π΄Π°Π»ΠΈ Π²ΠΈΠ½Π°Ρ‚Π° Π΅ Π² ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π°. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΎΠΊΠ°Π·Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС прослСдят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² конфигурацията. ЧСсто сС налагашС Π΄Π° сС създадС Π½ΠΎΠ² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΈ Π΄Π° сС прСмСстят прилоТСнията Π² Π½Π΅Π³ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°ΠΊΠ° бСшС Π½Π°ΠΉ-лСсно Π΄Π° сС ΠΎΠΏΡ€Π°Π²ΠΈ Ρ…Π°ΠΎΡΡŠΡ‚, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС бСшС трансформирала систСмата. Алиса сС ΡΡ‚Ρ€Π°Ρ…ΡƒΠ²Π°ΡˆΠ΅, Ρ‡Π΅ ситуацията Ρ‰Π΅ сС влоши с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (Π² допълнСниС, сС появявашС Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° основата Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅). Π‘ΠΎΠ± Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° голяма част ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡˆΠ΅ Π·Π°Ρ‰ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π΅ нСстабилСн, слабо ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ изисква Ρ€ΡŠΡ‡Π½ΠΎ намСса?

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ…Π° Π·Π° GitOps. Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сС ΠΎΠΊΠ°Π·Π° Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ…Π°, Π·Π° Π΄Π° Ρ‚Ρ€ΡŠΠ³Π½Π°Ρ‚ ΡƒΠ²Π΅Ρ€Π΅Π½ΠΎ Π½Π°ΠΏΡ€Π΅Π΄.

Алиса ΠΈ Π‘ΠΎΠ± Π²Π΅Ρ‡Π΅ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ‡ΡƒΡ…Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Git, DevOps ΠΈ инфраструктура ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ΄. Уникалността Π½Π° GitOps Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ въвСТда Ρ€Π΅Π΄ΠΈΡ†Π° Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ - ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π½ΠΈ ΠΈ Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΈ - Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΈΠ΄Π΅ΠΈ Π² контСкста Π½Π° Kubernetes. Π’Π΅ΠΌΠ°, която чСсто бСшС ΠΏΠΎΠ²Π΄ΠΈΠ³Π°Π½Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ Π² Π±Π»ΠΎΠ³Π° Π½Π° Weaveworks.

Family Insurance Ρ€Π΅ΡˆΠ°Π²Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈ GitOps. Π‘Π΅Π³Π° компанията Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π° Сксплоатационна ΠΌΠΎΠ΄Π΅Π», ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с Kubernetes ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‰Π° скорост с със стабилност, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅:

  • ΠΎΡ‚ΠΊΡ€ΠΈΡ…Π°, Ρ‡Π΅ производитСлността Π½Π° Π΅ΠΊΠΈΠΏΠ° Π΅ нараснала Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΈ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ полудява;
  • спряха Π΄Π° обслуТват скриптовСтС. ВмСсто Ρ‚ΠΎΠ²Π° сСга ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС фокусират Π²ΡŠΡ€Ρ…Ρƒ Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π° ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Ρ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° внСдрят ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΎΠ²ΠΈ вСрсии ΠΈ Π΄Π° подобрят тСстванСто;
  • ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Ρ…Π° процСса Π½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ° - сСга Ρ‚ΠΎΠΉ рядко сС проваля;
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Ρ‚ внСдрявания слСд частични нСизправности Π±Π΅Π· Ρ€ΡŠΡ‡Π½ΠΎ намСса;
  • ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΡ…Π° боолша увСрСност Π² систСмитС Π·Π° доставка. Алиса ΠΈ Π‘ΠΎΠ± ΠΎΡ‚ΠΊΡ€ΠΈΡ…Π°, Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° раздСлят Π΅ΠΊΠΈΠΏΠ° Π½Π° Π³Ρ€ΡƒΠΏΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‰ΠΈ сС с микроуслуги ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ;
  • ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΏΠΎ 30-50 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° всСки Π΄Π΅Π½, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° усилията Π½Π° всяка Π³Ρ€ΡƒΠΏΠ° ΠΈ Π΄Π° ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ;
  • лСсно ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ Π½ΠΎΠ²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° внСдряват обновлСния Π½Π° production с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° pull request-ΠΎΠ²Π΅ само слСд няколко часа;
  • Π»Π΅ΠΊΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ ΠΎΠ΄ΠΈΡ‚Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° SOC2 (съгласно изискванията Π½Π° доставчицитС Π½Π° услуги Π·Π° бСзопасно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ; ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΠΊ β€” Π±Π΅Π». Ρ€Π΅Π΄.).

Какво сС случи?

GitOps β€” Ρ‚ΠΎΠ²Π° Π΅ Π΄Π²Π΅ Π½Π΅Ρ‰Π°:

  1. МодСл Π½Π° Сксплоатация Π·Π° Kubernetes ΠΈ cloud native. Π’ΠΎΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° кластСри ΠΈ прилоТСния, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π•Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π΅Π΄ΠΈΠ½ слайд ΠΎΡ‚ Luis Faceira:
  2. ΠŸΡŠΡ‚ΡΡ‚ към ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰Π° сС срСда Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° прилоТСния. НиС ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс Git ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° Сксплоатация, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ става Π²ΡŠΠΏΡ€ΠΎΡ Π½Π΅ просто Π·Π° Git push, Π° Π·Π° организация Π½Π° цСлия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти CI/CD ΠΈ UI/UX.

Няколко Π΄ΡƒΠΌΠΈ Π·Π° Git

Ако Π½Π΅ стС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ със систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС ΠΈ работния процСс, основан Π½Π° Git, настоятСлно Π²ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ‚Π΅. Π’ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ pull request-ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ Ρ‡Π΅Ρ€Π½Π° магия, Π½ΠΎ ΠΏΠΎΠ»Π·ΠΈΡ‚Π΅ си заслуТават усилията. Π•Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€Π° статия Π·Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Π½Π΅.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ Kubernetes

Π’ Π½Π°ΡˆΠ°Ρ‚Π° история Алиса ΠΈ Π‘ΠΎΠ± сС ΠΎΠ±ΡŠΡ€Π½Π°Ρ…Π° към GitOps, слСд ΠΊΠ°Ρ‚ΠΎ няколко мСсСца Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…Π° с Kubernetes. Π’ дСйствитСлност GitOps Π΅ тясно ΡΠ²ΡŠΡ€Π·Π°Π½ с Kubernetes β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠΎΠ΄Π΅Π» Π½Π° Сксплоатация Π·Π° инфраструктура ΠΈ прилоТСния, основани Π½Π° Kubernetes.

Какво прСдоставя Kubernetes Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅?

Π•Ρ‚ΠΎ някои основни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ:

  1. Π’ ΠΌΠΎΠ΄Π΅Π»Π° Kubernetes всичко ΠΌΠΎΠΆΠ΅ Π΄Π° сС описва Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Π° Ρ„ΠΎΡ€ΠΌΠ°.
  2. API-ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° Kubernetes ΠΏΡ€ΠΈΠ΅ΠΌΠ° Ρ‚Π°ΠΊΠ°Π²Π° дСкларация ΠΊΠ°Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° постоянно сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ кластСра Π΄ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, описано Π² дСкларацията.
  3. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π·Π° описванС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° голямо Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания β€” "прилоТСния".
  4. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ кластСра Π½Π°ΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π·Π°Ρ€Π°Π΄ΠΈ:
    • ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅;
    • ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° спСцификация;
    • Π³Ρ€Π΅ΡˆΠΊΠΈ Π² срСдата β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

ЧудСснитС способности Π½Π° Kubernetes Π·Π° конвСргСнция

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² конфигурацията, ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Kubernetes Ρ‰Π΅ Π³ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π° към кластСра, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π΅ сС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠΈ Π΄ΠΎ Π½ΠΎΠ²Π°Ρ‚Π° конфигурация. Π’Π°Π·ΠΈ ΠΌΠΎΠ΄Π΅Π» Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° всСки рСсурс Π½Π° Kubernetes ΠΈ сС Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π° Ρ‡Ρ€Π΅Π· Custom Resource Definitions (CRDs). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡΡ‚Π° Π½Π° Kubernetes ΠΈΠΌΠ°Ρ‚ слСднитС нСвСроятни свойства:

  • Автоматизацията: Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Kubernetes прСдоставят ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° процСса Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π½Π°Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
  • ΠšΠΎΠ½Π²Π΅Ρ€Π³Π΅Π½Ρ†ΠΈΡ: Kubernetes Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎ постиганС Π½Π° успСх.
  • Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚: ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° конвСргСнцията Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΡŠΡ‰ΠΈΡ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚.
  • Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΠ·ΡŠΠΌ: ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ рСсурси, ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° актуализирания ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ зависи само ΠΎΡ‚ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ GitOps

НиС Π½Π°ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π·Π° Kubernetes, Π·Π° Π΄Π° обясним ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° GitOps.

НСка сС Π²ΡŠΡ€Π½Π΅ΠΌ Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ Π½Π° Family Insurance, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с микросСрвизи. Какво ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌ сС Π½Π°Π»Π°Π³Π° Π΄Π° правят? Π’ΠΈΠΆΡ‚Π΅ списъка ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ (Π°ΠΊΠΎ някои Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π½Π΅Π³ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ странни ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ β€” моля, ΠΏΠΎΡ‡Π°ΠΊΠ°ΠΉΡ‚Π΅ с ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΈ останСтС с нас). Π’ΠΎΠ²Π° са само ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ процСси Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Jenkins. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ процСси ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти.

ΠžΡΠ½ΠΎΠ²Π½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ всяка актуализация Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° с внасянС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git. Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Git водят Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Β«ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ GitOpsΒ» Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°:

1. Π Π°Π±ΠΎΡ‚Π΅Π½ процСс: Β«Π‘Π±ΠΎΡ€ΠΊΠ° Jenkins β€” ΠΊΠ»ΠΎΠ½ masterΒ».
Бписък със Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Ρ‚Π°Π³ΠΈΡ€Π°Π½ΠΈ изобраТСния Π² Quay;
  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° конфигурация ΠΈ Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅ Π² ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° master Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ;
  • ΠžΠ±Π»Π°Ρ‡Π½Π° функция ΠΊΠΎΠΏΠΈΡ€Π° конфигурацията ΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° master Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π² Git рСпозитория master;
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ GitOps Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

2. Π‘Π±ΠΎΡ€ΠΊΠ° Jenkins β€” ΠΊΠ»ΠΎΠ½ release ΠΈΠ»ΠΈ hotfix:

  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π½Π΅Ρ‚Π°Π³ΠΈΡ€Π°Π½ΠΈ изобраТСния Π² Quay;
  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° конфигурация ΠΈ Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅ Π² ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° staging Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ;
  • ΠžΠ±Π»Π°Ρ‡Π½Π° функция ΠΊΠΎΠΏΠΈΡ€Π° конфигурацията ΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° staging Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π² Git рСпозитория staging;
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ GitOps Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

3. Π‘Π±ΠΎΡ€ΠΊΠ° Jenkins β€” ΠΊΠ»ΠΎΠ½ develop ΠΈΠ»ΠΈ feature:

  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π½Π΅Ρ‚Π°Π³ΠΈΡ€Π°Π½ΠΈ изобраТСния Π² Quay;
  • Jenkins ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° конфигурация ΠΈ Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅ Π² ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° develop Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ;
  • ΠžΠ±Π»Π°Ρ‡Π½Π° функция ΠΊΠΎΠΏΠΈΡ€Π° конфигурацията ΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΊΠΎΡ„Π°Ρ‚Π° Π½Π° develop Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π² Git рСпозитория develop;
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ GitOps Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

4. ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚:

  • ΠœΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ ΠΈΠ»ΠΈ администратор (LCM/ops) ΠΈΠ·Π²ΠΈΠΊΠ²Π° Gradle Π·Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΈ настройка Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ балансировчици Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ (NLB);
  • LCM/ops ΠΊΠΎΠΌΠΈΡ‚Π²Π° Π½ΠΎΠ²Π° конфигурация, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ GitOps Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

ΠšΡ€Π°Ρ‚ΠΊΠΎ описаниС Π½Π° GitOps

  1. ΠžΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° цялата систСма, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ спСцификации Π·Π° всяка срСда (Π² Π½Π°ΡˆΠ°Ρ‚Π° история Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Π‘ΠΎΠ± опрСдСля цялата конфигурация Π½Π° систСмата Π² Git).
    • Git рСпозиторият Π΅ СдинствСният ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° истина относно ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° цялата систСма.
    • Всички ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°Ρ‚ Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π² Git.
    • Всички ΠΆΠ΅Π»Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΡΡŠΡ‰ΠΎ са Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΈΡ‚Π΅ Π² самия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ, ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ (ΠΊΠΎΠ½Π²Π΅Ρ€Π³ΠΈΡ€Π°Ρ‚, converge) ΠΈΠ»ΠΈ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ (Π΄ΠΈΠ²Π΅Ρ€Π³ΠΈΡ€Π°Ρ‚, diverge) ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅.
  2. Ако ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚, Ρ‚ΠΎ:
    • Има ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° конвСргСнция, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ късно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ синхронизира Ρ†Π΅Π»Π΅Π²ΠΎΡ‚ΠΎ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Π’ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Ρ‚ΠΎΠ²Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΡ‚ Kubernetes.
    • ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ стартира Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ с ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "промяна Π°Π½Π³Π°ΠΆΠΈΡ€Π°Π½Π°".
    • Π‘Π»Π΅Π΄ извСстно настраиваСмо Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "Ρ€Π°Π·Π»ΠΈΠΊΠΈ", Π°ΠΊΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡΡ‚Π° сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚.
  3. Π’Π°ΠΊΠ° Ρ‡Π΅, всички ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π² Git ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠΈ ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΈ обновлСния Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.
    • ΠžΡ‚ΠΊΠ°Ρ‚ΡŠΡ‚ Π΅ конвСргСнция към ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅.
  4. ΠšΠΎΠ½Π²Π΅Ρ€Π³Π΅Π½Ρ†ΠΈΡΡ‚Π° Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½Π°. Π—Π° нСя свидСтСлстват:
    • Липсата Π½Π° увСдомлСния "Ρ€Π°Π·Π»ΠΈΠΊΠΈ" Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅.
    • Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "ΠΊΠΎΠ½Π²Π΅Ρ€Π³ΠΈΡ€Π°Π»ΠΎ" (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, webhook, ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ Π·Π° запис Π² Git).

Какво Π΅ дивСргСнция?

НСка ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ ΠΎΡ‚Π½ΠΎΠ²ΠΎ: всички ΠΆΠ΅Π»Π°Π½ΠΈ свойства Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ наблюдаСми Π² самия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

Няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π·Π° дивСргСнция:

  • ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» ΠΏΠΎΡ€Π°Π΄ΠΈ сливанС Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π² Git.
  • ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠΌΠΈΡ‚ Π² Git, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ ΠΎΡ‚ GUI ΠΊΠ»ΠΈΠ΅Π½Ρ‚.
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΈ PR Π² Git с послСдващо ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅Π½ ΠΎΠ±Ρ€Π°Π· ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² конфигурацията.
  • ΠŸΡ€ΠΎΠΌΡΠ½Π° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΏΠΎΡ€Π°Π΄ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π½Π° рСсурси, Π²ΠΎΠ΄Π΅Ρ‰ Π΄ΠΎ "лошо ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅", ΠΈΠ»ΠΈ просто случайно ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅.

Какво прСдставлява ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π½Π° конвСргСнция?

Няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

  • Π—Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π½Π° конвСргСнция осигурява Kubernetes.
  • Π‘ΡŠΡ‰ΠΈΡΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° прилоТСния ΠΈ конструкции Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Kubernetes (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Istio ΠΈ Kubeflow).
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Kubernetes, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΈ Git прСдоставя GitOps-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Weave Flux, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ част ΠΎΡ‚ Weave Cloud.
  • Π—Π° Π±Π°Π·ΠΎΠ²ΠΈ машини ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π½Π° конвСргСнция трябва Π΄Π° бъдС Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ΅Π½. По наш ΠΎΠΏΠΈΡ‚ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Terraform Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ всС ΠΏΠ°ΠΊ изисква ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» ΠΎΡ‚ страна Π½Π° Ρ‡ΠΎΠ²Π΅ΠΊΠ°. Π’ Ρ‚ΠΎΠ·ΠΈ смисъл GitOps Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Infrastructure as Code.

GitOps ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° Git с ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° конвСргСнция Π½Π° Kubernetes, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π·Π° Сксплоатация.

GitOps Π½ΠΈ позволява Π΄Π° заявим: автоматизацията ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŠΡ‚ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ само Π·Π° систСми, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ описвани ΠΈ наблюдавани.

GitOps Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° цСлия cloud native стСк (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Terraform ΠΈ Ρ‚.Π½.)

GitOps Π½Π΅ Π΅ само Kubernetes. НиС искамС цялата систСма Π΄Π° сС управлява Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° конвСргСнция. Под цялата систСма Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ срСди, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ с Kubernetes – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "dev кластСр 1", "продукция" ΠΈ Ρ‚.Π½. Π’ΡŠΠ² всяка срСда Π²Π»ΠΈΠ·Π°Ρ‚ машини, ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ, прилоТСния, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ интСрфСйси Π·Π° външни услуги, осигуряващи Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Ρ‚.Π½.

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ΅Π½ Π΅ Terraform Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с bootstrapping. Kubernetes трябва Π΄Π° бъдС Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ някъдС ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Terraform ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ ΡΡŠΡ‰ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ процСси Π½Π° GitOps Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° управляващ слой, Π»Π΅ΠΆΠ°Ρ‰ Π² основата Π½Π° Kubernetes ΠΈ прилоТСнията. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Голямо Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ сС отдСля Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈΡ‚Π΅ GitOps към слоСвСтС Π½Π°Π΄ Kubernetes. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° GitOps Π·Π° Istio, Helm, Ksonnet, OpenFaaS ΠΈ Kubeflow, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Pulumi, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ слой Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прилоТСния Π·Π° cloud native.

Kubernetes CI/CD: сравнСниС Π½Π° GitOps с Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ

ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅, GitOps Π΅ Π΄Π²Π΅ Π½Π΅Ρ‰Π°:

  1. МодСл Π·Π° Сксплоатация Π·Π° Kubernetes ΠΈ cloud native, описан ΠΏΠΎ-Π³ΠΎΡ€Π΅.
  2. ΠŸΡŠΡ‚ΡΡ‚ към ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° срСда, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° прилоТСния.

Π—Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° GitOps Π΅ ΠΏΡ€Π΅Π΄ΠΈ всичко Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс Π½Π° Π±Π°Π·Π° Git push. И Π½Π° нас Π½ΠΈ харСсва. Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ всичко: Π½Π΅ΠΊΠ° сСга Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ.

GitOps осигурява Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ (CD) ΠΏΠΎΠ΄ Kubernetes

GitOps ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° нСобходимостта ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ "систСми Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡΡ‚Π°". Цялата Ρ€Π°Π±ΠΎΡ‚Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΡ‚ Kubernetes.

  • Актуализацията Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ изисква актуализация Π² Git. Π’ΠΎΠ²Π° Π΅ трансакционно ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Β«Π Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎΒ» слСд Ρ‚ΠΎΠ²Π° сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π² кластСра ΠΎΡ‚ самия Kubernetes Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ описаниС.
  • ΠŸΠΎΡ€Π°Π΄ΠΈ спСцификата Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Kubernetes Ρ‚Π΅Π·ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ са ΠΊΠΎΠ½Π²Π΅Ρ€Π³Π΅Π½Ρ‚Π½ΠΈ. Π’ΠΎΠ²Π° осигурява ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ всички обновлСния са Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ.
  • Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Weave Cloud ΠΏΡ€Π΅Π΄Π»Π°Π³Π° GitOps ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‰ Git ΠΈ Kubernetes ΠΈ позволяващ изпълнСниС Π½Π° CD Ρ‡Ρ€Π΅Π· ΡΡŠΠ³Π»Π°ΡΡƒΠ²Π°Π½Π΅ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° кластСра.

Π‘Π΅Π· kubectl ΠΈ скриптовС

Врябва Π΄Π° сС избягва ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Kubectl Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° кластСра, особСно скриптовС Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ kubectl. ВмСсто Ρ‚ΠΎΠ²Π°, Ρ‡Ρ€Π΅Π· GitOps ΠΏΠΎΡ‚ΠΎΠΊΠ°, потрСбитСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈ своя Kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Ρ‡Ρ€Π΅Π· Git.

ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²Π°Ρ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚:

  1. ΠšΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚. Π“Ρ€ΡƒΠΏΠ° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π°, конвСргСнция ΠΈ накрая Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Π²Π° Π΄ΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅. ΠžΡ‚ Π΄Ρ€ΡƒΠ³Π° страна, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° скриптовС Π½Π΅ Π΄Π°Π²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π³Π°Ρ€Π°Π½Ρ†ΠΈΠΈ Π·Π° конвСргСнция (ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ).
  2. Бигурност. Π¦ΠΈΡ‚ΠΈΡ€Π°ΠΉΠΊΠΈ Kelsey Hightower: Β«ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ Kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° само Π΄ΠΎ инструмСнтитС Π·Π° автоматизация ΠΈ администраторитС, чиято Ρ€Π°Π±ΠΎΡ‚Π° Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½Π° с отстраняванС Π½Π° нСизправности ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° работоспособността». Π’ΠΈΠΆΡ‚Π΅ ΡΡŠΡ‰ΠΎ моята публикация Π·Π° бСзопасността ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ с тСхничСскитС изисквания, Π° ΡΡŠΡ‰ΠΎ ΠΈ статията Π·Π° Ρ…Π°ΠΊΠ²Π°Π½Π΅ Π½Π° Homebrew Ρ‡Ρ€Π΅Π· ΠΊΡ€Π°ΠΆΠ±Π° Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π½Π΅Π±Ρ€Π΅ΠΆΠ½ΠΎ написан Jenkins скрипт.
  3. ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ ΠΎΠΏΠΈΡ‚. Kubectl Ρ€Π°Π·ΠΊΡ€ΠΈΠ²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ°Ρ‚Π° Π½Π° обСктния ΠΌΠΎΠ΄Π΅Π» Π½Π° Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ доста слоТСн. ИдСално, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ трябва Π΄Π° взаимодСйстват със систСмата Π½Π° ΠΏΠΎ-високо Π½ΠΈΠ²ΠΎ Π½Π° абстракция. Π’ΡƒΠΊ ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°ΠΌ Π½Π° Kelsey ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Ρ‚Π°ΠΊΠΎΠ²Π° Ρ€Π΅Π·ΡŽΠΌΠ΅.

Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ CI ΠΈ CD

GitOps подобрява ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ CI/CD ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π‘ΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡΡ‚ CI ΡΡŠΡ€Π²ΡŠΡ€ Π΅ инструмСнт Π·Π° оркСстрация. Π’ частност, Ρ‚ΠΎΠ²Π° Π΅ инструмСнт Π·Π° оркСстрация Π½Π° CI ΠΏΠΎΡ‚ΠΎΡ†ΠΈ. Π’Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ build, test, merge to trunk ΠΈ Ρ‚.Π½. CI ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° слоТни ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚ΡŠΠΏΠΊΠΎΠ²ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ. РазпространСното ΠΈΠ·ΠΊΡƒΡˆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° сС създадС скрипт Π·Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Kubernetes ΠΈ Π΄Π° сС изпълни ΠΊΠ°Ρ‚ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π·Π° ΠΏΡƒΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² кластСра. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, ΠΌΠ½ΠΎΠ³ΠΎ спСциалисти ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Ρ‚Π°ΠΊΠ°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ, ΠΈ Π΅Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ.

CI трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² trunk, Π° Kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ трябва Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π° въз основа Π½Π° Ρ‚Π΅Π·ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π·Π° Π΄Π° управлява CD "Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ". НиС Π³ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ pull-ΠΌΠΎΠ΄Π΅Π» Π·Π° CD, Π² контСкста Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° push Π½Π° CI. CD Π΅ част ΠΎΡ‚ runtime-оркСстрацията.

Π—Π°Ρ‰ΠΎ CI-ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π΅ трябва Π΄Π° правят CD Ρ‡Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Kubernetes

НС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ CI-ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° оркСстрация Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Kubernetes ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ CI-Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ΠΎΠ²Π° Π΅ Π°Π½Ρ‚ΠΈ-ΠΏΠ°Ρ‚Π΅Ρ€Π½, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ…ΠΌΠ΅ Π² Π±Π»ΠΎΠ³Π° си.

НСка сС Π²ΡŠΡ€Π½Π΅ΠΌ към Алиса ΠΈ Π‘ΠΎΠ±.

Π‘ ΠΊΠ°ΠΊΠ²ΠΈ прСдизвикатСлства сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ Ρ‚Π΅? CI-ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° Π‘ΠΎΠ± ΠΏΡ€ΠΈΠ»Π°Π³Π° измСнСния към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Π½ΠΎ Π°ΠΊΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСса Ρ‚ΠΎΠΉ сС сринС, Π‘ΠΎΠ± няма Π΄Π° Π·Π½Π°Π΅ Π² ΠΊΠ°ΠΊΠ²ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π΅ (ΠΈΠ»ΠΈ трябва Π΄Π° бъдС) ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈ. Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ ΠΏΡ€ΠΈ успСх.

Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Π‘ΠΎΠ± Π΅ построил Π½ΠΎΠ² ΠΎΠ±Ρ€Π°Π· ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π½Π° своитС deployment-ΠΈ, Π·Π° Π΄Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° ΠΎΠ±Ρ€Π°Π·Π° (всичко Ρ‚ΠΎΠ²Π° ΠΎΡ‚ CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°).

Ако ΠΎΠ±Ρ€Π°Π·ΡŠΡ‚ сС ΡΡŠΠ±Π΅Ρ€Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, Π½ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΡŠΡ‚ сС сринС, Π½Π° Π΅ΠΊΠΈΠΏΠ° Ρ‰Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅:

  • ΠŸΡƒΡΠ½Π° Π»ΠΈ сС актуализацията?
  • ΠŸΡƒΡΠΊΠ°ΠΌΠ΅ Π»ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° сборка? Π©Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π»ΠΈ Ρ‚ΠΎΠ²Π° Π΄ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈ странични Π΅Ρ„Π΅ΠΊΡ‚ΠΈ β€” с вСроятността Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π²Π΅ сборки Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΎΠ±Ρ€Π°Π·?
  • Врябва Π»ΠΈ Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ°ΠΌΠ΅ слСдващата актуализация, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° пуснСм сборката?
  • Какво Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ бСшС Π½Π°Ρ€Π΅Π΄? Какви ΡΡ‚ΡŠΠΏΠΊΠΈ трябва Π΄Π° сС повторят (ΠΈ ΠΊΠΎΠΈ ΠΎΡ‚ тях са бСзопасни Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅)?

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° Π½Π° работния процСс, основана Π½Π° Git, Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Π‘ΠΎΠ± няма Π΄Π° срСщнС Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π’Π΅ всС ΠΎΡ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΠ³Ρ€Π΅ΡˆΠ°Ρ‚ ΠΏΡ€ΠΈ push Π½Π° ΠΊΠΎΠΌΠΈΡ‚, Ρ‚Π°Π³ ΠΈΠ»ΠΈ някой Π΄Ρ€ΡƒΠ³ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€; ΠΎΠ±Π°Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ всС ΠΏΠ°ΠΊ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ явния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ "всичко ΠΈΠ»ΠΈ Π½ΠΈΡ‰ΠΎ".

Π’ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Π΅Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ CI-ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π΅ трябва Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ с CD:

  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° актуализация Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ са Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½ΠΈ; лСсно Π΅ Π΄Π° сС допуснат Π³Ρ€Π΅ΡˆΠΊΠΈ.
  • CI-ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Π³ΠΈΡ€Π°Ρ‚ към Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.
  • Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° идСмпотСнтност. ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ трябва Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ Π΄ΡŠΠ»Π±ΠΎΠΊΠ°Ρ‚Π° сСмантика Π½Π° систСмата.
  • По-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ слСд частичСн нСуспСх.

Π‘Π΅Π»Π΅ΠΆΠΊΠ° относно Helm: Π°ΠΊΠΎ искатС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Helm, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ с GitOps-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠ°Ρ‚ΠΎ Flux-Helm. Π’ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° осигуряванС Π½Π° конвСргСнция. Π‘Π°ΠΌ ΠΏΠΎ сСбС си Helm Π½Π΅ Π΅ Π½ΠΈΡ‚ΠΎ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½, Π½ΠΈΡ‚ΠΎ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π΅Π½.

GitOps ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΉ-добрият Π½Π°Ρ‡ΠΈΠ½ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Continuous Delivery Π·Π° Kubernetes

ΠžΡ‚Π±ΠΎΡ€ΡŠΡ‚ Π½Π° Алиса ΠΈ Π‘ΠΎΠ± внСдрява GitOps ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°, Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с софтуСрнитС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° висока производитСлност ΠΈ стабилност Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-лСсна. НСка Π·Π°Π²ΡŠΡ€ΡˆΠΈΠΌ Ρ‚Π°Π·ΠΈ статия с ΠΈΠ»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‰ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° новият ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ основно Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° прилоТСния ΠΈ услуги, Π½ΠΎ GitOps ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° цялата ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.

МодСл Π½Π° Сксплоатация Π·Π° Kubernetes

ΠŸΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π½Π° слСдната Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°. Вя прСдставя Git ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ изобраТСния ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈ рСсурси Π·Π° Π΄Π²Π° оркСстрирани ΠΆΠΈΠ·Π½Π΅Π½ΠΈ Ρ†ΠΈΠΊΡŠΠ»Π°:

  • Пайплайн Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅ ΠΈ записва Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Git ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° обновява Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ изобраТСния.
  • Пайплайн Π½Π° Runtime GitOps, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° внСдряванС, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚. Π’ΠΎΠΉ Ρ‡Π΅Ρ‚Π΅ ΠΈ записва Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Git ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ°Ρ‡Π²Π° изобраТСния Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Какви са основнитС ΠΈΠ·Π²ΠΎΠ΄Π°?

  1. РаздСлянС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ: ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΠΈ Π΄Π²Π°Ρ‚Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° обмСнят Π΄Π°Π½Π½ΠΈ, само Ρ‡Ρ€Π΅Π· обновяванС Π½Π° Git ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° изобраТСния. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π·Π°Ρ‰ΠΈΡ‚Π½Π° стСна ΠΌΠ΅ΠΆΠ΄Ρƒ CI ΠΈ срСдата Π½Π° runtime. НиС я Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ "Π±Ρ€Π°Π½Π΄ΠΌΠ°ΡƒΠ΅Ρ€ Π½Π° нСизмСняСмостта" (immutability firewall), Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всички обновлСния Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ вСрсии. Π—Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ, моля, сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с слайдовС 72-87. Ρ‚Π°Π·ΠΈ прСзСнтация.
  2. МоТС Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° всСки CI ΠΈ Git ΡΡŠΡ€Π²ΡŠΡ€: GitOps Ρ€Π°Π±ΠΎΡ‚ΠΈ с всякакви ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ любими CI ΠΈ Git ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° изобраТСния ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ тСстовС. ΠŸΠΎΡ‡Ρ‚ΠΈ всички останали инструмСнти Π·Π° Continuous Delivery Π½Π° ΠΏΠ°Π·Π°Ρ€Π° изискват собствСн CI/Git ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° изобраТСния. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π΅ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° cloud native. Π’ случай Π½Π° GitOps ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΡ‚Π΅ инструмСнти.
  3. Π‘ΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π° ΠΊΠ°Ρ‚ΠΎ инструмСнт Π·Π° интСграция: Π’Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Git сС обновят, Weave Flux (ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Weave Cloud) увСдомява Π·Π° Ρ‚ΠΎΠ²Π° срСдата Π½Π° runtime. ВсСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Kubernetes ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Git сС обновява. Π’ΠΎΠ²Π° осигурява проста ΠΌΠΎΠ΄Π΅Π» Π½Π° интСграция Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π·Π° GitOps, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

GitOps прСдоставя Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Π³Π°Ρ€Π°Π½Ρ†ΠΈΠΈ Π·Π° обновлСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° всСки ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ инструмСнт CI/CD:

  • автоматизация;
  • конвСргСнция;
  • идСмпотСнтност;
  • Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΠ·ΡŠΠΌ.

Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Сксплоатация Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½Π°Ρ‚Π° срСда.

  • Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ инструмСнти Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ наблюдСниС Π½Π° систСми са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ дСйстват Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° runbook-Π° (Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” ΠΏΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².), ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅.
  • Π’ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° cloud native систСми инструмСнтитС Π·Π° наблюдСниС са Π½Π°ΠΉ-добрият Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡΡ‚Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π° Π±ΡŠΡ€Π·ΠΎ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Ρ‚Π΅ си мноТСство ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ±Π»Π°Ρ†ΠΈ, ΠΈ мноТСство услуги със свои собствСни Π΅ΠΊΠΈΠΏΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅. GitOps ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΌΠ°Ρ‰Π°Π±Π½ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° всичкото Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠ΅.

P.S. ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π‘Π°ΠΌΠΎ рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват Π² Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°. Π’Π»Π΅Π·Ρ‚Π΅, моля.

Π—Π½Π°Π΅Ρ…Ρ‚Π΅ Π»ΠΈ Π·Π° GitOps ΠΏΡ€Π΅Π΄ΠΈ появата Π½Π° Ρ‚Π΅Π·ΠΈ Π΄Π²Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π² Π₯Π°Π±Ρ€Π°?

  • Π”Π°, Π·Π½Π°Π΅Ρ… всичко

  • Π‘Π°ΠΌΠΎ ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚Π½ΠΎ

  • НС

Гласували 35 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’ΠΎΠ·Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ сС 10 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster