Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: Service mesh β€” явлСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ устойчивого ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° русский язык (Π±ΠΎΠ»Π΅Π΅ 2 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ «сСтка для сСрвисов», Π° Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ стали Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ сочСтаниС «сСрвисноС сито»). ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ ΠΎΠ± этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слишком тСсно ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Π»ΠΈΡΡŒ маркСтинговая ΠΈ тСхничСская ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅. Π­Ρ‚ΠΎΡ‚ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΠΏΡ€ΠΈΠ·Π²Π°Π½ внСсти ΡΡΠ½ΠΎΡΡ‚ΡŒ для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.

Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Комикс ΠΎΡ‚ Sebastian Caceres

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Если Π²Ρ‹ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€-программист, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π³Π΄Π΅-Ρ‚ΠΎ Π² Ρ€Π°ΠΉΠΎΠ½Π΅ бэкСнд-систСм, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«service meshΒ», вСроятно, ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‡Π½ΠΎ закрСпился Π² вашСм сознании Π·Π° послСдниС ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚. Благодаря странному ΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π², это словосочСтаниС Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΡΠ»ΡŒ всС сильнСС, Π° Ρ…Π°ΠΉΠΏ ΠΈ связанныС с Π½ΠΈΠΌ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ прСдлоТСния Π½Π°Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ словно снСТный ΠΊΠΎΠΌ, лСтящий Π²Π½ΠΈΠ· ΠΏΠΎ склону ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π°ΡŽΡ‰ΠΈΠΉ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² замСдлСния.

Service mesh Π·Π°Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² ΠΌΡƒΡ‚Π½Ρ‹Ρ…, Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΎΠ·Π½Ρ‹Ρ… Π²ΠΎΠ΄Π°Ρ… экосистСмы cloud native. К соТалСнию, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ связанной с Π½Π΅ΠΉ ΠΏΠΎΠ»Π΅ΠΌΠΈΠΊΠΈ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ Β«Π½ΠΈΠ·ΠΊΠΎΠΊΠ°Π»ΠΎΡ€ΠΈΠΉΠ½ΠΎΠΉ Π±ΠΎΠ»Ρ‚ΠΎΠ²Π½ΠΈΒ» Π΄ΠΎ β€” Ссли Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ тСхничСским Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ β€” ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Ρ‡ΡƒΡˆΠΈ. Но Ссли ΠΎΡ‚ΡΠ΅ΡΡ‚ΡŒ вСсь ΡˆΡƒΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ service mesh Π΅ΡΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ, опрСдСлСнная ΠΈ ваТная функция.

Π’ этой ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ это: ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ чСстноС, Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² руководство ΠΏΠΎ service mesh. Π― ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° вопрос: Β«Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?Β», β€” Π½ΠΎ ΠΈ Β«Π—Π°Ρ‡Π΅ΠΌ?Β», Π° Ρ‚Π°ΠΊΠΆΠ΅ Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ сСйчас?Β». НаконСц, ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΠ±Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ (ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ эта тСхнология Π²Ρ‹Π·Π²Π°Π»Π° Ρ‚Π°ΠΊΠΎΠΉ ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠΈΠΉ Π°ΠΆΠΈΠΎΡ‚Π°ΠΆ, Ρ‡Ρ‚ΠΎ само ΠΏΠΎ сСбС интСрСсная история.

ΠšΡ‚ΠΎ я?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ всСм! МСня Π·ΠΎΠ²ΡƒΡ‚ William Morgan. Π― являюсь ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· создатСлСй Linkerd β€” самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° service mesh ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ Π² появлСнии Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° service mesh ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ (проститС, ΠΏΠ°Ρ€Π½ΠΈ!). (ΠŸΡ€ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π².: К слову, Π½Π° Π·Π°Ρ€Π΅ появлСния этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°, Π±ΠΎΠ»Π΅Π΅ 2,5 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»ΠΈ Ρ€Π°Π½Π½ΠΈΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ service mesh ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ΅Π½ [для ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ прилоТСния с микросСрвисами]?Β».) Π’Π°ΠΊΠΆΠ΅ я возглавляю Buoyant β€” стартап, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉΡΡ созданиСм Ρ‚Π°ΠΊΠΈΡ… классных service mesh-ΡˆΡ‚ΡƒΠΊ, ΠΊΠ°ΠΊ Linkerd ΠΈ Dive.

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ мСня вСсьма пристрастноС ΠΈ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ этому вопросу. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ свСсти Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΎΠ·Π½ΠΎΡΡ‚ΡŒ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°: Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² ΠΎ service mesh?Β», β€” Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС ΠΆΠ΅ подСлюсь своими прСдвзятыми идСями). Π’Π°ΠΊΠΆΠ΅ я ΠΏΡ€ΠΈΠ»ΠΎΠΆΡƒ всС силы ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это руководство максимально ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… я прСимущСствСнно Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠΏΡ‹Ρ‚ Linkerd, ΠΏΡ€ΠΈ этом указывая Π½Π° извСстныС ΠΌΠ½Π΅ различия (Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ) Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² service mesh.

ОкСй, ΠΏΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π²ΠΊΡƒΡΠ½ΡΡˆΠΊΠ°ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ service mesh?

НСсмотря Π½Π° вСсь Ρ…Π°ΠΉΠΏ, структурно service mesh устроСна довольно просто. Π­Ρ‚ΠΎ всСго лишь ΠΊΡƒΡ‡Π° userspace-прокси, располоТСнных «рядом» с сСрвисами (ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «рядом»), плюс Π½Π°Π±ΠΎΡ€ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… процСссов. ΠŸΡ€ΠΎΠΊΡΠΈ Π² совокупности ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ data plane, Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ процСссы ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ control plane. Data plane ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ с Π½ΠΈΠΌΠΈ «всякоС-Ρ€Π°Π·Π½ΠΎΠ΅Β»; control plane, соотвСтствСнно, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прокси ΠΈ обСспСчиваСт доступ для вас, Ρ‚.Π΅. ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊ API, позволяя ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒΡŽ ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Π΅Ρ‘ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅.

Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π§Ρ‚ΠΎ это Π·Π° прокси? Π­Ρ‚ΠΎ TCP-прокси ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Β«Layer 7-awareΒ» (Ρ‚.Π΅. Β«ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅Β» 7 ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI) Π²Ρ€ΠΎΠ΄Π΅ HAProxy ΠΈ NGINX. МоТно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ прокси ΠΏΠΎ своСму вкусу; Linkerd ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ прокси Π½Π° Rust, нСзамысловато Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ linkerd-proxy. ΠœΡ‹ собрали Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для service mesh. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ mesh’ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прокси (Envoy β€” частый Π²Ρ‹Π±ΠΎΡ€). Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π²Ρ‹Π±ΠΎΡ€ прокси β€” это всСго лишь вопрос Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ эти прокси-сСрвСры? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊ сСрвисам ΠΈ ΠΎΡ‚ Π½ΠΈΡ… (строго говоря, ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ прокси ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… прокси, обрабатывая ΠΊΠ°ΠΊ входящиС, Ρ‚Π°ΠΊ ΠΈ исходящиС Π²Ρ‹Π·ΠΎΠ²Ρ‹). И ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами. Π­Ρ‚ΠΎΡ‚ фокус Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ service mesh-прокси ΠΎΡ‚, скаТСм, шлюзов API ΠΈΠ»ΠΈ ingress-прокси (послСдниС Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° Π²Ρ‹Π·ΠΎΠ²Π°Ρ…, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… Π² кластСр ΠΈΠ· внСшнСго ΠΌΠΈΡ€Π°). (ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: сравнСниС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Ingress для Kubernetes, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΠΆΠ΅ упомянутый Envoy, см. Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.)

Π˜Ρ‚Π°ΠΊ, с data plane ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Control plane устроСна ΠΏΡ€ΠΎΡ‰Π΅: это Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… всю ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° data plane, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ скоординированным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов, выпуск сСртификатов TLS, Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ Ρ‚. Π΄. Data plane ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ control plane ΠΎ своСм ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ; Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, control plane прСдоставляСт API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ data plane ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

НиТС прСдставлСна схСма control plane ΠΈ data plane Π² Linkerd. Как Π²ΠΈΠ΄Π½ΠΎ, control plane Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС экзСмпляр Prometheus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ с прокси-сСрвСров, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ destination (ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов), identity (Ρ†Π΅Π½Ρ‚Ρ€ сСртификации, CA) ΠΈ public-api (endpoint’Ρ‹ для web ΠΈ CLI). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ этого, data plane прСдставляСт собой простой linkerd-proxy рядом с экзСмпляром прилоТСния. Π­Ρ‚ΠΎ всСго лишь логичСская схСма; Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° control plane ΠΈ сотни ΠΈΠ»ΠΈ тысячи прокси Π² data plane.

(Π‘ΠΈΠ½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π½Π° этой схСмС ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ pod’ΠΎΠ² Kubernetes. Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с linkerd-proxy находятся Π² ΠΎΠ΄Π½ΠΎΠΌ pod’Π΅ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ прилоТСния. Подобная схСма извСстна ΠΊΠ°ΠΊ sidecar-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.)

Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

АрхитСктура service mesh ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… послСдствий. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°Π΄Π°Ρ‡Π° прокси β€” ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами, service mesh ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создавалось Π½Π° Π½Π΅ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ сСрвисов. Mesh ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°ΠΌΠΈ, Π½ΠΎ это явно ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°Π΄ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ СдинствСнного прокси, Π΄Π° ΠΈ Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» вряд Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ вострСбован.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ послСдствиС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ service mesh Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства прокси. На самом Π΄Π΅Π»Π΅, Linkerd цСпляСт linkerd-proxy ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ экзСмпляру ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса (Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ прокси ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ/хосту/Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС. Π’ любом случаС, это Π½Π΅ΠΌΠ°Π»ΠΎ). Π‘Ρ‚ΠΎΠ»ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС прокси само ΠΏΠΎ сСбС нСсСт ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ослоТнСний:

  1. ΠŸΡ€ΠΎΠΊΡΠΈ Π² data plane Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ быстрыми, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² приходится ΠΏΠ°Ρ€Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ прокси: ΠΎΠ΄Π½ΠΎ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΎΠ΄Π½ΠΎ β€” Π½Π° сторонС сСрвСра.
  2. Π’Π°ΠΊΠΆΠ΅ прокси Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСбольшими ΠΈ лСгковСсными. КаТдая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ рСсурсы памяти ΠΈ CPU, ΠΈ это ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ расти вмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
  3. Π’Π°ΠΌ понадобится ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для развСртывания ΠΈ обновлСния большого количСства прокси. Π”Π΅Π»Π°Ρ‚ΡŒ это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ β€” Π½Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, service mesh выглядит Ρ‚Π°ΠΊ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, с высоты ΠΏΡ‚ΠΈΡ‡ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Ρ‚Π°): Π²Ρ‹ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΊΡƒΡ‡Ρƒ userspace-прокси, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚Β» с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ, мСТсСрвисным Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ control plane для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ управлСния ΠΈΠΌΠΈ.

Настал Ρ‡Π΅Ρ€Π΅Π΄ вопроса Β«Π—Π°Ρ‡Π΅ΠΌ?Β»

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° service mesh?

Π’Π΅ΠΌ, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ столкнулся с ΠΈΠ΄Π΅Π΅ΠΉ service mesh, ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΈΠΉ Ρ‚Ρ€Π΅ΠΏΠ΅Ρ‚. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ service mesh ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ рСсурсы ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΊΡƒΡ‡Ρƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π² инфраструктуру. Π‘ΠΏΠ΅Ρ€Π²Π° Π²Ρ‹ устанавливаСтС service mesh, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ сотни (Ссли Π½Π΅ тысячи) прокси. Π‘ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ, ΠΊΡ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π° это?

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ, связанныС с Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ этих прокси, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТСны благодаря Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ измСнСниям, происходящим Π² экосистСмС (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅).

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ устройство β€” Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ввСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² систСму. И Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ service mesh ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ мноТСство Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π΅ вмСшиваясь Π² экосистСму. На самом Π΄Π΅Π»Π΅ вся модСль service mesh основана Π½Π° этом постулатС: Π² ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²ΠΈΡΠ½ΠΎΠΉ систСмС, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сСрвисы, Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ являСтся идСальной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

НапримСр, Π² Linkerd (ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ mesh’Π΅ΠΉ) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сфокусирована прСимущСствСнно Π½Π° Π²Ρ‹Π·ΠΎΠ²Π°Ρ… HTTP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ HTTP/2 ΠΈ gRPC*. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ довольно богатая β€” Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ класса:

  1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы, Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹, ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅/ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°) ΠΈ Ρ‚.Π΄.
  2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ. АгрСгированиС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ, Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈ объСмов запросов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ; построСниС топологичСских ΠΊΠ°Ρ€Ρ‚ сСрвисов ΠΈ Ρ‚.Π΄.
  3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ. Mutual TLS, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΈ Ρ‚.Π΄.

* Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Linkerd gRPC практичСски Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ HTTP/2: просто Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ protobuf. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π²Π΅ эти Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

МногиС ΠΈΠ· этих ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запросов (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Β«L7-прокси»). НапримСр, Ссли сСрвис Foo посылаСт HTTP-Π²Ρ‹Π·ΠΎΠ² сСрвису Bar, linkerd-proxy Π½Π° сторонС Foo ΠΌΠΎΠΆΠ΅Ρ‚ провСсти ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ с Foo Π½Π° экзСмпляры Bar Π² зависимости ΠΎΡ‚ наблюдаСмой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ; ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ запрос ΠΏΡ€ΠΈ нСобходимости (ΠΈ Ссли Ρ‚ΠΎΡ‚ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π΅Π½); ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈ врСмя оТидания, ΠΈ Ρ‚.Π΄. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ linkerd-proxy Π½Π° сторонС Bar ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ запрос, Ссли ΠΎΠ½ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ Π»ΠΈΠΌΠΈΡ‚ запросов; ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ со своСй стороны, ΠΈ Ρ‚.Π΄.

ΠŸΡ€ΠΎΠΊΡΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Β«Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΒ» ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. НапримСр, linkerd-proxy Π½Π° сторонС Foo ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ TLS-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π° linkerd-proxy Π½Π° сторонС Bar β€” Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈ ΠΎΠ±Π΅ стороны ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ TLS-сСртификаты Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°*. Π­Ρ‚ΠΎ обСспСчиваСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами, Π½ΠΎ ΠΈ криптографичСски бСзопасный способ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСрвисов: Foo ΠΈ Bar ΠΌΠΎΠ³ΡƒΡ‚ Β«Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΒ», Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ‚Π΅, ΠΊΠ΅ΠΌ сСбя Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚.

* Β«Π”Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°Β» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСртификат ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ провСряСтся (mutual TLS). Π’ «классичСском» TLS, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΈ сСрвСром, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ провСряСтся сСртификат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ стороны (сСрвСра).

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запросов ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ service mesh носят эксплуатационный Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Linkerd Π½Π΅ Π² состоянии Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСмантику ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ поля Π² JSON-Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ внСсти измСнСния Π² protobuf. Π’ этой Π²Π°ΠΆΠ½ΠΎΠΉ особСнности ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ ESB ΠΈ middleware.

Π’Π°ΠΊΠΎΠ² Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ service mesh. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… нСпосрСдствСнно Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ? И Π·Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с прокси?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ service mesh β€” это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя

Π₯отя возмоТности service mesh Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΅Π΅ основная Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π° самом Π΄Π΅Π»Π΅ Π»Π΅ΠΆΠΈΡ‚ Π½Π΅ Π² функциях. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… нСпосрСдствСнно Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ²ΠΎ Π±Ρ‹Π»ΠΎ происхоТдСниС service mesh). Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ эту ΠΌΡ‹ΡΠ»ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ service mesh состоит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: ΠΎΠ½Π° прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ соврСмСнного сСрвСрного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ для всСго стСка ΠΈ нСзависимым ΠΎΡ‚ ΠΊΠΎΠ΄Π° прилоТСния ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Β«Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ соврСмСнного сСрвСрного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния». Если Π²Ρ‹ создаСтС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ сСрвСрноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, связанноС с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ запросы ΠΈΠ· внСшнСго ΠΌΠΈΡ€Π° ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π½Π° Π½ΠΈΡ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, API-сСрвСр, Π΄Π° ΠΈ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, β€” ΠΈ Ссли Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ ΠΈΠ· сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ синхронно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΈ Ссли Π²Ρ‹ постоянно ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ это ПО, добавляя Π½ΠΎΠ²Ρ‹Π΅ возмоТности, ΠΈ Ссли Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ эту систСму Π² работоспособном состоянии Π² процСссС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” Π² этом случаС ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ вас, Π²Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ созданиСм соврСмСнного сСрвСрного ПО. И всС эти Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, пСрСчислСнныС Π²Ρ‹ΡˆΠ΅, Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ для вас. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, бСзопасным, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚. Как Ρ€Π°Π· эти вопросы ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ service mesh.

(ОкСй, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π°Π±Π·Π°Ρ† всС ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Ρ€Π°Π»Π°ΡΡŒ моя ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ являСтся соврСмСнным способом ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСрвСрноС ПО. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹, Β«Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ микросСрвисы» ΠΈ ΠΈΠ½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ, Π½Π΅ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅. Π£ этих людСй навСрняка имССтся своС ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ ΠΌΠΎΠ΅Π³ΠΎ. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Β«Π½Π΅ ΠΏΡ€Π°Π²Ρ‹Β» β€” хотя Π² любом случаС service mesh для Π½ΠΈΡ… Π½Π΅ слишком ΠΏΠΎΠ»Π΅Π·Π½Π°).

Β«Π•Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ для всСго стСка». Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСдоставляСмыС service mesh, Π½Π΅ просто критичСски Π²Π°ΠΆΠ½Ρ‹. Они ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎ всСм сСрвисам Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Ρ‚Π΅ написаны, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΊΡ‚ΠΎ ΠΈΡ… написал, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ ΠΈ ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… тонкостСй ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ примСнСния.

«НСзависимым ΠΎΡ‚ ΠΊΠΎΠ΄Π° прилоТСния». НаконСц, service mesh Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСдоставляСт Π΅Π΄ΠΈΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для всСго стСка β€” ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ это способом, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€Π°Π²ΠΊΠΈ прилоТСния. Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ основа Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ service mesh, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ настройкС, обновлСнию, эксплуатации, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ ΠΈ Ρ‚.Π΄., находится ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ нСзависима ΠΎΡ‚ прилоТСния. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Π½Π΅ затрагивая service mesh. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, service mesh ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ участия прилоТСния.

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, service mesh Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСдоставляСт ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ это Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ, Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΈ нСзависимым ΠΎΡ‚ прилоТСния способом. И поэтому, хотя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ service mesh ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ сСрвиса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис), этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ обСспСчит ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, ΡΡ‚ΠΎΠ»ΡŒ Ρ†Π΅Π½Π½Ρ‹Π΅ Π² случаС service mesh.

И всС, Ρ‡Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ, β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ прокси! ΠžΠ±Π΅Ρ‰Π°ΡŽ, ΠΎΡ‡Π΅Π½ΡŒ скоро ΠΌΡ‹ рассмотрим эксплуатационныС ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ, связанныС с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ этих прокси. Но сначала Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановимся ΠΈ взглянСм Π½Π° эту идСю ΠΎ нСзависимости с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… людСй.

ΠšΠΎΠΌΡƒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ service mesh?

Как Π±Ρ‹ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ это Π½ΠΈ Π±Ρ‹Π»ΠΎ, Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСкая тСхнология стала Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ экосистСмы, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ принята людьми. Π’Π°ΠΊ ΠΊΡ‚ΠΎ ΠΆΠ΅ заинтСрСсован Π² service mesh? ΠšΡ‚ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚ Π΅Π΅ использования?

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ соврСмСнноС сСрвСрноС ПО, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свою ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΡƒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вмСстС Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эти сСрвисы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. Π’ ΠΌΠ°Π»Ρ‹Ρ… организациях это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ люди, Π½ΠΎ вмСстС с ростом ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ эти Ρ€ΠΎΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, становятся Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ дСлятся Π½Π° подроли… (Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ devops’Π°, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ влиянии микросСрвисов ΠΈ Ρ‚. ΠΏ. Но ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅ΠΌ эти описания ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒ).

Π‘ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния явными Π±Π΅Π½Π΅Ρ„ΠΈΡ†ΠΈΠ°Ρ€Π°ΠΌΠΈ service mesh ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π΅Π΄ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Ρ†Π΅Π»ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ сСрвисов ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π΅Π»ΠΎΠ²ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ это способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΌΡ€Π°Ρ‡Π½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π΅Ρ‘ эксплуатации. Service mesh Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ возмоТности, критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ для достиТСния этой Ρ†Π΅Π»ΠΈ: ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ это способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π΅ Π½Π°Π»Π°Π³Π°Π΅Ρ‚ зависимостСй Π½Π° Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сСрвисов.

Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ сСрвисов Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΡŽΡ‚, хотя ΠΈ Π±ΠΎΠ»Π΅Π΅ опосрСдованным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ЦСль Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° сСрвиса β€” Π±Ρ‹Ρ‚ΡŒ максимально ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ бизнСс-процСсса, ΠΈ Ρ‡Π΅ΠΌ мСньшС Π΅ΠΌΡƒ приходится Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ вопросах эксплуатации, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, скаТСм, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… запросов ΠΈΠ»ΠΈ TLS, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ… бизнСса ΠΈ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позаботится ΠΎΠ±ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ. Для Π½ΠΈΡ… это большоС прСимущСство.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ раздСлСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ сСрвисов Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° вносит основной Π²ΠΊΠ»Π°Π΄ Π² Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ service mesh.

ΠœΡ‹ усвоили этот ΡƒΡ€ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ² Linkerd рассказал Π½Π°ΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ service mesh: ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΈΠΌ «свСсти Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΡŒΠ½ΡŽ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒΒ». Π’ΠΎΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ подробностСй: рСбята ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ свою ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² Kubernetes. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ с ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΎΠ½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² кластСрах. Однако ситуация ослоТнялась Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ сотСн сСрвисов ΠΈ сотСн ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π° ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ со всСми ΠΈ ΡƒΠ±Π΅ΠΆΠ΄Π°Ρ‚ΡŒ внСсти ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ TLS Π² свои ΠΏΠ»Π°Π½Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΡ… Π½Π΅ Ρ€Π°Π΄ΠΎΠ²Π°Π»Π°. Установив Linkerd, ΠΎΠ½ΠΈ пСрСнСсли ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… это Π±Ρ‹Π»ΠΈ лишниС Ρ…Π»ΠΎΠΏΠΎΡ‚Ρ‹) Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… это являлось ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня. Π”Ρ€ΡƒΠ³ΠΈΠΌ словами, Linkerd Ρ€Π΅ΡˆΠ°Π» для Π½ΠΈΡ… Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, сколько ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, service mesh β€” это, скорСС, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ тСхничСской, Π° социо-тСхничСской ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. (Бпасибо Cindy Sridharan Π·Π° знакомство с этим Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ.)

Π Π΅ΡˆΠΈΡ‚ Π»ΠΈ service mesh всС ΠΌΠΎΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹?

Π”Π°. Π’ смыслС, Π½Π΅Ρ‚!

Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ класса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ·Π²ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅: Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, β€” становится понятно, Ρ‡Ρ‚ΠΎ service mesh Π½Π΅ являСтся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΈ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π₯отя Linkerd ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы (Ссли Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½Ρ‹), ΠΎΠ½ Π½Π΅ Π² состоянии ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ссли сСрвис ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΠ°Π» β€” Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Linkerd ΠΌΠΎΠΆΠ΅Ρ‚ вСсти статистику ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… запросов, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ Π² состоянии Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² сСрвис ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ β€” ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнтарий Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρƒ прилоТСния. И хотя Linkerd способСн ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ mTLS, ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² Π΄Π΅Π»Π΅ обСспСчСния бСзопасности Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСго.

ΠŸΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² этих областях, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… service mesh, относятся ΠΊ Ρ„ΠΈΡ‡Π°ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Под этим я ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅:

  1. НСзависимы ΠΎΡ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Бпособ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ вСдСтся построСниС гистограмм Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Foo ΠΈ Bar, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Foo Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Bar.
  2. Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Linkerd ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ всякими Π½Π°Π²ΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΡˆΡ‚ΡƒΠΊΠ°ΠΌΠΈ Π²Ρ€ΠΎΠ΄Π΅ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ (retry budgets), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ бСсхитростный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄-Π²-Π»ΠΎΠ± Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ навСрняка ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ возникновСнию Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Β«Π»Π°Π²ΠΈΠ½Ρ‹ запросов» (retry storm) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌ для распрСдСлСнных систСм.
  3. НаиболСС эффСктивны, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TLS ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° примСняСтся Π²Π΅Π·Π΄Π΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прокси (Π° Π½Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния), service mesh прСдоставляСт ΠΈΡ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π½Π΅ прилоТСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написаны сСрвисы, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΊΡ‚ΠΎ ΠΈΡ… написал ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ. ΠŸΡ€ΠΎΠΊΡΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ всСх этих подробностСй, Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ основа этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ настройкС, обновлСнию, эксплуатации, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ ΠΈ Ρ‚. Π΄., Π»Π΅ΠΆΠΈΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ возмоТностСй service mesh

Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Подводя ΠΈΡ‚ΠΎΠ³, Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ service mesh Π½Π΅ являСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для обСспСчСния надСТности, Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ бСзопасности. Π Π°Π·ΠΌΠ°Ρ… этих областСй ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ участиС Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сСрвисов, Ops/SRE-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Service mesh прСдоставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ «срСз» Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих областСй.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ service mesh стала популярна ΠΈΠΌΠ΅Π½Π½ΠΎ сСйчас?

ВСроятно, Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ вопросом: ΠΎΠΊΠ΅ΠΉ, Ссли service mesh Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π΅ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ прокси Π² стСкС Π»Π΅Ρ‚ Π΄Π΅ΡΡΡ‚ΡŒ Π½Π°Π·Π°Π΄?

Π•ΡΡ‚ΡŒ Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос: Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ всС строили ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹, ΠΈ service mesh Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ Π±Ρ‹Π»Π° Π½ΡƒΠΆΠ½Π°. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²Π΄Π°, Π½ΠΎ, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π΅ тСряСтся ΡΡƒΡ‚ΡŒ. Π”Π°ΠΆΠ΅ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ концСпция микросСрвисов ΠΊΠ°ΠΊ пСрспСктивного способа создания ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… систСм ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»Π°ΡΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ Π² Ρ‚Π°ΠΊΠΈΡ… компаниях, ΠΊΠ°ΠΊ Twitter, Facebook, Google ΠΈ Netflix. ΠžΠ±Ρ‰Π΅Π΅ прСдставлСниС β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² Ρ‚Π΅Ρ… частях отрасли, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π», β€” состояло Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ микросСрвисы β€” это Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ» ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ систСмы, Π΄Π°ΠΆΠ΅ Ссли это Π±Ρ‹Π»ΠΎ чСртовски Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, хотя Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π±Ρ‹Π»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ микросСрвисы, ΠΎΠ½ΠΈ вовсС Π½Π΅ Π²Ρ‚Ρ‹ΠΊΠ°Π»ΠΈ прокси Π²Π΅Π·Π΄Π΅ Π³Π΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ service mesh. Однако Ссли ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ, ΠΎΠ½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅: Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΈΡΡ‹Π²Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΠΎΠ±ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для сСтСвого взаимодСйствия (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ толстого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, fat client library).

Π£ Netflix Π±Ρ‹Π»Π° Hysterix, Ρƒ Google Π±Ρ‹Π»Π° Stubby, Ρƒ Twitter β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Finagle. Finagle, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Ρ‹Π»Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСрвиса Π² Twitter. Она ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π° ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ соСдинСний, позволяла Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ запросов, балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ измСрСния. Она обСспСчивала согласованный слой надСТности ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΠΈ для всСго стСка Twitter, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ занимался сСрвис. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для JVM-языков ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Π»Π°ΡΡŒ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для всСго прилоТСния. Однако Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π±Ρ‹Π»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ service mesh. (На самом Π΄Π΅Π»Π΅ пСрвая вСрсия Linkerd просто прСдставляла собой Finagle, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π² Ρ„ΠΎΡ€ΠΌΡƒ прокси.)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ сущСствовали Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ микросСрвисы, Π½ΠΎ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎ-service-mesh Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ€Π΅ΡˆΠ°Π²ΡˆΠΈΠ΅ Ρ‚Π΅ ΠΆΠ΅ самыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎ service mesh Ρ€Π΅ΡˆΠ°Π΅Ρ‚ сСгодня. Однако самой service mesh Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ. Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сдвиг, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½Π° появилась.

И ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь Π»Π΅ΠΆΠΈΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚, скрытый Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π΅, ΡΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π·Π° послСдниС 10 Π»Π΅Ρ‚: ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Ρ€Π΅Π·ΠΊΠΎΠ΅ сниТСниС стоимости развСртывания микросСрвисов. УпомянутыС Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, использовавшиС микросСрвисы Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄: Twitter, Netflix, Facebook, Google, β€” Π±Ρ‹Π»ΠΈ компаниями ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… рСсурсов. Π£ Π½ΠΈΡ… Π±Ρ‹Π»Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ прилоТСния Π½Π° основС микросСрвисов. ЭнСргия ΠΈ усилия, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ Twitter ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π½Π° микросСрвисный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, просто ΠΏΠΎΡ€Π°ΠΆΠ°ΡŽΡ‚ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. (ЧСстно говоря, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ это ΡƒΠ΄Π°Π»ΠΎΡΡŒ.) Подобного Ρ€ΠΎΠ΄Π° инфраструктурныС ΠΌΠ°Π½Π΅Π²Ρ€Ρ‹ Ρ‚ΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ для ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.

ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅ΠΌΡΡ Π² настоящСС. БСгодня ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ стартапы, Π³Π΄Π΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ микросСрвисов ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ составляСт 5:1 (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 10:1), ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ с Π½ΠΈΠΌΠΈ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ! Если стартап ΠΈΠ· 5 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ способСн, Π½Π΅ Π½Π°ΠΏΡ€ΡΠ³Π°ΡΡΡŒ, ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 50 микросСрвисов, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ явно снизило ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡ… внСдрСния.

Service Mesh: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Software Engineer ΠΎ самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
1500 микросСрвисов Π² Monzo; каТдая линия β€” прСдписанноС сСтСвоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ

Π Π΅Π·ΠΊΠΎΠ΅ сниТСниС стоимости эксплуатации микросСрвисов являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса: роста популярности ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ оркСстраторов. ИмСнно Π² этом ΠΈ состоит Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ способствовало появлСнию service mesh. Одна ΠΈ Ρ‚Π° ΠΆΠ΅ тСхнология сдСлала ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ service mesh, Ρ‚Π°ΠΊ ΠΈ микросСрвисы: Kubernetes ΠΈ Docker.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Ну, Docker Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. Упаковывая ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ (нСсСтСвыС) runtime-зависимости Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Docker ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΎΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ многоязычного стСка: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” атомарная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° выполнСния, для Ρ†Π΅Π»Π΅ΠΉ развСртывания ΠΈ эксплуатации Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JVM, Node, Go, Python ΠΈΠ»ΠΈ Ruby. Π’Ρ‹ просто запускаСтС Π΅Π³ΠΎ, ΠΈ всС.

Kubernetes Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° «выполняСмых ΡˆΡ‚ΡƒΠΊΒ» ΠΈ мноТСство машин, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² инструмСнтС, способном ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π’ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС, Π²Ρ‹ Π΄Π°Π΅Ρ‚Π΅ Kubernetes мноТСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ мноТСство машин, Π° ΠΎΠ½ сопоставляСт ΠΈΡ… Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, это динамичСский ΠΈ постоянно ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ процСсс: Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠΎ систСмС, ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Ρ‚.Π΄. Однако Kubernetes ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ всС это).

ПослС настройки Kubernetes Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса слабо ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ дСсяти сСрвисов (Π½Π° самом Π΄Π΅Π»Π΅, ΠΎΠ½ΠΈ практичСски Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΈ для 100 сСрвисов). Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ этому ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠΎΡ‰Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ массу Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ микросСрвисов, написанных Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках β€” ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Ρƒ срСду, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ service mesh.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ подошли ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ Π½Π° вопрос, ΠΏΠΎΡ‡Π΅ΠΌΡƒ идСя service mesh стала популярна ΠΈΠΌΠ΅Π½Π½ΠΎ сСйчас: Ρ‚Π° ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Kubernetes обСспСчиваСт для сСрвисов, прямым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ эксплуатационным Π·Π°Π΄Π°Ρ‡Π°ΠΌ, стоящим ΠΏΠ΅Ρ€Π΅Π΄ service mesh. Π’Ρ‹ ΠΏΠ°ΠΊΡƒΠ΅Ρ‚Π΅ прокси Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π΄Π°Π΅Ρ‚Π΅ Kubernetes Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΈΠ»Π΅ΠΏΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΡƒΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ вуаля! На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ service mesh, ΠΏΡ€ΠΈ этом всСй ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΎΠΉ Π΅Ρ‘ развСртывания заправляСт Kubernetes. (По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, с высоты ΠΏΡ‚ΠΈΡ‡ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Ρ‚Π°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² этом процСссС Π΅ΡΡ‚ΡŒ мноТСство нюансов.)

Подводя ΠΈΡ‚ΠΎΠ³: ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ service mesh стала популярна ΠΈΠΌΠ΅Π½Π½ΠΎ сСйчас, Π° Π½Π΅ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Kubernetes ΠΈ Docker Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π½Π΅ΠΉ, упростив Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½Ρ‹Ρ… микросСрвисов, Π½ΠΎ ΠΈ сущСствСнно сократили ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° Π΅Π΅ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ, обСспСчив ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ развСртывания ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ°Ρ€ΠΊΠΎΠ² sidecar-прокси.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² ΠΎ service mesh?

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽ ΠΊΠΎ всячСским прСдполоТСниям, Π΄ΠΎΠ³Π°Π΄ΠΊΠ°ΠΌ, ΠΈΠ·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡΠΌ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ поиск ΠΏΠΎ Ρ„Ρ€Π°Π·Π΅ Β«service meshΒ», Π²Ρ‹ Π½Π°Ρ‚ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ Π½Π° ΠΊΡƒΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΊΠ°Π»ΠΎΡ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, странных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ калСйдоскопа искаТСний, достойных эхо-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π›ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ свойствСнно это, Π½ΠΎ Π² случаС service mesh ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° стоит особСнно остро. ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

Ну, частично это моя Π²ΠΈΠ½Π°. Π― ΠΏΡ€ΠΈΠ»Π°Π³Π°Π» всС силы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Linkerd ΠΈ service mesh ΠΏΡ€ΠΈ любой ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ возмоТности, ΠΏΡƒΡ‚Π΅ΠΌ бСсчислСнных ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² Π±Π»ΠΎΠ³Π΅ ΠΈ статСй, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… этой. Но я Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‡. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос, слСдуСт Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΠ±Ρ‰Π΅ΠΉ ситуации. А Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π½Π΅ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ упомянув ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚: Istio β€” service mesh с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ совмСстно Google, IBM ΠΈ Lyft.

(Π£ этих Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ: участиС Lyft, ΠΏΠΎΡ…ΠΎΠΆΠ΅, сводится ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ лишь названию; ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ Envoy, Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Istio ΠΈΠ»ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. IBM участвуСт Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Istio ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ. Google Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ участвуСт Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Istio, Π½ΠΎ, насколько ΠΌΠΎΠ³Ρƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ.)

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Istio ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ двумя особСнностями. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ усилия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Google, Π² частности, ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡŽ. По ΠΌΠΎΠΈΠΌ ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй, освСдомлСнных ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ service mesh Π² настоящСС врСмя, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ Π½Π΅ΠΉ благодаря Istio. Вторая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ состоит Π² Ρ‚ΠΎΠΌ, насколько ΠΏΠ»ΠΎΡ…ΠΎ Istio Π±Ρ‹Π» принят. Π’ этом вопросС я, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, сторона заинтСрСсованная, Π½ΠΎ ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ максимально ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ, всё ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρƒ Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ вСсьма Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ настрой, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ-Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ (хотя ΠΈ Π½Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ: Π½Π° ΡƒΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ systemd, сравнСниС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡƒΠΆΠ΅ нСоднократно…) для Open Source-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

(На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρƒ Istio, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ UX, Π½ΠΎ ΠΈ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. НапримСр, Π²ΠΎ врСмя ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Linkerd, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ стороной, спСциалисты ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хвосты Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ (tail latency) Istio Π² 100 Ρ€Π°Π· ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для Linkerd, Π° Ρ‚Π°ΠΊΠΆΠ΅ ситуации с нСдостатком рСсурсов, ΠΊΠΎΠ³Π΄Π° Linkerd ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Istio ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π» Ρ€Π°Π±ΠΎΡ‚Ρƒ.)

ΠžΡΡ‚Π°Π²Π»ΡΡ Π² сторонС ΠΌΠΎΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π·Π°ΡˆΠΊΠ°Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π°ΠΆΠΈΠΎΡ‚Π°ΠΆ Π²ΠΎΠΊΡ€ΡƒΠ³ service mesh ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π· участиСм Google. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

  1. навязчивоС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Istio со стороны Google;
  2. ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π½Π΅ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, критичСскоС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ;
  3. Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π·Π»Π΅Ρ‚ популярности Kubernetes, воспоминания ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅Ρ‰Ρ‘ свСТи.

ВмСстС эти Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Π½Π΅ΠΊΠΎΠ΅ дурманящСС, бСскислородноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ослабСваСт, ΠΈ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ чудная Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ‚ΡŽΠ»ΡŒΠΏΠ°Π½ΠΎΠΌΠ°Π½ΠΈΠΈ.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Linkerd это… я Π±Ρ‹ описал ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ Π±Π»Π°Π³ΠΎ. Π― имСю Π² Π²ΠΈΠ΄Ρƒ, Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ service mesh вошла Π² мСйнстрим β€” Ρ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² 2016-ΠΌ, ΠΊΠΎΠ³Π΄Π° Linkerd Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появился ΠΈ Π±Ρ‹Π»ΠΎ ΠΏΠΎ-настоящСму Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅Ρ‚! Но ΠΏΠ»ΠΎΡ…ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ситуация с service mesh сСгодня Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ запутанная, Ρ‡Ρ‚ΠΎ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ относятся ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ service mesh (Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования). Π­Ρ‚ΠΎ, бСзусловно, ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ всСм (ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Istio ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ большС, Ρ‡Π΅ΠΌ Linkerd, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послСдний всС ΠΆΠ΅ Π½Π΅ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ).

Π‘ΠΎ стороны Linkerd наша стратСгия Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΡƒΠΌ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сообщСства ΠΈ, ΠΏΠΎ сути, ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π°ΠΆΠΈΠΎΡ‚Π°ΠΆ ΠΏΠΎΡƒΡ‚ΠΈΡ…Π½Π΅Ρ‚. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Ρ…Π°ΠΉΠΏ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π° ΡƒΠ±Ρ‹Π»ΡŒ, ΠΈ ΠΌΡ‹ смоТСм ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ спокойно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Пока ΠΆΠ΅ Π½Π°ΠΌ всСм придСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡΡ Π»ΠΈ service mesh ΠΌΠ½Π΅, скромному software engineer?

Π‘ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° этот вопрос ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ опросник:

Π’Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ? Π’ этом случаС service mesh Π²Π°ΠΌ Π½Π΅ пригодится. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Сю Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π² ΠΈΠ΄Π΅Π°Π»Π΅ service mesh Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° прямым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π² вашСм ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Π·Π° Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ платят.

Π’Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Kubernetes? Π”Π°, Π² этом случаС service mesh Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ K8s просто для запуска ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ K8s). Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ΡΡŒ Π² ситуации со мноТСством микросСрвисов, написанных Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ людьми. ВсС ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ связаны Π² ΠΊΠ»ΡƒΠ±ΠΎΠΊ runtime-зависимостСй, Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ способ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со всСм этим. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Kubernetes позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ service mesh Β«ΠΏΠΎΠ΄ сСбя». Для этого ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΈΡ… возмоТностями ΠΈ особСнностями ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° вопрос, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ исслСдованиС с Linkerd).

Π’Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, которая НЕ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Kubernetes, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ микросСрвисы? Π’ этом случаС service mesh Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π΅ использованиС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ service mesh, размСстив ΠΊΡƒΡ‡Ρƒ прокси, Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΌ прСимущСством Kubernetes являСтся ΠΈΠΌΠ΅Π½Π½ΠΎ модСль развСртывания: обслуТиваниС этих прокси Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, сил ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚.

Π’Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚Π΅ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°ΠΌΠΈ? Π’ этом случаС service mesh Π²Π°ΠΌ, вСроятно, Π½Π΅ Π½ΡƒΠΆΠ½Π°. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°ΠΌΠΈ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ²), ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ взаимодСйствия, Ρ‚ΠΎ service mesh ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ смоТСт Π²Π°ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π΅Π΅ ΠΈ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° исчСзнСт ΠΊΠ°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΉ сон…

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

НавСрноС, service mesh всё-Ρ‚Π°ΠΊΠΈ Π½Π΅ стоит Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ «самой Ρ…Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΌΠΈΡ€Π°Β» β€” эта ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π΅ΡΡ‚ΡŒ, вСроятно, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π±ΠΈΡ‚ΠΊΠΎΠΈΠ½Ρƒ ΠΈΠ»ΠΈ ИИ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ пятСрку. Но Ссли ΠΏΡ€ΠΎΠ±ΠΈΡ‚ΡŒΡΡ сквозь слои ΡˆΡƒΠΌΠ° ΠΈ Π³Π°ΠΌΠ°, становится ясно, Ρ‡Ρ‚ΠΎ service mesh приносит Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ создаСт прилоТСния Π² Kubernetes.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Linkerd β€” Π΅Π³ΠΎ установка Π² кластСр Kubernetes (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² Minikube Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 60 сСкунд, ΠΈ Π²Ρ‹ смоТСтС сами ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΎ Ρ‡Π΅ΠΌ я Π³ΠΎΠ²ΠΎΡ€ΡŽ.

FAQ

β€” Если я Π±ΡƒΠ΄Ρƒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ service mesh, ΠΎΠ½Π° исчСзнСт?
β€” Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ³ΠΎΡ€Ρ‡ΠΈΡ‚ΡŒ вас: service mesh с Π½Π°ΠΌΠΈ Π½Π°Π΄ΠΎΠ»Π³ΠΎ.

β€” Но я НЕ Π₯ОЧУ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ service mesh!
β€” Ну ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ! Волько ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΌΠΎΠΉ опросник Π²Ρ‹ΡˆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, слСдуСт Π»ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ хотя Π±Ρ‹ с Π΅Π΅ Π°Π·Π°ΠΌΠΈ.

β€” Π Π°Π·Π²Π΅ это Π½Π΅ староС Π΄ΠΎΠ±Ρ€ΠΎΠ΅ ESB/middleware ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΌ соусом?
β€” Service mesh занимаСтся эксплуатационной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π° Π½Π΅ смысловой. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком сСрвисной ΡˆΠΈΠ½Ρ‹ прСдприятия (ESB). Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ этого раздСлСния ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ service mesh ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ участи.

β€” Π§Π΅ΠΌ service mesh отличаСтся ΠΎΡ‚ API-шлюзов?
β€” БущСствуСт ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ статСй Π½Π° эту Ρ‚Π΅ΠΌΡƒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΡ‚Π΅.

β€” Envoy β€” это service mesh?
β€” НСт, Envoy β€” это Π½Π΅ service mesh, это прокси-сСрвСр. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ service mesh (ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ β€” это прокси ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния). Но сам ΠΏΠΎ сСбС ΠΎΠ½ Π½Π΅ являСтся service mesh.

β€” Network Service Mesh β€” это service mesh?
β€” НСт. НСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅, это Π½Π΅ service mesh (ΠΊΠ°ΠΊ Π²Π°ΠΌ чудСса ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π°?).

β€” ΠŸΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ service mesh с ΠΌΠΎΠ΅ΠΉ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ асинхронной систСмой Π½Π° Π±Π°Π·Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний?
β€” НСт, service mesh Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚.

β€” ΠšΠ°ΠΊΡƒΡŽ service mesh ΠΌΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?
β€” Linkerd, Π΅ΠΆΡƒ понятно.

β€” Π‘Ρ‚Π°Ρ‚ΡŒΡ β€” отстой! / Автора β€” Π½Π° ΠΌΡ‹Π»ΠΎ!
β€” ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ссылкой Π½Π° Π½Π΅Ρ‘ со всСми Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ смогли Π² этом ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ!

Благодарности

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎ названию, эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π° фантастичСским Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ‚ΠΎΠΌ Jay Kreps Β«The Log: What every software engineer should know about real-time data’s unifying abstractionΒ». Π― встрСтил Jay’я Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° Π±Ρ€Π°Π» ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π² Linked In, ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΎΠ½ слуТит Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ для мСня.

Π₯отя я люблю Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ сСбя Β«Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ LinkerdΒ», Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ я скорСС maintainer Ρ„Π°ΠΉΠ»Π° README.md Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Над Linkerd сСгодня Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ людСй, ΠΈ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ состоялся Π±Ρ‹ Π±Π΅Π· участия Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сообщСства ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

И Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ особая Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ Linkerd, Oliver Gould (primus inter pares), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вмСстС со ΠΌΠ½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π½Ρ‹Ρ€Π½ΡƒΠ» с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π²ΠΎ всю эту суСту с service mesh.

P.S. ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

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