Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

ΠŸΡ€Π°Π·Π΄Π½ΠΈΠΊΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ, ΠΈ ΠΌΡ‹ возвращаСмся с нашим Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ постом ΠΈΠ· сСрии ΠΏΠΎ Istio Service Mesh.

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

БСгодняшняя Ρ‚Π΅ΠΌΠ° – Circuit Breaker, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° русский элСктротСхничСский ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «автоматичСский Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒΒ», Π² просторСчии – Β«Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹Β». Волько Π² Istio этот Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ ΠΊΠΎΡ€ΠΎΡ‚Π½ΡƒΠ²ΡˆΡƒΡŽ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ Ρ†Π΅ΠΏΡŒ, Π° нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

Как это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΈΠ΄Π΅Π°Π»Π΅

Когда микросСрвисы ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Kubernetes’ом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OpenShift, ΠΎΠ½ΠΈ автоматичСски ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π²Π²Π΅Ρ€Ρ…-Π²Π½ΠΈΠ· Π² зависимости ΠΎΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ микросСрвисы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² pod’ах, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сразу нСсколько экзСмпляров ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ микросСрвиса, Π° Kubernetes Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. И – Π² ΠΈΠ΄Π΅Π°Π»Π΅ – всС это Π΄ΠΎΠ»ΠΆΠ½ΠΎ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠœΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ микросСрвисы – малСнькиС ΠΈ эфСмСрныС. Π­Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, которая здСсь ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ простоту возникновСния ΠΈ исчСзновСния, часто Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚. Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΌΠ΅Ρ€Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ экзСмпляра микросСрвиса Π² pod’С – Π²Π΅Ρ‰ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅, OpenShift ΠΈ Kubernetes с этим Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ, ΠΈ всё Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ – Π½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° самом Π΄Π΅Π»Π΅

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экзСмпляр микросСрвиса, Ρ‚ΠΎ бишь ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΏΡ€ΠΈΡˆΠ΅Π» Π² Π½Π΅Π³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ: Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ (ошибка 503), Π»ΠΈΠ±ΠΎ – Ρ‡Ρ‚ΠΎ нСприятнСС – Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚, Π½ΠΎ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΎΠ½ ΠΏΠΎΠ΄Π³Π»ΡŽΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° запросы, Π½ΠΎ ΠΈΠ· ΠΏΡƒΠ»Π° ΠΎΠ½ ΠΏΡ€ΠΈ этом автоматичСски Π½Π΅ убираСтся. Π§Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² этом случаС? ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ? Π£Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· схСмы ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ? И Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ «слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΒ» – сколько это Π² Ρ†ΠΈΡ„Ρ€Π°Ρ…, ΠΈ ΠΊΡ‚ΠΎ ΠΈΡ… опрСдСляСт? ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, просто Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΠ°ΡƒΠ·Ρƒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·Π΄Π½Π΅Π΅? Если Π΄Π°, Ρ‚ΠΎ насколько ΠΏΠΎΠ·Π΄Π½Π΅Π΅?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Pool Ejection Π² Istio

И здСсь Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Istio со своими Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°ΠΌΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Circuit Breaker, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΠ· ΠΏΡƒΠ»Π° рСсурсов ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, рСализуя ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Pool Ejection.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ обнаруТСния ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ (outlier detection), Istio Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΡ€ΠΈΠ²Ρ‹Π΅ pod’ы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ ряда, ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ· ΠΏΡƒΠ»Π° рСсурсов Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ называСтся Β«ΠΎΠΊΠ½ΠΎ сна» (sleep window).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Kubernetes Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ OpenShift, Π½Π°Ρ‡Π½Π΅ΠΌ со ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… микросСрвисов ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Red Hat Developer Demos. Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° pod’а, v1 ΠΈ v2, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ. Когда ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Istio Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Kubernetes ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ примСняСт Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Готовимся ΠΊ сбою

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Pool Ejection, Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Istio. Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ запросы ΠΌΠ΅ΠΆΠ΄Ρƒ pod’ами Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ 50/50. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ количСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² v2 с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Π΄Π²ΡƒΡ…, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

oc scale deployment recommendation-v2 --replicas=2 -n tutorial

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ распрСдСлялся ΠΌΠ΅ΠΆΠ΄Ρƒ pod’ами Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ 50/50.

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΏΡ€Π°Π²ΠΈΠ»Π°:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
МоТно ΠΏΡ€ΠΈΠ΄Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π° этом скринС Π½Π΅ 50/50, Π° 14:9, Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ситуация выправится.

УстраиваСм сбой

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ ΠΈΠ· строя ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² v2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас Π±Ρ‹Π» ΠΎΠ΄ΠΈΠ½ исправный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ v1, ΠΎΠ΄ΠΈΠ½ исправный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ v2 ΠΈ ΠΎΠ΄ΠΈΠ½ нСисправный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ v2:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Чиним сбой

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ нСисправный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈ настала ΠΏΠΎΡ€Π° Pool Ejection. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‡Π΅Π½ΡŒ простого ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΌΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ этот сбойный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… схСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° 15 сСкунд Π² расчСтС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ сам вСрнСтся Π² исправноС состояниС (Π»ΠΈΠ±ΠΎ пСрСзапустится, Π»ΠΈΠ±ΠΎ восстановит ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит этот ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
Как Π²ΠΈΠ΄Π½ΠΎ, нСисправный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ v2 большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ ΡƒΠ±Ρ€Π°Π»ΠΈ ΠΈΠ· ΠΏΡƒΠ»Π°. Но ΠΏΠΎ истСчСнии 15 сСкунд ΠΎΠ½ автоматичСски вСрнСтся Π² ΠΏΡƒΠ». БобствСнно, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Pool Ejection.

НачинаСм ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ

Pool Ejection Π² сочСтании с возмоТностями ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Istio позволяСт Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ автоматичСской Π·Π°ΠΌΠ΅Π½Ρ‹ нСисправных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ, Π° Ρ‚ΠΎ ΠΈ вовсС ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ простои ΠΈ сбои.
 
Π£ NASA Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π³Ρ€ΠΎΠΌΠΊΠΈΠΉ Π΄Π΅Π²ΠΈΠ· – Failure Is Not an Option, Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ считаСтся Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»Π΅Ρ‚ΠΎΠ² Π”ΠΆΠΈΠ½ ΠšΡ€Π°Π½Ρ†. На русский Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ пСрСвСсти ΠΊΠ°ΠΊ Β«ΠŸΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅ – это Π½Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Β», ΠΈ смысл здСсь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всё ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, имСя Π½Π° Ρ‚ΠΎ достаточно Π²ΠΎΠ»ΠΈ. Однако Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹ Π½Π΅ просто ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ, ΠΎΠ½ΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹, Π²Π΅Π·Π΄Π΅ ΠΈ Π²ΠΎ всСм. И ΠΊΠ°ΠΊ ΠΆΠ΅ с Π½ΠΈΠΌΠΈ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² случаС микросСрвисов? На наш взгляд, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π΅ Π½Π° силу Π²ΠΎΠ»ΠΈ, Π° Π½Π° возмоТности ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Kubernetes, Red Hat OpenShift, ΠΈ Istio.

Istio, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ писали Π²Ρ‹ΡˆΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ прСкрасно Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡˆΡƒΡŽ сСбя Π² физичСском ΠΌΠΈΡ€Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ автоматичСских Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ. И ΠΊΠ°ΠΊ элСктричСский Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ участок Ρ†Π΅ΠΏΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Circuit Breaker Π² Istio Ρ€Π°Π·ΠΌΡ‹ΠΊΠ°Π΅Ρ‚ связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ запросов ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π² порядкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° сСрвСр ΡƒΠΏΠ°Π» ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π» Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ большС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ каскад Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊ Π½Π΅ΠΌΡƒ сСрвисах ΠΈ, ΠΊΠ°ΠΊ слСдствиС, ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы Π² Ρ†Π΅Π»ΠΎΠΌ, Π½ΠΎ ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ запросов ΠΊ ΠΈ Ρ‚Π°ΠΊ ΡƒΠΆΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ сСрвису, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ усугубляСт ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

Circuit Breaker Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ

Circuit Breaker – это прокси, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΊ запросов ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅. Когда эта Ρ‚ΠΎΡ‡ΠΊΠ° пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ – Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… настроСк – Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ, прокси Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ связь с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. Π’Ρ€Π°Ρ„ΠΈΠΊ послС этого пСрСнаправляСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π½Ρƒ просто ΠΈΠ·-Π·Π° балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Бвязь остаСтся Ρ€Π°Π·ΠΎΠΌΠΊΠ½ΡƒΡ‚ΠΎΠΉ (open) Π½Π° протяТСнии Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° сна, скаТСм, Π΄Π²Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ считаСтся ΠΏΠΎΠ»ΡƒΡ€Π°Π·ΠΎΠΌΠΊΠ½ΡƒΡ‚ΠΎΠΉ (half-open). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос опрСдСляСт дальнСйшСС состояниС связи. Если с сСрвисом всС ОК, связь возвращаСтся Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС ΠΈ ΠΎΠΏΡΡ‚ΡŒ становится Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎΠΉ (closed). Если ΠΆΠ΅ с сСрвисом ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ, связь размыкаСтся ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ сна. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит упрощСнная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° смСны состояний Circuit Breaker:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС это происходит Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, систСмной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π°ΠΌ придСтся Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ свои прилоТСния Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Circuit Breaker, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΆΠ΅, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сущСствованиС сСрвиса. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ bulkhead pattern, Π½ΠΎ ΠΎΠ½ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Circuit Breaker Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ запустим Π½Π° OpenShift Π΄Π²Π΅ вСрсии нашСго микросСрвиса Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. ВСрсия 1 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π° Π²ΠΎΡ‚ Π² v2 ΠΌΡ‹ встроим Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π° Π½Π° сСрвСрС. Для просмотра Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инструмСнт siege:

siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
ВсС Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ? На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Ρƒ нас 100 % Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ – максимальная Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ составляСт Ρ†Π΅Π»Ρ‹Ρ… 12 сСкунд. Π­Ρ‚ΠΎ явно ΡƒΠ·ΠΊΠΎΠ΅ мСсто, ΠΈ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°ΡΡˆΠΈΠ²Π°Ρ‚ΡŒ.

Для этого ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Istio ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ обращСния ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ с использованиСм Circuit Breaker:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
ПослСдняя строка с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ httpMaxRequestsPerConnection сигнализируСт, Ρ‡Ρ‚ΠΎ связь с Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π·ΠΌΡ‹ΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ – Π²Ρ‚ΠΎΡ€ΠΎΠ΅ – ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒΡΡ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наш ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ тормозящий сСрвис, Ρ‚Π°ΠΊΠΈΠ΅ ситуации Π±ΡƒΠ΄ΡƒΡ‚ пСриодичСски Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Istio Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ 503, Π° Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ siege:

Istio Circuit Breaker: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ нСисправныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

ОК, Ρƒ нас Π΅ΡΡ‚ΡŒ Circuit Breaker, Ρ‡Ρ‚ΠΎ дальшС?

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ автоматичСскоС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ трогая исходный ΠΊΠΎΠ΄ самих сСрвисов. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Circuit Breaker ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Pool Ejection, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΡƒΠ»Π° рСсурсов Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΡ‚ Π² Π½ΠΎΡ€ΠΌΡƒ, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΡ… состояниС с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ – Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, это Π΄Π²Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ sleepWindow).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ прилоТСния Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ 503 всС Π΅Ρ‰Π΅ задаСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π΅Π³ΠΎ исходного ΠΊΠΎΠ΄Π°. БущСствуСт мноТСство стратСгий Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Circuit Breaker, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ ситуации.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС: расскаТСм ΠΎ трассировкС ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ встроСны ΠΈΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Istio, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ошибки Π² систСму Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com