Π True Engineering ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΎΠΏΠΈΡ.
ΠΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Ρ Π²Π½Π΅Π΄ΡΠΈΡ ΠΌΠ΅ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes. Π‘Π΅Π³Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Π²ΠΈΡΠΎΠΊΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π·Π° ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Continuous Deployment. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΡΡΠΊΠΎΡΠΈΡ ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° ΠΏΠ°Π·Π°ΡΠ°.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Continuous Deployment (CD) ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
- ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ,
- ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°,
- ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°,
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°,
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Prod.
Π ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅.

1. Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° CD
Continuous Deployment Π·Π°ΠΏΠΎΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΊΠ°ΡΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ΅Π»ΠΈΠ·Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° Π½Π° Π½Π°ΡΠΈΡ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π΅Π΄ΠΈΠ½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Ρ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ .
ΠΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π»ΠΈ ΡΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΡΠ΅Π· Π΅Π΄ΠΈΠ½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ:
- Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π²Π΅Π΄Π½Π°Π³Π° Ρ ΡΠ΅Π»ΠΈΡ ΠΊΠΎΠ΄.
- ΠΠ΄ΠΈΠ½Π΅Π½ CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΠΉΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Ρ Π² prod-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
- ΠΡΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΎΠ±ΡΡΠΊΠ²Π°Π½Π΅ΡΠΎ Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅ β Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠ°ΡΡΠ° Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ ΠΈ Π΄Π° ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· ΡΠ²ΠΎΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Helm ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.
2. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ Ρ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π’Π°ΠΌ Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΡΠ±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ»Π΅Π΄ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ°, ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΠΏΡΠΎΠ΄. Π Π΄Π²Π°ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π² ΡΡΡ Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° ΠΎΡ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ Git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π·Π° ΡΠ΅Π·ΠΈ ΡΠ΅Π»ΠΈ - ΡΠΎΠΉ Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ Ρ ΡΠ΅Ρ Π½ΠΈΡ Git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΊΠ»ΠΎΠ½ Π½Π° Π½Π°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, GitLab Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.

Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ±ΠΎΡΠΊΠ°. Π’Ρ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΡΠ°ΠΏΠ°: ΡΠ±ΠΎΡΠΊΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ.
3. Π‘Π±ΠΎΡΠΊΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°
Π‘Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π΅ Π΄Π²Π΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° GitLab Runner. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΡΡΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
.
GitLab Runner Π²Π·Π΅ΠΌΠ° ΠΊΠΎΠ΄Π° ΠΎΡ Π½ΡΠΆΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π² Docker registry. Π’ΡΠΊ ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Docker ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ .
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ Ρ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΅Π»ΠΈΠ·Π°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π² Docker. ΠΠ° Π³Π»Π°Π΄ΠΊΠ° ΡΠ°Π±ΠΎΡΠ° ΡΠΌΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
1. ΠΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π° ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ·Π΄Π°Π²Π°Ρ. ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π· ΠΏΡΠ΅ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ.
2. ΠΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΠ΅Π· Helm Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ. Π‘Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ β ΡΠΎΠ²Π° ΡΠ° ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π·Π° ΡΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ° ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Git, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° K8S ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
git describe --tags --abbrev=7.
4. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π° (UAT)
Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ Π΅ΡΠ°ΠΏ Π² ΡΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ Π·Π° ΡΠ±ΠΎΡΠΊΠ° Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° K8S ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΡΠ±ΡΠ°Π½ΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ Π² Docker Registry. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° . ΠΠΊΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°, Helm Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΌΡ.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° K8S ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠ±ΠΎΡΠΊΠ°ΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°: configMaps, deployments, services, secrets ΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΡΠ³ΠΈ K8S ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΌΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Helm ΡΡΠ°ΡΡΠΈΡΠ° RollOut Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°ΠΌΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°. ΠΡΠ΅Π΄ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΡΠ½ΠΎ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠΌΠ΅ ΠΏΡΡΠ½Π°Π»ΠΈ Π² ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°.
5. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Prod
ΠΠ° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π° ΡΡΠ΅Π΄Π°, ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ Π΅Π΄ΠΈΠ½ Π±ΡΡΠΎΠ½ Π² GitLab β ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
Π‘ΡΡΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ β ΡΠ΅ΡΡΠΎΠ²Π° ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π° β Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΡΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ, Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Π½ΠΈΡΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ ΠΎΡΠ²ΡΠ½.
ΠΡΠ²ΠΊΠ°Π²Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. ΠΠ·Π½Π΅ΡΠΎΡ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΡΡΠ΅Π΄ΠΈΡΠ΅ Π½Π°Π²ΡΠ½: Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· K8S ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ Helm ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠΎΠ³Π°ΡΠΎ Helm ΡΠ°Π·Π³ΡΡΡΠ° ΡΠ±ΠΎΡΠΊΠ° Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π°, ΠΏΡΠΈΠ»Π°Π³Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° β ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ.
ΠΠ°ΠΉ-ΡΡΡΠ΄Π½ΠΎΡΠΎ Π±Π΅ΡΠ΅ Π΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π·Π°Π²ΠΈΡΠ΅ΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Π°ΡΠ°, ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π²Π΅Π΄Π΅ΠΌ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° Helm.
Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°. ΠΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠ΅Π· K8S configmap, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· Go ΡΠ°Π±Π»ΠΎΠ½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΡΠ°ΠΊΠ°:
APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}
.Values.global.env β Π² ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° (prod, stage, UAT).
.Values.app.properties.app_external_domain β Π² ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΡΠΊΠ°Π½ΠΈΡ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π² ΡΠ°ΠΉΠ»Π° .Values.yaml
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Helm ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΠ»Π° configmap.yaml ΠΈ ΠΏΠΎΠΏΡΠ»Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° APP_EXTERNAL_DOMAIN Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ΅Π΄Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π’Π°Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π° Π²Π΅ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΎΡΡΡΠΏΡΡ Π΄ΠΎ Π½Π΅Ρ Π΅ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π² Π²ΡΡΠΊΠ° ΡΡΠ΅Π΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°.
ΠΡΠ½ΠΎΡΠ½ΠΎ Π½Π΅ΠΎΡΠ΄Π°Π²Π½Π°ΡΠ½ΠΎΡΠΎ Π² Spring Cloud ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° K8S, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ configMaps: . ΠΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΈ ΠΊΠΎΡΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ. ΠΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΠΌ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΌΡ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² DEV ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ΅Π΄Π½ΡΠΆ ΡΠΎΠΌ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ° β ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ.
ΠΠ±ΡΠΎ
Π ΡΠ°ΠΊΠ°, Continuous Deployment Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠΈ. ΠΡΠΈΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Ρ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Π±ΡΡΠΎΠ½. ΠΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°. Π, Π²Π°ΠΆΠ½ΠΎ Π΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡΠ° Π½Π΅ ΡΠΏΠΈΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.

ΠΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ: Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ°
ΠΠΎΠΌΠΈΡΠ»ΠΈΡ ΠΌΠ΅ Π·Π° Π°ΠΏΠ³ΡΠ΅ΠΉΠ΄ Π½Π° Π±Π°Π·Π°ΡΠ° ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΈ. ΠΡΠ΅ ΠΏΠ°ΠΊ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ: ΡΡΠ°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ, Π° Π½ΠΎΠ²Π°ΡΠ° ΡΠ΅ Π·Π°Π³ΡΡΠ²Π°. Π ΡΡΠ°ΡΠ°ΡΠ° ΡΠ΅ ΡΠΏΡΠ΅ΠΌ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ β ΡΠ°Π±ΠΎΡΠΈ. ΠΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π²Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠ°ΡΠΎΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½ΠΎΠ²Π° ΠΊΠΎΠ»ΠΎΠ½Π°, Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π² Π½Π΅Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΈΠ³Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ ΡΡΡ Π² Π΄ΡΡΠ³Π° ΠΊΠΎΠ»ΠΎΠ½Π°. Π ΡΠ»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ»Π΅Π΄ ΠΈΠ·ΠΌΠΈΠ½Π°Π»ΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΡΠ»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΠΌ ΡΡΠ°ΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ Π½Π΅Π½ΡΠΆΠ½ΠΈΡ ΡΡΠΈΠ³Π΅Ρ.
ΠΠΊΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ°. Π‘ Π΅Π΄Π½Π° Π΄ΡΠΌΠ°, Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° ΡΡΠ΅Π· K8S ΡΠ°Π±ΠΎΡΠ°, Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° CD. Π Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΠΎΠΏΠΈΡΠ° ΡΠΈ Π½Π° Π₯Π°Π±ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
