Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΠ° ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π΅ΡΡΡΠ°Ρ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² (Docker Registry ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π°Ρ
) Π² ΡΠ΅Π°Π»ΠΈΡΡ
ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
CI/CD-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² Π΄Π»Ρ cloud native-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
Π² Kubernetes. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ
ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΈΡΡΠΊΠΈ, ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Open Source-ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈ, Π·Π°Π½ΠΈΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π΅Π³ΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ. ΠΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΌΠ΅ΡΡΠ°, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² registry, ΠΏΡΠΈΠ½ΡΡΠΎ:
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²;
- ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Ρ
Π²Π°ΡΠ°Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ
ΡΠ΅Π³ΠΎΠ² (latest
, main
, test
, boris
ΠΈ Ρ.ΠΏ.), ΡΠ΅Π΅ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ
ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΡΡΠΊΠ΅. ΠΠ΅Π΄Ρ Π²ΡΠ΅ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΡΡΡ, Π° Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ (Π²ΡΡ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΌ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°).
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ CI/CD ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΠΈ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. Π Π½ΡΠΌ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π·, ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ, Π²ΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Kubernetes-ΠΊΠΎΠ½ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π° Π΅ΡΠ»ΠΈ Π²ΡΡ Ρ ΠΎΡΠΎΡΠΎ β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΡ ΠΎΠ΄ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΡΡΠΎ Π΄Π°Π²Π½ΠΎ Π½Π΅ rocket science, Π° ΠΎΠ±ΡΠ΄Π΅Π½Π½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ β ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΈ Π΄Π»Ρ Π²Π°Ρ, ΡΠ°Π· Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π±Π°Π³ΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° Π²Π΅Π΄Π΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Π° ΡΠ΅Π»ΠΈΠ·Ρ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² Π΄Π΅Π½Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π° Π·Π½Π°ΡΠΈΡ β Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π² registry. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΎΡΡΡΠΎ Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ registry, Ρ.Π΅. ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ².
ΠΠΎ ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π°ΠΊΡΡΠ°Π»Π΅Π½ Π»ΠΈ ΠΎΠ±ΡΠ°Π·?
ΠΡΠΈΡΠ΅ΡΠΈΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π°
Π ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΎΠ²Ρ:
1. ΠΠ΅ΡΠ²ΡΠΉ (ΡΠ°ΠΌΡΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΉ ΠΈΠ· Π²ΡΠ΅Ρ
) β ΡΡΠΎ ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Kubernetes. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ
ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠ°ΠΌ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΠΏΡΠΎΡΡΠΎΠ΅ΠΌ production (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π·Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ) ΠΈΠ»ΠΈ ΡΠ²Π΅ΡΡΠΈ Π½Π° Π½Π΅Ρ ΡΡΠΈΠ»ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠΎΠ½ΡΡΡΠΎΠ². (ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΌΡ Π΄Π°ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ
2. ΠΡΠΎΡΠΎΠΉ (ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π½ΠΎ ΡΠΎΠΆΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ) β ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΠΊΠ°ΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΠ·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ Ρ Helm ΡΡΠΎ ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΠ΅Π»ΠΈΠ·Π°. (Π ΡΠ»ΠΎΠ²Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Helm Π»ΠΈΠΌΠΈΡ Π² 256 ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ, Π½ΠΎ Π²ΡΡΠ΄ Π»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΉ?..) ΠΠ΅Π΄Ρ ΠΌΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΈ Ρ ΡΠ°Π½ΠΈΠΌ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡ ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Ρ.Π΅. Β«ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡΒ» Π½Π° Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
3. Π’ΡΠ΅ΡΠΈΠΉ β ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²: Π²ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ PR, ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ°Π·, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ: ΡΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
4. Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ β ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΡΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ.Π΅. ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ: v1.0.0, 20.04.01, sierra ΠΈ Ρ.Π΄.
NB: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π±ΡΠ»ΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Kubernetes), ΡΡΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Ρ container registry, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ²: Π² Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π³ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· registry. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°, Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΎΠ²*.
* ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ container registry. ΠΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ: Azure CR, Docker Hub, ECR, GCR, GitHub Packages, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io β ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ΅Π½ΡΡΠ±ΡΡ’2020.
Π’Π°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΠ΅ΡΠ²ΡΡΡΠΎΠΌΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡ β ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Π±ΠΎΠ»Π΅Π΅ ΠΆΠ΅ΡΡΠΊΡΡ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΠ°Π΄ΡΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ) β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅ΡΠΈΠΉ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ β ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² β ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠ°ΡΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄: ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ², Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ allow lists ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΡ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ Π΄Π²ΡΠΌΡ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈ: ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Kubernetes).
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ workflow Π² Git
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π² Git:
ΠΠΊΠΎΠ½ΠΊΠΎΠΉ Ρ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π½Π° ΡΡ
Π΅ΠΌΠ΅ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π·Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π·Π²ΡΡΠ½ΡΡΡ Π² Kubernetes Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ², ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΈ Ρ.Π΄.) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΡΠ΅Π»Π΅ΠΉ.
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ (Π½Π΅ ΡΠ΄Π°Π»ΡΡΡ) ΠΎΠ±ΡΠ°Π·Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌ ΡΠ΅Π³ΠΎΠ²?
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ°Π΄ΡΠ΅Ρ.
Π§ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ / ΡΠΈΡΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²?
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ°Π» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΡΡΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΡΡ Π΅ΡΡ Π΄Π°Π»ΡΠΊ ΠΎΡ ΠΈΠ΄Π΅Π°Π»Π°. ΠΠ΅Π΄Ρ Ρ Π½Π°Ρ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π·Ρ Π² ΡΠ΅Π΅ΡΡΡΠ΅ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°Π·Π²ΡΡΠ½ΡΡΡΠ΅ Π² K8s) Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π±Π°Π³ΠΎΠ²β¦
Π Π΅Π·ΡΠΌΠΈΡΡΡ ΡΠ»ΠΎΠΆΠΈΠ²ΡΡΡΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ: Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΡΠ΅Π΅ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΡΠΈΡΡΠΊΠ΅, Π° Π³Π»Π°Π²Π½Π°Ρ ΡΠΎΠΌΡ ΠΏΡΠΈΡΠΈΠ½Π° β Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Β«ΡΠ½Π°ΡΡΠΆΠΈΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Docker Registry API (ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΉ API ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ).
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΈΡΠΊΠ°Π»ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΎ Π±Ρ ΠΎΡΠΈΡΡΠΊΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π΅ΡΡΡΡβ¦
ΠΠ°Ρ ΠΏΡΡΡ ΠΊ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²
ΠΡΠΊΡΠ΄Π° ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΠ°Ρ Π³ΡΡΠΏΠΏΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π·Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠ²ΡΡ
, ΠΏΠΎΠΌΠΎΠ³Π°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ CI/CD. Π Π³Π»Π°Π²Π½ΡΠΉ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β Open Source-ΡΡΠΈΠ»ΠΈΡΠ°
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅* ΠΎΠ±ΡΠ°Π·ΠΎΠ² (ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ) β ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ. Π ΡΠ°Π· ΠΎΠ±ΡΠ°Π·Ρ ΡΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠΎ β Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π΅ Π±Π΅Π·Π³ΡΠ°Π½ΠΈΡΠ½ΠΎ β Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΈ Π·Π° ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΡΡΠΊΡ. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ ΡΡΠΏΠ΅Ρ Π° Π² ΡΡΠΎΠΌ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡ Π²ΡΠ΅ΠΌ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ, ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅.
* Π₯ΠΎΡΡ ΡΠ°ΠΌΠΈ ΡΠ΅Π΅ΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ (Docker Registry, GitLab Container Registry, Harbor ΠΈ Ρ.Π΄.), ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π΅ΡΡΡΠ°, Ρ.ΠΊ. Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½Π΅ ΡΠ°ΠΌΠΈΡ ΡΠ΅Π΅ΡΡΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ .
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ werf ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΡΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΠΌΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ.
ΠΡΠ°ΠΊ, ΠΌΡ Π·Π°Π½ΡΠ»ΠΈΡΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² β Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Ρ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΡΠΎ ΡΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΡΠ΅Π΅ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΡΠ°Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Docker Registry API Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡ ΡΠ΅Ρ
ΠΆΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΅Π³ΠΎΠ² ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡ
ΡΠΎΠ·Π΄Π°Π½ΠΈΡ (ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
Π²ΡΡΠ΅). Π Π½ΠΈΠΌ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ allow list Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² ΡΠ°Π·Π²ΡΡΠ½ΡΡΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, Ρ.Π΅. Kubernetes. ΠΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· Kubernetes API ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ image
.
Π’Π°ΠΊΠΎΠ΅ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ»ΠΎ ΡΠ°ΠΌΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ β1), Π½ΠΎ ΡΡΠ°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΡΠΈΡΡΠΊΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ β ΠΈ ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ β ΡΠ°Π³ΠΎΠΌ ΡΡΠ°Π»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ Git.
Π‘Ρ Π΅ΠΌΡ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ
ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ, ΠΈ Π²ΡΡΡΡΠΎΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° ΡΡ
Π΅ΠΌΠ°Ρ
ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΠΈΡΠ°Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΎΠΏΡΠΈΡ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (git-branch
, git-commit
ΠΈΠ»ΠΈ git-tag
) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π CI-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΡΡΡΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΠ²ΡΠ·ΡΠ²Π°Π»ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ Git-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ, Ρ
ΡΠ°Π½Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π² Π»Π΅ΠΉΠ±Π»Π°Ρ
.
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Git ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΡΠ°Π²Π΄Ρ:
- ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΠΊΠΈ/ΡΠ΅Π³Π° Π² Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΠ»ΠΈΡΡ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ Π² registry.
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Git-ΡΠ΅Π³Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅Π³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅, ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»Π° Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ, Π½ΠΎ Π²ΡΠΊΠΎΡΠ΅ Π½Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π» Π½ΠΎΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ². ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π° Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡ
Π΅ΠΌ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Git-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΡΠ΄ΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². (ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠ΅ΠΌΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π²ΡΠ΅ ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ
ΠΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
ΠΠΎΡΠ΅ΠΌΡ? ΠΡΠΈ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ content-based ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git. ΠΡΠΈ ΠΎΡΠΈΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π³ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠ΅Π΅ΡΡΡ.
ΠΠ»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΡΠΈΡΡΠΊΠΈ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΉΡΠΈ ΠΎΡ ΡΡ Π΅ΠΌ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° ΠΌΠ΅ΡΠ°-ΠΎΠ±ΡΠ°Π·Π°Ρ , ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΊΡ ΠΈΠ·:
- ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ (ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ ΠΎΠ±ΡΠ°Π· Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²);
- ΠΈ Π½Π°ΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ°Π·Ρ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π±ΡΠ»Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠ²ΡΠ·Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΎΠ² Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² Git.
ΠΡΠΎΠ³ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ±ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΡΡΠ°Π»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠ° Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ:
- ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ references, Ρ.Π΅. Git-ΡΠ΅Π³Π°ΠΌΠΈ ΠΈΠ»ΠΈ Git-Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ;
- ΠΈ Π»ΠΈΠΌΠΈΡΠΎΠΌ ΠΈΡΠΊΠΎΠΌΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ reference ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°.
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ β Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΡΠ°Π»Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
cleanup:
keepPolicies:
- references:
tag: /.*/
limit:
last: 10
- references:
branch: /.*/
limit:
last: 10
in: 168h
operator: And
imagesPerReference:
last: 2
in: 168h
operator: And
- references:
branch: /^(main|staging|production)$/
imagesPerReference:
last: 10
Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
- Π‘ΠΎΡ ΡΠ°Π½ΡΡΡ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ 10 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Git-ΡΠ΅Π³ΠΎΠ² (ΠΏΠΎ Π΄Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π³Π°).
- Π‘ΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 2 ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅Π΄Π΅Π»Ρ, Π΄Π»Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 Π²Π΅ΡΠΎΠΊ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅Π΄Π΅Π»Ρ.
- Π‘ΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΏΠΎ 10 ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄Π»Ρ Π²Π΅ΡΠΎΠΊ
main
,staging
ΠΈproduction
.
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ:
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ² ΠΈΠ· container registry.
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Kubernetes, Ρ.ΠΊ. ΠΈΡ ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π»ΠΈ, ΠΎΠΏΡΠΎΡΠΈΠ² K8s API.
- Π‘ΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Git-ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΠΌ.
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ, Π²ΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Ρ werf:
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ werf, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² β Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ ΠΊ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²) β ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
/ΡΡΠΈΠ»ΠΈΡΠ°Ρ
. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠ΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΈ Π½Π°ΠΉΡΠΈ ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΡΡΠ΅ΠΊΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΡΡΠΎΠΈΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³Π»Π°Π΄ΠΊΠΎ. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ ΠΏΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Π½Π° Π²Π°Ρ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ registry ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄.
- ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π°.
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ container registry, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΡ ΠΎΡΠΈΡΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Β«Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΌΠΈΡΒ»: ΠΎΠ±ΡΠ°Π·Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Kubernetes, ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
- ΠΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ CI/CD-ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ , ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠΌΠΈ Docker-ΠΎΠ±ΡΠ°Π·ΠΎΠ².
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
Content-based tagging Π² ΡΠ±ΠΎΡΡΠΈΠΊΠ΅ werf: Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? Β»; - Β«
3-way merge Π² werf: Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Kubernetes Ρ Helm βΠ½Π° ΡΡΠ΅ΡΠΎΠΈΠ΄Π°Ρ β Β»; - Β«
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° monorepo ΠΈ multirepo Π² werf ΠΈ ΠΏΡΠΈ ΡΡΠΌ Π·Π΄Π΅ΡΡ Docker Registry Β»; - Β«
Π Π΅Π»ΠΈΠ· werf 1.1: ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² ΡΠ±ΠΎΡΡΠΈΠΊΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ ΠΏΠ»Π°Π½Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com