ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΡΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΡΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Istio Service Mesh Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ Red Hat OpenShift ΠΈ Kubernetes.

Π§Π°ΡΡ ΠΏΡΡΠ²Π°, Π΄Π½Π΅ΡΠ½Π°ΡΠ°:
- Π©Π΅ ΠΎΠ±ΡΡΠ½ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° sidecar ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Kubernetes ΠΈ ΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅ΠΌΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ: Β«Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈΒ».
- ΠΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° Istio β ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅. ΠΠ° ΡΡΡ ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Istio, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ YAML ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΡΠ²ΠΈΡΠΈΡΠ΅. Π©Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° Canary Deployment. ΠΠΎΠ²ΠΎΡΠΎΠ΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ β 10 ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ Π·Π°Π½ΡΡΠΈΡ ΠΏΠΎ Istio.
Π§Π°ΡΡ Π²ΡΠΎΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΈΠ·Π»Π΅Π·Π΅, ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅:
- ΠΠ°ΠΊ Istio ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Pool Ejection Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ Circuit Breaker ΠΈ ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ° ΠΊΠ°ΠΊ Istio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΈΠ»ΠΈ Π»ΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Ρ pod ΠΎΡ ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Circuit Breaker ΠΎΡ ΠΏΡΡΠ²Π°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Istio ΡΡΠΊ. Π©Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΡΡΠ²ΠΈΡΠΈΡΠ΅ Π΄Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ YAML ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
Π§Π°ΡΡ ΡΡΠ΅ΡΠ°:
- Π Π°Π·ΠΊΠ°Π· Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈΠ»ΠΈ Π»Π΅ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌΠΈ Π² Istio. Π©Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ Prometheus, Jaeger ΠΈ Grafana Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ° Π½Π° OpenShift, Π·Π° Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π±Π΅Π· ΡΡΠΈΠ»ΠΈΡ.
- ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΊΡΠΌ ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΡΡΠΈΠΌ ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ fault injection Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ β ΡΡΠΉ ΠΊΠ°ΡΠΎ Π°ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Π·Π° ΡΠΎΠ²Π° ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ΄, ΠΈΠΌΠ° ΡΠΈΡΠΊ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ΠΌ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ°ΠΊΡΠ°Ρ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π·Π° Istio Service Mesh:
- Π©Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π° Π’ΡΠΌΠ½Π°ΡΠ° ΡΡΡΠ°Π½Π°. ΠΠΎ-ΡΠΎΡΠ½ΠΎ, ΡΠ΅ ΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Dark Launch ΡΡ Π΅ΠΌΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°ΡΡΠ³Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΡΠΊ Π΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Istio Π΄Π° ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΠ°ΡΠΈΠΊΠ°. Π Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ Π½Π° ΠΆΠΈΠ²ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π²Π»ΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π°ΠΊΡΠΈΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π΅ Π½Π°ΠΉ-ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
- ΠΡΠ½ΠΎΠ²Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ Π½Π° Dark Launch, ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»Π° Canary Deployment, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΡΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ»Π΅ΡΠ½ΠΈΠΌ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ΄. Π‘Π°ΠΌΠ°ΡΠ° Canary Deployment Π½Π΅ Π΅ Π½ΠΎΠ²ΠΎΡΡ, Π½ΠΎ Istio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡ Π΅ΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΈ YAML ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΈΠ·Π²ΡΠ½ Π²Π°ΡΠΈΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Istio Egress, Π·Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Istio ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
Π ΡΠ°ΠΊΠ°, Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌβ¦
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Istio β Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ Π² ΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° .
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ΅ΡΠ²ΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠ° Istio
Π‘Π΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° Π³ΡΡΠΏΠ° ΡΡΠ»ΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° ΠΎΡΠΊΠ°Π·ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π½Π΅ΡΠ°. Istio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ. ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ°ΠΉΠ½Π°ΡΠ° Π½Π° ΠΌΠ°Π³ΠΈΡΡΠ°? Istio ΡΠ²ΡΡΠ·Π²Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠΎΠΊΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° sidecar ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (sidecar β ΠΌΠΎΡΠΎΡΠΈΠΊΠ»Π΅ΡΠ½Π° ΠΊΠΎΠ»ΡΡΠΊΠ°), ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ, ΡΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ, ΡΠ΅ΡΠ°Π²Π° ΠΊΠ°ΠΊ, ΠΊΠΎΠ³Π° ΠΈ Π΄Π°Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ ΡΠΎΠ·ΠΈ ΡΡΠ°ΡΠΈΠΊ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ°. Istio ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ DevOps ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΊΠ°ΡΠΎ canary deployments, circuit breakers, fault injection ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠ°ΠΊ Istio ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Kubernetes
Π‘Π΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Istio β ΡΠΎΠ²Π° Π΅ sidecar ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ: ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°, circuit breakers, ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, fault injection, ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΉΠΌ-Π°ΡΡs, Π·Π΅ΡΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. Π ΠΌΠ°ΠΊΠ°Ρ Π΄Π½Π΅Ρ Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΡ ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ΄Π°, Ρ Istio ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°, Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ.
Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠΎΠ΄Π΅Π»Π° sidecar, Istio ΡΠ°Π±ΠΎΡΠΈ Π² Linux ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π΅Π΄ΠΈΠ½ -pod Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΈ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ° (inject) ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° (extract) ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΡΠ³Π»Π°ΡΠ½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π²Π°ΡΠ°ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΡΡ ΠΆΠΈΠ²Π΅Π΅ ΠΈΠ·Π²ΡΠ½ Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΊΠΎΠ΄ΡΡ ΡΡΠ°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎ-ΠΊΡΠ°ΡΡΠΊ.
ΠΠ°ΠΊΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ Π½Π΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΊΠΎΠ΄Π° ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡ Π½Π°ΡΠ° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½Π° Π½Π° ΠΠ’ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ. ΠΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° circuit breaker-ΠΈ ΠΈ fault injection? ΠΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°, Π½ΠΎ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΈ ΡΡΠ·Π΄Π°Π²Π°? ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΎ ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Ρ Π²ΡΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. Π ΡΠ°ΠΌΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΡΡΠ°Π½Π΅ ΠΏΠΎ-ΠΊΡΠ°ΡΡΠΊ ΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡ.
Π‘Π΅ΡΠ²ΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°
Istio, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ ΠΈΠ·Π²ΡΠ½ ΡΠ΅Ρ Π½ΠΈΡ ΠΊΠΎΠ΄ β ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Service Mesh. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ°Π½Π° Π³ΡΡΠΏΠ° ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ ΠΌΡΠ΅ΠΆΠ° ΠΎΡ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊ Istio ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° sidecar ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Π΄Π²Π΅ Ρ ΠΈ ΠΎΡ Π²ΠΈΡΠΎΡΠΈΠ½Π° Π½Π° ΠΏΡΠΈΡΠΈΡΠ΅: ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° Minishift, ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° Istio (Π΄Π° Π³ΠΎ Π½Π°ΡΠ΅ΡΠ΅ΠΌ "istio-system"), ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Istio ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ pod-ΠΎΠ²Π΅, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ²ΠΎΠΈΡΠ΅ deployment-ΠΈ ΠΈ Π²Π°ΡΠΈΡΠ΅ pod-ΠΎΠ²Π΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Istio. Π£ΠΏΡΠΎΡΡΠ΅Π½Π°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Istio, Π·Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, fault injection, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Istio β ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π±Π΅Π· Π΄Π° Π·Π°ΡΡΠ³Π°ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅Π»ΠΈΡ ΡΠ΅Π± ΡΡΠ°ΡΠΈΠΊ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ ΡΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ (Foo Corporation) ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ°. ΠΠ° ΡΠ΅Π»ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Istio, ΠΊΠΎΠ΅ΡΠΎ Π΄Π° ΡΡΡΡΠΈ @foocorporation.com Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎΡΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅. ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½ΠΈΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ°. Π Π·Π°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅, Π·Π° ΡΠ΅Π»ΡΠ° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π°Π½Π³Π°ΠΆΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.
Π ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠ»Π°ΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° ΡΠΎΠ²Π°?
Π, ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅. Istio ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½ Π΅ Π½Π° ΠΈ ΡΡΠ·Π΄Π°Π²Π° ΡΡΠ²ΡΠ΅ΠΌ ΠΌΠ°Π»ΡΠΊ ΠΎΠ²Π΅ΡΡ Π΅Π΄. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π²ΡΠ·ΠΌΠΎΠΆΠ½Π°ΡΠ° Π·Π°Π³ΡΠ±Π° Π² ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠ° ΠΎΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΠ°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π² ΡΠ΅ΠΎΡΠΈΡΡΠ°: Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΅ ΡΠΊΡΠΏΠΎ. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠΎΡΡΡΠ΅Ρ, Istio Π΅ ΡΠΎΡΡΡΠ΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ.
ΠΠ°ΡΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ
ΠΠΊΠΈΠΏΡΡ Π½Π° Red Hat Developer Experience Team ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎ ΠΏΠΎ Istio (Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ). Π’ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Linux, MacOS ΠΈ Windows, Π° ΠΊΠΎΠ΄ΡΡ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π° Java ΠΈ Node.js.
10 ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ Π·Π°Π½ΡΡΠΈΡ ΠΏΠΎ Istio
ΠΠ»ΠΎΠΊ 1 β ΠΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ
ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Istio
30 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ°ΠΏΠΎΠ·Π½Π°Π²Π°ΠΌΠ΅ ΡΠ΅ Ρ Service Mesh, ΡΡΠΈΠΌ ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Istio Π² Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠ° OpenShift.
Π Π°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π² Istio
30 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Istio, Π·Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° Ρ Spring Boot ΠΈ Vert.x.
ΠΠ»ΠΎΠΊ 2 β ΡΡΠ΅Π΄Π½ΠΎ Π½ΠΈΠ²ΠΎ
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π² Istio
60 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ·ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΡΡΠΎΠ΅Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π² Istio, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ OpenTracing ΡΡΠ΅Π· Prometheus ΠΈ Grafana.
ΠΡΠΎΡΡΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π² Istio
60 ΠΌΠΈΠ½ΡΡΠΈ
Π£ΡΠΈΠΌ ΡΠ΅ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π² Istio Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΡΠΈΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°.
Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ
60 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ°ΠΏΠΎΠ·Π½Π°Π²Π°ΠΌΠ΅ ΡΠ΅ Ρ ΡΠΌΠ½Π°ΡΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π² Istio, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ°.
ΠΠ»ΠΎΠΊ 3 β ΠΎΠΏΠΈΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»
Fault Injection Π² Istio
60 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ·ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ HTTP Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π·Π°Π±Π°Π²ΡΠ½ΠΈΡ, ΡΡΠΈΠΌ ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°ΠΌΠ΅ Ρ
Π°ΠΎΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
Circuit Breaker Π² Istio
30 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Siege Π·Π° ΡΡΡΠ΅Ρ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈ ΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΠΌ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΡΡΠ΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ, circuit breaker ΠΈ pool ejection.
Egress ΠΈ Istio
10 ΠΌΠΈΠ½ΡΡΠΈ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Egress ΠΌΠ°ΡΡΡΡΡΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Ρ Π²ΡΠ½ΡΠ½ΠΈ API ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
Istio ΠΈ Kiali
15 ΠΌΠΈΠ½ΡΡΠΈ
Π£ΡΠΈΠΌ ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Kiali, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° Π·Π° ΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΈ Π΄Π° ΠΈΠ·ΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΈΡΠ΅ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ.
Mutual TLS Π² Istio
15 ΠΌΠΈΠ½ΡΡΠΈ
Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Istio Gateway ΠΈ VirtualService, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·ΡΡΠ°Π²Π°ΠΌΠ΅ mutual TLS (mTLS) ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
ΠΠ»ΠΎΠΊ 3.1 β ΠΡΠ»Π±ΠΎΡΠΈΠ½Π½ΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅: Istio Service Mesh Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ

ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠ½ΠΈΠ³Π°ΡΠ°:
- ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ΅ΡΠ²ΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠ° service mesh.
- Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Istio ΠΈ Π½Π΅ΠΉΠ½Π°ΡΠ° ΡΠΎΠ»Ρ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Istio Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- ΠΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ;
- ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ;
- Π₯Π°ΠΎΡ-ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅;
- Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ;
- Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ ΡΡΠ΅Π· ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈ Grafana.
Π‘Π΅ΡΠΈΡ ΡΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΈ ΠΈ Istio
ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈ
Π’Π°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅ ΡΠ΅Π»ΠΈ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π½ΠΎ ΠΏΠΎΡΠ°ΠΏΡΠ½Π΅ Π² ΡΠ²Π΅ΡΠ° Π½Π° Istio. ΠΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, Π΄Π° Π²ΠΈ Π²Π΄ΡΡ Π½ΠΎΠ²ΠΈΠΌ Π΄Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅ Istio ΡΠ°ΠΌΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ, Π° Red Hat ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΎΠ²Π»Π°Π΄ΡΠ²Π°ΡΠ΅ OpenShift, Kubernetes, Linux ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Istio, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: , ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Π½Π°ΡΠΈΡ . ΠΠ΅ ΠΎΡΠ»Π°Π³Π°ΠΉΡΠ΅, Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΎΡΠ΅ Π΄Π½Π΅Ρ!
ΠΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Istio: Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ
ΠΈ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Ρ Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ pod-ΠΎΠ²Π΅. Π ΡΠΎΠ²Π° ΠΈ Π΅ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Kubernetes β ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. Π ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎ-ΡΠΈΠ½ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½o ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠ°ΠΊ ΡΡΠΊ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Istio Route Rules?
ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ β ΡΠΎΠ²Π° ΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΠΌΠ°ΡΡΡΡΡ. ΠΡΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΎΠ±ΡΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΡΡ: Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° HTTP Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ°.
ΠΠ΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΈ:
Kubernetes ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅: ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ "50 Π½Π° 50"
Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° Π² OpenShift, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ v1 ΠΈ v2. ΠΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ pod Π² Kubernetes, ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΡΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ (evenly balanced round robin routing). ΠΡΠ΅ΠΊΠΈ pod ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ²ΠΎΡ Π΄ΡΠ» ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ Π±ΡΠΎΡ Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΈΠ½Π°ΡΠ΅ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅. Istio ΠΎΠ±Π°ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠΎΠ²Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ ΡΡΡΠ½ΠΎ.
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΠΌΠ΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΅ΡΠ²ΠΈΡ Π½Π° OpenShift - recommendation-v1 ΠΈ recommendation-v2.
ΠΠ° ΡΠΈΡ. 1 ΡΠ΅ Π²ΠΈΠΆΠ΄Π°, ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠ²ΠΈΡ Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π² Π΅Π΄ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΡΠ΅ ΡΠ΅Π΄ΡΠ²Π°Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ
: 1-2-1-2-β¦ Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Kubernetes ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅:

Π’Π΅ΠΆΠ΅ΡΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅
ΠΠ° ΡΠΈΡ. 2 Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ Π±ΡΠΎΡ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ° v2 ΠΎΡ Π΅Π΄Π½Π° Π½Π° Π΄Π²Π΅ (ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° oc scale βreplicas=2 deployment/recommendation-v2). ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ v1 ΠΈ v2 Π²Π΅ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ Π² ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ "Π΅Π΄Π½ΠΎ ΠΊΡΠΌ ΡΡΠΈ": 1-2-2-1-2-2-β¦:

ΠΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Istio
Istio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΠΏΠΎ Π½ΡΠΆΠ½ΠΈΡ Π½ΠΈ Π½Π°ΡΠΈΠ½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΠ΅Π»ΠΈΡ ΡΡΠ°ΡΠΈΠΊ ΡΠ°ΠΌΠΎ Π½Π° recommendation-v1 Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡ yaml ΡΠ°ΠΉΠ» Istio:

Π’ΡΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ: pod-ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ ΡΠΏΠΎΡΠ΅Π΄ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅. Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅ΡΠΈΠΊΠ΅ΡΡΡ v1. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ "weight: 100" ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ 100% ΠΎΡ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ° ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ pod-ΠΎΠ²Π΅ Π½Π° ΡΡΡΠ²ΠΈΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΅ΡΠΈΠΊΠ΅Ρ v1.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅ (Canary Deployment)
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° weight, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΡΠΎΡΠΈΠΌ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ Π΄Π²Π°ΡΠ° pod-Π°, ΠΈΠ³Π½ΠΎΡΠΈΡΠ°ΠΉΠΊΠΈ Π±ΡΠΎΡ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈΡΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅, ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ 90% ΠΎΡ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° v1 ΠΈ 10% β Π½Π° v2:

ΠΡΠ΄Π΅Π»Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΊΡΠΌ ΡΠ΅ΡΠ²ΠΈΠ·Π° v2, Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ β ΠΊΡΠΌ v1. ΠΠ° ΡΠ΅Π»ΡΠ° ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° user-agent Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ:

Π‘Π΅Π³Π° Π΅ Π²Π°Ρ ΡΠ΅Π΄
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈ ΠΌΠΎΡΠΈΠ²ΠΈΡΠ° Π΄Π° ΠΏΠΎΡΡΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Istio. Π’Π΅ΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΡΡΠΊ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°.
Π ΠΏΠΎΠΌΠ½Π΅ΡΠ΅, ΡΠ΅ Ops, Π° Π½Π΅ Dev
ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ ΠΌΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ»ΡΡΠ°ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ. Istio Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈΡΠ΅ ΠΏΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° ΠΠ’ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°.
Π’Π°ΠΊΠ° ΡΠ΅, Π½Π΅ΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ΄Π΅Ρ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ: Π²ΠΈΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ Π½ΠΈΡΠΎ Π² ΠΊΠΎΠ΄Π° ΡΠΈ. ΠΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΈΠ»ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ΄Π°.
ΠΠΊΠ»ΡΡΠ΅ΡΠ΅ Π²ΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ
Π‘Π°ΠΌΠΎ ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²ΠΈ ΠΎΡΠ²Π°ΡΡ Π°Π½Π°Π»ΠΈΠ·ΡΡ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ. ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠΈΡΠ΅ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ ΡΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π²Π°ΡΠΈΡΠ΅ ? ΠΠ΅Π³ΠΊΠΎ! ΠΡΠΆΠ½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome? ΠΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ Π΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ΅.
ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈ
Π§Π΅ΡΠ΅Π½Π΅ΡΠΎ Π·Π° Istio, Kubernetes ΠΈ OpenShift Π΅ Π΅Π΄Π½ΠΎ, Π½ΠΎ Π·Π°ΡΠΎ Π΄Π° Π½Π΅ ΡΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΈ ΡΡΡΠ΅? ΠΠΊΠΈΠΏΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ (Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ), ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΡΠ²ΠΎΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±ΡΡΠ·ΠΎ. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΡΡΡΠΎ Π΅ 100% open source, Π·Π°ΡΠΎΠ²Π° Π΅ Π½Π°Π»ΠΈΡΠ½ΠΎ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ. Π€Π°ΠΉΠ»ΡΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° macOS, Linux ΠΈ Windows, Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π° Java ΠΈ node.js (ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΈΠΌΠ° Π²Π΅ΡΡΠΈΠΈ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ). ΠΡΠΎΡΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠΈ .
Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΠΎΡΡ: ΡΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΊΡΠ°ΡΠΈΠ²ΠΎ
ΠΠ½Π΅Ρ Π²ΠΈΠ΄ΡΡ
ΡΠ΅ Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Istio. Π ΡΠ΅Π³Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΡΡΠΎΡΠΎ, Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΠΎΠ²Π° ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΠΎΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
