ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: Π‘Π»Π΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π·Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ pull ΠΈ push Π² GitOps, Π½ΠΈΠ΅ Π²ΠΈΠ΄ΡΡ ΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊΡΠΌ ΡΠ°Π·ΠΈ ΠΌΠΎΠ΄Π΅Π», Π½ΠΎ ΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ (Π² Π₯Π°Π±Ρ ΠΏΡΠΎΡΡΠΎ Π³ΠΈ Π½ΡΠΌΠ°). ΠΠ°ΡΠΎΠ²Π° Ρ ΡΠ°Π΄ΠΎΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π½Π° Π²Π°ΡΠ΅ΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° Π΄ΡΡΠ³Π° ΡΡΠ°ΡΠΈΡ β ΠΌΠ°ΠΊΠ°Ρ ΠΈ ΠΏΠΎΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΡΠ°ΡΠ°! β ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Weaveworks, ΡΠΈΠΉΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π» ΠΈΠ·ΠΌΠΈΡΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π° βGitOpsβ. Π ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ ΠΎΠ±ΡΡΠ½ΡΠ²Π° ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΎΡ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅.
ΠΡΠ΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΠΌΠ΅ . Π’ΠΎΠ³Π°Π²Π° ΡΠ°Π·ΠΊΠ°Π·Π°Ρ ΠΌΠ΅ ΠΊΠ°ΠΊ Π΅ΠΊΠΈΠΏΡΡ Π½Π° Weaveworks ΡΡΠ°ΡΡΠΈΡΠ° SaaS ΡΡΠ»ΡΠ³Π°, Π½Π°ΠΏΡΠ»Π½ΠΎ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Kubernetes, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΈΡΠ²Π°ΡΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π² ΡΡΠ΅Π΄Π° cloud native.
Π‘ΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°. ΠΡΡΠ³ΠΈ Ρ ΠΎΡΠ° Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ Π·Π° GitOps, ΡΡΠ°Π½Π°Ρ Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° , , , , ΠΈ Π΄Ρ. ΠΠ° Π½Π°ΡΠΈΡ ΡΠ°ΠΉΡ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GitOps. ΠΠΎ ΠΏΡΠΈ Π½ΡΠΊΠΎΠΈ Ρ ΠΎΡΠ° Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΎΡΡΠ°Π½Π°Ρ Π° Π²ΡΠΏΡΠΎΡΠΈ. Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ()? ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π»ΠΈ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Kubernetes?
Π‘ΠΊΠΎΡΠΎ ΠΎΡΡΠ·Π½Π°Ρ ΠΌΠ΅, ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½ΠΎΠ²ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠΎ:
- ΠΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΈ ΠΈΡΡΠΎΡΠΈΠΈ;
- ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° GitOps;
- Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΎΠ±Ρ Π²Π°Π½Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΠ΅ΠΌΠΈ. Π Π½Π΅Ρ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² 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. Π’Π΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ , Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ Π² .
Family Insurance ΡΠ΅ΡΠ°Π²Π° Π΄Π° Π²Π½Π΅Π΄ΡΠΈ GitOps. Π‘Π΅Π³Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΠΌΠΎΠ΄Π΅Π», ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Kubernetes ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ Ρ ΡΡΡ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅:
- ΠΎΡΠΊΡΠΈΡ Π°, ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅ΠΊΠΈΠΏΠ° Π΅ Π½Π°ΡΠ°ΡΠ½Π°Π»Π° Π΄Π²Π° ΠΏΡΡΠΈ ΠΈ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΏΠΎΠ»ΡΠ΄ΡΠ²Π°;
- ΡΠΏΡΡΡ Π° Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Ρ Π²ΡΡΡ Ρ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄Π° ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π²Π½Π΅Π΄ΡΡΡ ΠΊΠ°Π½Π°ΡΠ΅ΠΉΠΊΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΡ ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ;
- ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Ρ Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·Π²Π΅ΡΡΠΊΠ° - ΡΠ΅Π³Π° ΡΠΎΠΉ ΡΡΠ΄ΠΊΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»Ρ;
- ΠΏΠΎΠ»ΡΡΠΈΡ Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ ΡΠ°ΡΡΠΈΡΠ½ΠΈ Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ Π±Π΅Π· ΡΡΡΠ½ΠΎ Π½Π°ΠΌΠ΅ΡΠ°;
- ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΡ Π° Π±ΠΎΠΎΠ»ΡΠ° ΡΠ²Π΅ΡΠ΅Π½ΠΎΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°. ΠΠ»ΠΈΡΠ° ΠΈ ΠΠΎΠ± ΠΎΡΠΊΡΠΈΡ Π°, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΡ Π΅ΠΊΠΈΠΏΠ° Π½Π° Π³ΡΡΠΏΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΡΠΈ ΡΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ;
- ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΏΠΎ 30-50 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΈΠ»ΠΈΡΡΠ° Π½Π° Π²ΡΡΠΊΠ° Π³ΡΡΠΏΠ° ΠΈ Π΄Π° ΠΎΠΏΠΈΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ;
- Π»Π΅ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Ρ Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΊΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° production Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pull request-ΠΎΠ²Π΅ ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ°;
- Π»Π΅ΠΊΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΎΠ΄ΠΈΡΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° SOC2 (ΡΡΠ³Π»Π°ΡΠ½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ; ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, β Π±Π΅Π». ΡΠ΅Π΄.).
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ?
GitOps β ΡΠΎΠ²Π° Π΅ Π΄Π²Π΅ Π½Π΅ΡΠ°:
- ΠΠΎΠ΄Π΅Π» Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π·Π° Kubernetes ΠΈ cloud native. Π’ΠΎΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠΌΠ° Π½Π° ΠΎΡ :
- ΠΡΡΡΡ ΠΊΡΠΌ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ° ΡΠ΅ ΡΡΠ΅Π΄Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Git ΠΊΠ°ΠΊΡΠΎ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π·Π° Git push, Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅Π»ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ CI/CD ΠΈ UI/UX.
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° Git
ΠΠΊΠΎ Π½Π΅ ΡΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Git, Π½Π°ΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Π²ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠΎΡΡΠΈΡΠ΅. Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ pull request-ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ½Π° ΠΌΠ°Π³ΠΈΡ, Π½ΠΎ ΠΏΠΎΠ»Π·ΠΈΡΠ΅ ΡΠΈ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π°Ρ ΡΡΠΈΠ»ΠΈΡΡΠ°. ΠΡΠΎ Π·Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Kubernetes
Π Π½Π°ΡΠ°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΠΠ»ΠΈΡΠ° ΠΈ ΠΠΎΠ± ΡΠ΅ ΠΎΠ±ΡΡΠ½Π°Ρ Π° ΠΊΡΠΌ GitOps, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΠΈΡ Π° Ρ Kubernetes. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ GitOps Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ Ρ Kubernetes β ΡΠΎΠ²Π° Π΅ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° Kubernetes.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Kubernetes Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅?
ΠΡΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
- Π ΠΌΠΎΠ΄Π΅Π»Π° Kubernetes Π²ΡΠΈΡΠΊΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π° ΡΠΎΡΠΌΠ°.
- API-ΡΡΡΠ²ΡΡΡΡ Π½Π° Kubernetes ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠ°ΠΊΠ°Π²Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ ΠΊΠ°ΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΄ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡΡΠ°.
- ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΠΎΠΏΠΈΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»ΡΠΌΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ β "ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ".
- Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π°ΡΡΡΠΏΠ²Π°Ρ Π·Π°ΡΠ°Π΄ΠΈ:
- ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅;
- ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ;
- Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΡΠ΅Π΄Π°ΡΠ° β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π§ΡΠ΄Π΅ΡΠ½ΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π° 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
- ΠΠΏΠΈΡΠ΅ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° Π²ΡΡΠΊΠ° ΡΡΠ΅Π΄Π° (Π² Π½Π°ΡΠ°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π΅ΠΊΠΈΠΏΡΡ Π½Π° ΠΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π² Git).
- Git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΡΡΠΈΠ½Π° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
- ΠΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΡΠ΅Π· ΠΊΠΎΠΌΠΈΡΠΈ Π² Git.
- ΠΡΠΈΡΠΊΠΈ ΠΆΠ΅Π»Π°Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΡΡΠΎ ΡΠ° Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΈΡΠ΅ Π² ΡΠ°ΠΌΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΡΡΠ²ΠΏΠ°Π΄Π°Ρ (ΠΊΠΎΠ½Π²Π΅ΡΠ³ΠΈΡΠ°Ρ, converge) ΠΈΠ»ΠΈ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ (Π΄ΠΈΠ²Π΅ΡΠ³ΠΈΡΠ°Ρ, diverge) ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
- ΠΠΊΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ, ΡΠΎ:
- ΠΠΌΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΊΡΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ° ΡΠ΅Π»Π΅Π²ΠΎΡΠΎ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ Kubernetes.
- ΠΡΠΎΡΠ΅ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "ΠΏΡΠΎΠΌΡΠ½Π° Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π°".
- Π‘Π»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "ΡΠ°Π·Π»ΠΈΠΊΠΈ", Π°ΠΊΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΡΡΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ.
- Π’Π°ΠΊΠ° ΡΠ΅, Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΈΡΠΈ Π² Git ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠΈ ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
- ΠΡΠΊΠ°ΡΡΡ Π΅ ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ ΠΊΡΠΌ ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
- ΠΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡΡΠ° Π΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½Π°. ΠΠ° Π½Π΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΠ²Π°Ρ:
- ΠΠΈΠΏΡΠ°ΡΠ° Π½Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ "ΡΠ°Π·Π»ΠΈΠΊΠΈ" Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅.
- Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "ΠΊΠΎΠ½Π²Π΅ΡΠ³ΠΈΡΠ°Π»ΠΎ" (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, webhook, ΡΡΠ±ΠΈΡΠΈΠ΅ Π·Π° Π·Π°ΠΏΠΈΡ Π² Git).
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π΄ΠΈΠ²Π΅ΡΠ³Π΅Π½ΡΠΈΡ?
ΠΠ΅ΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ: Π²ΡΠΈΡΠΊΠΈ ΠΆΠ΅Π»Π°Π½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΈ Π² ΡΠ°ΠΌΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ.
ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° Π΄ΠΈΠ²Π΅ΡΠ³Π΅Π½ΡΠΈΡ:
- ΠΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π² Git.
- ΠΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΌΠΈΡ Π² Git, ΠΈΠ·Π²ΡΡΡΠ΅Π½ ΠΎΡ GUI ΠΊΠ»ΠΈΠ΅Π½Ρ.
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ°Π΄ΠΈ PR Π² Git Ρ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ ΠΎΠ±ΡΠ°Π· ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°.
- ΠΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΏΠΎΡΠ°Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, Π²ΠΎΠ΄Π΅Ρ Π΄ΠΎ "Π»ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅", ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ?
ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
- ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Kubernetes.
- Π‘ΡΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Kubernetes (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Istio ΠΈ Kubeflow).
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Kubernetes, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΠΈ Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ , ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°ΡΡ ΠΎΡ .
- ΠΠ° Π±Π°Π·ΠΎΠ²ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΈ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ΅Π½. ΠΠΎ Π½Π°Ρ ΠΎΠΏΠΈΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΡΠΎΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ» ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΡΠΎΠ²Π΅ΠΊΠ°. Π ΡΠΎΠ·ΠΈ ΡΠΌΠΈΡΡΠ» 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 Π΅ Π΄Π²Π΅ Π½Π΅ΡΠ°:
- ΠΠΎΠ΄Π΅Π» Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π·Π° Kubernetes ΠΈ cloud native, ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎ-Π³ΠΎΡΠ΅.
- ΠΡΡΡΡ ΠΊΡΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅Π΄Π°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° GitOps Π΅ ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π±Π°Π·Π° Git push. Π Π½Π° Π½Π°Ρ Π½ΠΈ Ρ Π°ΡΠ΅ΡΠ²Π°. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ: Π½Π΅ΠΊΠ° ΡΠ΅Π³Π° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ.
GitOps ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ (CD) ΠΏΠΎΠ΄ Kubernetes
GitOps ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ "ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½ΠΈΡΡΠ°". Π¦ΡΠ»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ Kubernetes.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² Git. Π’ΠΎΠ²Π° Π΅ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΎΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. Β«Π Π°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎΒ» ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΡ ΡΠ°ΠΌΠΈΡ Kubernetes Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
- ΠΠΎΡΠ°Π΄ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Kubernetes ΡΠ΅Π·ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠ½ΠΈ. Π’ΠΎΠ²Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΈ.
- ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΏΡΠ΅Π΄Π»Π°Π³Π° GitOps ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Ρ Git ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° CD ΡΡΠ΅Π· ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΠΈ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΠ΅Π· kubectl ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅
Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠ³Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Kubectl Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ kubectl. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π°, ΡΡΠ΅Π· GitOps ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈ ΡΠ²ΠΎΡ Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ ΡΡΠ΅Π· Git.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- ΠΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡ. ΠΡΡΠΏΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π°, ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ ΠΈ Π½Π°ΠΊΡΠ°Ρ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π°, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π²Π° Π΄ΠΎ ΡΠ΅Π»ΡΠ° Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π΅ Π΄Π°Π²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρ).
- Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ. Kelsey Hightower: Β«ΠΠ³ΡΠ°Π½ΠΈΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅, ΡΠΈΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ°Β». ΠΠΈΠΆΡΠ΅ ΡΡΡΠΎ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° ΠΈ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, Π° ΡΡΡΠΎ ΠΈ ΡΡΠ΅Π· ΠΊΡΠ°ΠΆΠ±Π° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π½Π΅Π±ΡΠ΅ΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Jenkins ΡΠΊΡΠΈΠΏΡ.
- ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΎΠΏΠΈΡ. Kubectl ΡΠ°Π·ΠΊΡΠΈΠ²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° Kubernetes, ΠΊΠΎΠΉΡΠΎ Π΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ΅Π½. ΠΠ΄Π΅Π°Π»Π½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ. Π’ΡΠΊ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°ΠΌ Π½Π° Kelsey ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ .
Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ CI ΠΈ CD
GitOps ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ CI/CD ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΡ CI ΡΡΡΠ²ΡΡ Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ Π½Π° CI ΠΏΠΎΡΠΎΡΠΈ. Π’Π΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ build, test, merge to trunk ΠΈ Ρ.Π½. CI ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΏΠΊΠΎΠ²ΠΈ ΠΏΠΎΡΠΎΡΠΈ. Π Π°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΊΡΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠΊΡΠΈΠΏΡ Π·Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Kubernetes ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΊΠ°ΡΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠ° Π·Π° ΠΏΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ ΡΠ°ΠΊΠ°. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ, ΠΈ Π΅ΡΠΎ Π·Π°ΡΠΎ.
CI ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² trunk, Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅Π·ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π·Π° Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π° CD "Π²ΡΡΡΠ΅ΡΠ½ΠΎ". ΠΠΈΠ΅ Π³ΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ , Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° push Π½Π° CI. CD Π΅ ΡΠ°ΡΡ ΠΎΡ runtime-ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΡΠ°.
ΠΠ°ΡΠΎ CI-ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ°Π²ΡΡ CD ΡΡΠ΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Kubernetes
ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ CI-ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Kubernetes ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ CI-Π·Π°Π΄Π°ΡΠΈ. Π’ΠΎΠ²Π° Π΅ Π°Π½ΡΠΈ-ΠΏΠ°ΡΠ΅ΡΠ½, Π·Π° ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π² Π±Π»ΠΎΠ³Π° ΡΠΈ.
ΠΠ΅ΠΊΠ° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΠ»ΠΈΡΠ° ΠΈ ΠΠΎΠ±.
Π‘ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Ρ ΡΠ΅? CI-ΡΡΡΠ²ΡΡΡΡ Π½Π° ΠΠΎΠ± ΠΏΡΠΈΠ»Π°Π³Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π½ΠΎ Π°ΠΊΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠΎΠΉ ΡΠ΅ ΡΡΠΈΠ½Π΅, ΠΠΎΠ± Π½ΡΠΌΠ° Π΄Π° Π·Π½Π°Π΅ Π² ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π΅ (ΠΈΠ»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅) ΠΊΠ»ΡΡΡΠ΅ΡΡΡ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈ. Π‘ΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ ΠΈ ΠΏΡΠΈ ΡΡΠΏΠ΅Ρ .
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ Π΅ΠΊΠΈΠΏΡΡ Π½Π° ΠΠΎΠ± Π΅ ΠΏΠΎΡΡΡΠΎΠΈΠ» Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π· ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ» ΠΏΠ°ΡΠΎΠ²Π΅ Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ deployment-ΠΈ, Π·Π° Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ° ΠΎΠ±ΡΠ°Π·Π° (Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΎΡ CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°).
ΠΠΊΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ ΡΠ΅ ΡΡΠ±Π΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ, Π½ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΡΡ ΡΠ΅ ΡΡΠΈΠ½Π΅, Π½Π° Π΅ΠΊΠΈΠΏΠ° ΡΠ΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅:
- ΠΡΡΠ½Π° Π»ΠΈ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°?
- ΠΡΡΠΊΠ°ΠΌΠ΅ Π»ΠΈ Π½ΠΎΠ²Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ°? Π©Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π»ΠΈ ΡΠΎΠ²Π° Π΄ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ β Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΄Π²Π΅ ΡΠ±ΠΎΡΠΊΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΎΠ±ΡΠ°Π·?
- Π’ΡΡΠ±Π²Π° Π»ΠΈ Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΠΌΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΡΠ½Π΅ΠΌ ΡΠ±ΠΎΡΠΊΠ°ΡΠ°?
- ΠΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΡΠ΅Π΄? ΠΠ°ΠΊΠ²ΠΈ ΡΡΡΠΏΠΊΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡ (ΠΈ ΠΊΠΎΠΈ ΠΎΡ ΡΡΡ ΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅)?
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Git, Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π΅ΠΊΠΈΠΏΡΡ Π½Π° ΠΠΎΠ± Π½ΡΠΌΠ° Π΄Π° ΡΡΠ΅ΡΠ½Π΅ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π’Π΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ³ΡΠ΅ΡΠ°Ρ ΠΏΡΠΈ push Π½Π° ΠΊΠΎΠΌΠΈΡ, ΡΠ°Π³ ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ; ΠΎΠ±Π°ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΡΠ²Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ "Π²ΡΠΈΡΠΊΠΎ ΠΈΠ»ΠΈ Π½ΠΈΡΠΎ".
Π ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠΎ Π·Π°ΡΠΎ CI-ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ Ρ CD:
- Π‘ΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ°Π½ΠΈ; Π»Π΅ΡΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠΏΡΡΠ½Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ.
- CI-ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π΅ ΠΊΠΎΠ½Π²Π΅ΡΠ³ΠΈΡΠ°Ρ ΠΊΡΠΌ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
- Π’ΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π΄ΡΠ»Π±ΠΎΠΊΠ°ΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
- ΠΠΎ-ΡΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΠ»Π΅Π΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ Π½Π΅ΡΡΠΏΠ΅Ρ .
ΠΠ΅Π»Π΅ΠΆΠΊΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ Helm: Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Helm, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ Ρ GitOps-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠ°ΡΠΎ . Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ. Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Helm Π½Π΅ Π΅ Π½ΠΈΡΠΎ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ°Π½, Π½ΠΈΡΠΎ Π°ΡΠΎΠΌΠ°ΡΠ΅Π½.
GitOps ΠΊΠ°ΡΠΎ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Continuous Delivery Π·Π° Kubernetes
ΠΡΠ±ΠΎΡΡΡ Π½Π° ΠΠ»ΠΈΡΠ° ΠΈ ΠΠΎΠ± Π²Π½Π΅Π΄ΡΡΠ²Π° GitOps ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°, ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½Π°. ΠΠ΅ΠΊΠ° Π·Π°Π²ΡΡΡΠΈΠΌ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Ρ ΠΈΠ»ΡΡΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°ΡΠΈ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½ΠΎΠ²ΠΈΡΡ ΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π½ΠΎ GitOps ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°.
ΠΠΎΠ΄Π΅Π» Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π·Π° Kubernetes
ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°. Π’Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ Git ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠΈ ΡΠ΅ΡΡΡΡΠΈ Π·Π° Π΄Π²Π° ΠΎΡΠΊΠ΅ΡΡΡΠΈΡΠ°Π½ΠΈ ΠΆΠΈΠ·Π½Π΅Π½ΠΈ ΡΠΈΠΊΡΠ»Π°:
- ΠΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Git ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π½Π° Runtime GitOps, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡ. Π’ΠΎΠΉ ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Git ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ°ΡΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ·Π²ΠΎΠ΄Π°?
- Π Π°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ: ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΈ Π΄Π²Π°ΡΠ° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΠ±ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Git ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρ CI ΠΈ ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° runtime. ΠΠΈΠ΅ Ρ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ "Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΠ΅Ρ Π½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡΠ°" (immutability firewall), ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° ΡΡΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ. ΠΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ, ΠΌΠΎΠ»Ρ, ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ 72-87. .
- ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ΅ΠΊΠΈ CI ΠΈ Git ΡΡΡΠ²ΡΡ: GitOps ΡΠ°Π±ΠΎΡΠΈ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ Π»ΡΠ±ΠΈΠΌΠΈ CI ΠΈ Git ΡΡΡΠ²ΡΡΠΈ, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Continuous Delivery Π½Π° ΠΏΠ°Π·Π°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ CI/Git ΡΡΡΠ²ΡΡ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π΅ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° cloud native. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° GitOps ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.
- Π‘ΡΠ±ΠΈΡΠΈΡΡΠ° ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ: ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² Git ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΡ, Weave Flux (ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Weave Cloud) ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π° Π·Π° ΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° runtime. ΠΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Kubernetes ΠΏΡΠΈΠ΅ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Git ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°. Π’ΠΎΠ²Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠΎΡΡΠ° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΠΎΡΠΎΡΠΈ Π·Π° GitOps, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
GitOps ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD:
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ;
- ΠΊΠΎΠ½Π²Π΅ΡΠ³Π΅Π½ΡΠΈΡ;
- ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡ;
- Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΠ·ΡΠΌ.
Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π² ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
- Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π΅ΠΉΡΡΠ²Π°Ρ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° runbook-Π° (Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΡΠΈΠ½Π½ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β ΠΏΡΠΈΠΌ. ΠΏΡΠ΅Π².), ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅.
- Π ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° cloud native ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΠ° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠ°Π·Π³ΡΡΡΠ°Π½ΠΈΡΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΅ΠΊΠΈΠΏΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ° Π±ΡΡΠ·ΠΎ.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ, ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ»ΡΠ³ΠΈ ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π΅ΠΊΠΈΠΏΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅. GitOps ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ°ΡΠ°Π±Π½ΠΎ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΎΡΠΎ ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠ΅.
P.S. ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «»;
- «»;
- «».
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠ½Π°Π΅Ρ ΡΠ΅ Π»ΠΈ Π·Π° GitOps ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ Π΄Π²Π° ΠΏΡΠ΅Π²ΠΎΠ΄Π° Π² Π₯Π°Π±ΡΠ°?
ΠΠ°, Π·Π½Π°Π΅Ρ Π²ΡΠΈΡΠΊΠΎ
Π‘Π°ΠΌΠΎ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠ½ΠΎ
ΠΠ΅
ΠΠ»Π°ΡΡΠ²Π°Π»ΠΈ 35 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈ ΡΠ΅ 10 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
