
ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π΄ΠΎΡΠΈ ΠΈ Π½Π°ΠΉ-ΠΌΠΎΡΠ½ΠΈΡΠ΅ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½ΡΠΆΠ΄ΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Kubernetes ΡΠ°Π±ΠΎΡΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡ Π»ΠΈΠΏΡΠ²Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠ°ΡΡΠΈ Π·Π° Π·Π°Π²ΡΡΡΠ΅Π½ΠΎΡΡ. ΠΠΈΠ½Π°Π³ΠΈ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠ° Π²Π°ΡΠ°ΡΠ° Π½ΡΠΆΠ΄Π° ΠΈΠ»ΠΈ ΠΊΡΠ΄Π΅ΡΠΎ Kubernetes Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ CD.
Π’ΡΠΊ ΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π½Π΅ΡΠ° Π·Π° ΡΠΎΠ·ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ ΡΠΈΡΠΎΠΊΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ 11 ΠΎΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅. ΠΠΈΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ Π² ΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΠΌ Ρ ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ β Π΄Π° Π³ΠΈ ΡΠ°Π·Π³Π»ΠΎΠ±ΠΈΠΌ Π½Π° Π²ΠΈΠ½ΡΡΠ΅ΡΠ° ΠΈ Π³Π°ΠΉΠΊΠΈ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π²ΡΡΡΠ΅. Π§Π°ΡΡ ΠΎΡ ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΡΡ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π° Kubernetes, Π° Π΄ΡΡΠ³ΠΈ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° Kubernetes.
Gatekeeper: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅
ΠΡΠΎΠ΅ΠΊΡ (OPA) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π½Π°Π΄ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΡΠ΅ΠΊΠΎΠ²Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ ingress ΠΈ Π·Π°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ Ρ service mesh. Π΄Π°Π²Π° Π½Π°ΡΠΈΠ²Π½Π° Π½Π° Kubernetes Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΈ, Π½Π°ΡΡΡΠ°Π²Π°ΡΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΡΠ΅Π· ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΎΠ² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π½Π° Kubernetes, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Webhooks, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Gatekeeper ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ OPA ΡΡΠ°Π²Π°Ρ ΡΠ°ΡΡ ΠΎΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes, Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½Π° Π½Π°ΠΌΠ΅ΡΠ°.
Gravity: ΠΡΠ΅Π½ΠΎΡΠΈΠΌΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π½Π° Kubernetes
ΠΠΊΠΎ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Kubernetes, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ°Ρ Helm chart, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΠΎΡΠ²Π° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes βΠΊΠ°ΠΊΡΠΎ Π΅β ΠΈ Π΄Π° Π³ΠΎ Π²Π½Π΅Π΄ΡΠΈΡΠ΅ Π½ΡΠΊΡΠ΄Π΅ Π΄ΡΡΠ³Π°Π΄Π΅?
ΠΏΡΠ°Π²ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ Π½Π° Kubernetes, ΡΠ΅Ρ
Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ βΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡβ. Π’Π°ΠΊΡΠ² ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠ΅ ΠΎΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ°ΠΉΠ» .tar, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ° ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, ΠΊΡΠ΄Π΅ΡΠΎ Kubernetes ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.
Gravity ΡΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅ Π΄ΡΡΠΆΠΈ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΊΠ°ΠΊΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄Π°Π»ΠΈ Kubernetes ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΠ»Π°ΡΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Gravity Π΄ΠΎΠ±Π°Π²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ RBAC ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½ΠΈΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈ.
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° Π²Π΅ΡΡΠΈΡ, Gravity 7, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ° ΠΎΠ±ΡΠ°Π·Π° Π½Π° Gravity Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ° ΠΈΠ·ΡΡΠ»ΠΎ Π½ΠΎΠ² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΠΎΠ±ΡΠ°Π·Π°. Gravity 7 ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Gravity. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Gravity ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° SELinux ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎ Ρ Teleport SSH ΡΠ»ΡΠ·Π°.
Kaniko: Π‘Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡ ΡΡΠ΅ΠΊ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈ ΠΎΠ±ΡΠ°Π· Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡ ΡΡΠ΅ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΡΠΊΡΠ΄Π΅ Π² ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes.
ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΡΡΠ΅Π΄Π°, Π½ΠΎ Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ΅ΡΠ²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Docker. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π°, Kaniko ΠΈΠ·Π²Π»ΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΈΡ ΠΎΠ±ΡΠ°Π·, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΡΡ Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΡΠ°Π²ΠΈ ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Kaniko Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° (ΠΌΠ°ΠΉ 2020 Π³., ΠΏΡΠΈΠΌ. ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°) Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Windows ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Kubecost: ΠΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Kubernetes
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Kubernetes ΡΠ° Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π»Π΅ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ Ρ.Π½. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ β Π² Π»Π΅Π²Π° ΠΈ ΡΡΠΎΡΠΈΠ½ΠΊΠΈ β ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Kubernetes?
ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° Kubernetes Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°ΠΊΡΡΠ°Π»Π½Π°ΡΠ° ΡΠ΅Π½Π° ΠΎΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°Π½ΠΈ Π½Π° ΡΠ°Π±Π»ΠΎΡΠΎ Ρ ΠΌΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠ΅Π½Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅Ρ. Π¦Π΅Π½ΠΈΡΠ΅ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, GPU ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° ΡΠ°Π·Π±ΠΈΡΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Kubernetes (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΠΎΠ΄, ΡΡΠ»ΡΠ³Π° ΠΈ Ρ.Π½.)
Kubecost ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ»Π΅Π΄ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²ΡΠ½ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Amazon S3 ΠΊΠΎΡΠΈ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π΄ΠΎ AWS. ΠΠ°Π½Π½ΠΈΡΠ΅ Π·Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π² Prometheus, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
Kubecost Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π°ΠΊΠΎ Π²ΠΈ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π·Π° 15 Π΄Π½ΠΈ. ΠΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π½ΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΎΡ 199$ Π½Π° ΠΌΠ΅ΡΠ΅Ρ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° 50 Π²ΡΠ·Π΅Π»Π°.
KubeDB: Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² Kubernetes
ΠΠ°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π° Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² Kubernetes. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Kubernetes ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° MySQL, PostgreSQL, MongoDB ΠΈ Redis, Π½ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ°Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Kubernetes Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΡΠ΅ΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΏΠΎΠΌΠ°Π³Π° Π²ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ Kubernetes ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ, ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ β ΡΠΎΠ²Π° ΡΠ° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΡΠ°Π²Π½ΠΈ ΡΠ°ΡΡΠΈ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΡΠ°Π±ΠΎΡΠΈ Π·Π° PostgreSQL, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° MySQL ( ΠΈΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΎΡΠ±Π΅Π»ΡΠ·Π° , ΠΏΡΠΈΠΌ. ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°).
Kube-monkey: Chaos Monkey Π·Π° Kubernetes
ΠΠ°ΠΉ-ΡΠΈΠ³ΡΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΡΡΡΠ΅Ρ-ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅ ΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ. Π’Π°Π·ΠΈ ΡΠ΅ΠΎΡΠΈΡ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Chaos Monkey ΠΎΡ Netflix, Ρ Π°ΠΎΡΠΈΡΠ΅Π½ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π°, Π·Π° Π΄Π° "ΡΡΠΈΠΌΡΠ»ΠΈΡΠ°" ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠΎ-ΡΡΡΠΎΠΉΡΠΈΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΡΠ°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ΅ΠΎΡΠΈΡ Π·Π° ΡΡΡΠ΅Ρ-ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅ Π·Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ. Π’ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ, ΠΊΠ°ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ±ΠΈΠ²Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΈ ΠΎΡ Π²Π°Ρ, ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π».
Kubernetes Ingress Controller Π·Π° AWS
Kubernetes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ½ΡΠ΅Π½ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Ρ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΡΠ΅Π· ΡΡΠ»ΡΠ³Π°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° AWS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π½ΠΎ Π½Π΅ Π³ΠΈ ΡΠ²ΡΡΠ·Π²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Ρ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Kubernetes. ΠΏΠΎΠΏΡΠ°Π²Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠΏΡΡΠΊ.
Π’ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° AWS Π·Π° Π²ΡΠ΅ΠΊΠΈ ingress ΠΎΠ±Π΅ΠΊΡ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π·Π° Π½ΠΎΠ²ΠΈ ingress ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΉΠΊΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π° CloudFormation, Π·Π° Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΡΡΠ°Π²Π° Π½Π΅ΠΏΠΎΠΊΡΡΠ½Π°ΡΠΎ. Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° CloudWatch Alarm ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π΄ΡΡΠ³ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΈ EC2 Auto Scaling Groups.
Kubespray: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Kubernetes
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° Π³ΠΎΡΠΎΠ² ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° 'ΠΆΠ΅Π»Π΅Π·Π½ΠΈ' ΡΡΡΠ²ΡΡΠΈ ΠΈ Π·Π°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ. Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ansible (Vagrant - Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ) Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ Π½ΡΠ»Π°ΡΠ° Ρ ΠΈΠ·Π±ΡΠ°Π½ΠΎΡΠΎ ΠΎΡ Π²Π°Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Flannel, Calico ΠΈ Π΄Ρ.) Π½Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΎΡ Π²Π°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π½Π° Linux ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° 'ΠΆΠ΅Π»Π΅Π·Π½ΠΈ' ΡΡΡΠ²ΡΡΠΈ.
Skaffold: ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π° Kubernetes
β Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° Google, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° CD ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄β Skaffold Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ, ΡΡΠ°ΡΡΠΈΡΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π²Π° Π²ΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ. Skaffold ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° ΡΡΡΠ°Π½Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ ΠΌΠ°Π»ΠΊΠΈ Π½ΡΠ°Π½ΡΠΈ Ρ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡΠ°. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ CICD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π½ΡΠΊΠΎΠΈ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Ρ Bazel ΠΎΡ Google.
Teresa: ΠΠ°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ PaaS Π½Π° Kubernetes
Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ PaaS Π½Π°Π΄ Kubernetes. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ ΠΎΡΠ±ΠΎΡΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ°Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠΈ. Π’ΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Ρ ΠΎΡΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ Ρ Kubernetes ΠΈ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΌΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
Tilt: ΠΠΎΡΠΎΠΊΠΎΠ²ΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes
, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Windmill Engineering, Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Dockerfile ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π·Π³ΡΡΡΠ° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅Π· ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Dockerfile. Tilt ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π²ΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ β Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠΈΠΊ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ Π΄Π° ΡΠΈΠΊΡΠΈΡΠ°ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π·Π° Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ Tilt, Π·Π° Π΄Π° Π³ΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Ρ ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
P.S. ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΠΌΠ΅ ΠΏΡΠΎΡΡΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Ρ Π½Π°ΡΠΈΡΠ΅ Π»ΡΠ±ΠΎΠΏΠΈΡΠ½ΠΈ ΡΡΡΠ΅. ΠΠ° Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π²Π΅ΡΠ΅ (Π½Π°Π΄ΡΠ²Π°ΠΌ ΡΠ΅!) Π½Π° ΠΎΡΠ»Π°ΠΉΠ½-ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²ΠΈ ΠΏΡΠ΅Π· ΡΠ΅Π²ΡΡΠ°ΡΠΈ. 8β10 ΡΠ΅Π²ΡΡΠ°ΡΠΈ 2021. Π 8β10 ΡΠ΅Π²ΡΡΠ°ΡΠΈ 2021. Π 12β14 ΡΠ΅Π²ΡΡΠ°ΡΠΈ. Π§Π΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΈ Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π·Ρ ΠΎΠΆΠ΄Π°Ρ ΠΌΠ΅ ΠΏΠΎ ΡΠΎΠΏΠ»Π°ΡΠ° ΠΈ Π΅Π½Π΅ΡΠ³ΠΈΠΉΠ½ΠΎ Π·Π°ΡΠ΅Π΄Π΅Π½Π° Π°ΡΠΌΠΎΡΡΠ΅ΡΠ° Π½Π° ΠΎΡΠ»Π°ΠΉΠ½ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ°ΠΊΠ²ΠΈΡΠΎ ΠΈ Π½Π°ΠΏΡΠ΅Π΄Π½ΠΈΡΠ°Π²ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ, ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΌΠ΅ΡΡΡΡ ΠΆΠΈΠ²ΠΎΡΠΎ ΡΠΎΠ²Π΅ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π°ΡΠ° Π°ΡΠΌΠΎΡΡΠ΅ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Ρ ΠΎΡΠ° Ρ ΠΎΠ±ΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
