ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΏΠΎΡΡΠΎΠ²Π΅, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠ±ΡΠΎΠΉΠ½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° 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, ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΉΠΌΠ°ΡΡΠΈ, ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. Π Π΄ΠΎΠΊΠ°ΡΠΎ Π΄Π½Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ΄Π°, Ρ 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: Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ
ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Ρ Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΡΠΌ Π½ΡΠΆΠ½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅. Π ΡΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Kubernetes β ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ. Π ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ Π²ΠΈ ΡΡΡΠ±Π²Π° ΠΏΠΎ-ΡΠΈΠ½Π° ΠΈ ΠΈΠ·ΠΈΡΠΊΠ°Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΊ ΡΡΠΊ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π² Istio Route Rules?
ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΠΌΠ°ΡΡΡΡΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΡΡ: Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈ.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ:
Kubernetes ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅: ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ β50 Π½Π° 50β
Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· Π² OpenShift, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ v1 ΠΈ v2. ΠΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠΎΠ΄ Π½Π° Kubernetes, Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΡΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ (evenly balanced round robin routing). ΠΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ²ΠΎΡ Π΄ΡΠ» Π·Π°ΡΠ²ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π±ΡΠΎΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π°, ΠΈΠ½Π°ΡΠ΅ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. 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
