Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Service Mesh?

И снова здравствуйтС!.. Π’ ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта курса «АрхитСктор ПО» ΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Service Mesh?

Service Mesh – это ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ инфраструктурный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ с Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого объСма сСтСвых мСТпроцСссных ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ интСрфСйсами прилоТСния (API). Service Mesh обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ, Π½Π°Π΄Ρ‘ΠΆΠ½ΡƒΡŽ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ часто эфСмСрными сСрвисами инфраструктуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Service Mesh прСдоставляСт Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов, балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚Ρ€Π°ΡΡΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ шаблона автоматичСского Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (circuit breaker).
Service Mesh ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСализуСтся ΠΏΡƒΡ‚Π΅ΠΌ прСдоставлСния ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ экзСмпляру сСрвиса экзСмпляра прокси, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Sidecar. Sidecar ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами, производят ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ абстрагировано ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ прилоТСния Π² сСрвисах, Π° систСмныС администраторы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Service Mesh ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Istio ΠΎΡ‚ Google, IBM ΠΈ Lyft, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ являСтся самый извСстной Service Mesh-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. А Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатывался Π² Google, сСйчас являСтся СдинствСнным Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ для оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся Istio. Π’Π΅Π½Π΄ΠΎΡ€Ρ‹ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ коммСрчСскиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии Istio. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ смогут привнСсти Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Однако Istio – это Π½Π΅ СдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Service Mesh. ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ sidecar proxy являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Buoyant, HashiCorp, Solo.io ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹: тСхнологичСский инструмСнтарий Netflix – это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π³Π΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Service Mesh рСализуСтся Π·Π° счСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ribbon, Hysterix, Eureka, Archaius, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠ°ΠΊ Azure Service Fabric.

Service Mesh Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²-сСрвисов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

  • Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС большС ΠΈ большС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² добавляСтся Π² инфраструктуру прилоТСния, появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ инструмСнтС для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ – Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Kubernetes ΠΏΠ»ΠΎΡ‚Π½ΠΎ занял эту Π½ΠΈΡˆΡƒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π΅Π³ΠΎ основныС ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρ‹ Docker Swarm ΠΈ Mesosphere DC/OS ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Kubernetes.
  • БСрвисы ΠΈ экзСмпляры (ΠΏΠΎΠ΄Ρ‹ Kubernetes). ЭкзСмпляр – это СдинствСнная запущСнная копия микросСрвиса. Иногда ΠΎΠ΄ΠΈΠ½ экзСмпляр – это ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’ Kubernetes экзСмпляр состоит ΠΈΠ· нСбольшой Π³Ρ€ΡƒΠΏΠΏΡ‹ нСзависимых ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся ΠΏΠΎΠ΄ΠΎΠΌ. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ экзСмпляру ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρƒ, Ρ‡Π°Ρ‰Π΅ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ сСрвису, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΈΠ· сСбя Π½Π°Π±ΠΎΡ€ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ отказоустойчивых экзСмпляров ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ² (Ρ€Π΅ΠΏΠ»ΠΈΠΊ).
  • Sidecar Proxy. Sidecar Proxy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ экзСмпляром ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠΌ. Бмысл Sidecar Proxy Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, приходящий ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Sidecar взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Sidecar Proxy ΠΈ управляСтся Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ оркСстрации. МногиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Service Mesh ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Sidecar Proxy для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ управлСния всСм входящим ΠΈ исходящим Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ экзСмпляра ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°.
  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов. Когда экзСмпляру Π½ΡƒΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвисом, Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ (ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ) исправный ΠΈ доступный экзСмпляр Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ сСрвиса. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ экзСмпляр выполняСт поиск ΠΏΠΎ DNS. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΡ‚ список экзСмпляров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ запросов, ΠΈ прСдоставляСт интСрфСйс для DNS-запросов.
  • Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° 4 ΡƒΡ€ΠΎΠ²Π½Π΅ (транспортном). Service Mesh Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° 7 ΡƒΡ€ΠΎΠ²Π½Π΅ (ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ), Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π² вопросС управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ синС-Π·Π΅Π»Π΅Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅.
  • Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Service Mesh ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, снимая это брСмя с сСрвисов. Service Mesh Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Π·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… постоянных соСдинСний, Ρ‡Ρ‚ΠΎ сниТаСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… вычислСниях для создания Π½ΠΎΠ²Ρ‹Ρ… соСдинСний. НаиболСС распространСнной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° являСтся mutual TLS (mTLS), Π³Π΄Π΅ инфраструктура ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (PKI) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ распространяСт сСртификаты ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ для использования ΠΈΡ… Π² Sidecar Proxy.
  • АутСнтификация ΠΈ авторизация. Service Mesh ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы сдСланныС снаруТи ΠΈΠ»ΠΈ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния, отправляя экзСмплярам Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° шаблона автоматичСского Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Service Mesh ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ шаблон автоматичСского Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹Π΅ экзСмпляры, Π° Π·Π°Ρ‚Π΅ΠΌ постСпСнно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² ΠΏΡƒΠ» Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹Ρ… экзСмпляров ΠΏΡ€ΠΈ нСобходимости.

Π’Π° Ρ‡Π°ΡΡ‚ΡŒ прилоТСния Service Mesh, которая управляСт сСтСвым Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами называСтся Data Plane. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, которая управляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Data Plane, выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Control Plane. Control Plane ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΈΠ»ΠΈ спроСктирована Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ API, CLI ΠΈΠ»ΠΈ GUI для управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Service Mesh?
Control Plane Π² Service Mesh распрСдСляСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ Sidecar Proxy ΠΈ Data Plane.

Часто Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Service Mesh примСняСтся для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ с использованиСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ микросСрвисов. ΠŸΠΈΠΎΠ½Π΅Ρ€Π°ΠΌΠΈ Π² области микросСрвисов ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊ Lyft, Netflix ΠΈ Twitter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ сСрвисы ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. (Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ описаниСм Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ столкнулся Netflix). Для ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π±ΠΎΠ»Π΅Π΅ простых Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€.

АрхитСктура Service Mesh вряд Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ станСт ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° всС вопросы, связанныС с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ… доставкой. АрхитСкторы ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ арсСналом инструмСнтов, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… β€” ΠΌΠΎΠ»ΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ срСди мноТСства Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ лишь ΠΎΠ΄Π½Ρƒ – Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ Π³Π²ΠΎΠ·Π΄ΠΈ. Microservices Reference Architecture ΠΎΡ‚ NGINX, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ спСктр ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ микросСрвисов.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Service Mesh, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ NGINX, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Kubernetes ΠΈ микросСрвисы Π² качСствС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π² рСализациях Π±Π΅Π· Service Mesh. НапримСр, Istio Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠ°ΠΊ полноцСнная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Service Mesh, Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Помня ΠΎΠ± этом, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Service Mesh, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ смоТСтС ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹ ΠΈ DDD

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ