Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ° срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°

Π₯Π΅ΠΉ Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌ Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π½Π° статията β€žΠ‘Π΅Ρ€Π²ΠΈΠ·Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°β€œ Π°Π²Ρ‚ΠΎΡ€ Matt Klein.

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ° срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°

Π’ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ β€žΠΈΡΠΊΠ°Ρ… ΠΈ ΠΏΡ€Π΅Π²Π΅Π΄ΠΎΡ…β€œ описаниСто Π½Π° Π΄Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° услуга, Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° описаниС ΠΌΠΈ сС стори Π½Π°ΠΉ-Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎΡ‚ΠΎ ΠΈ интСрСсно ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π²ΠΎΠ΄Π΅Ρ‰ΠΎ Π΄ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° β€žΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ Π΅ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ?β€œ

Въй ΠΊΠ°Ρ‚ΠΎ идСята Π·Π° β€žΡΠ΅Ρ€Π²ΠΈΠ·Π½Π° ΠΌΡ€Π΅ΠΆΠ°β€œ стана всС ΠΏΠΎ-популярна ΠΏΡ€Π΅Π· послСднитС Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ (ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π° статия ΠΎΡ‚ 10 ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ 2017 Π³.) ΠΈ броят Π½Π° участницитС Π² пространството сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ, видях ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ срСд цялото тСхничСска общност ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° сравняватС ΠΈ контрастиратС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Битуацията Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π° ΠΎΡ‚ слСдната ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Ρ‚ΡƒΠΈΡ‚ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ написах ΠΏΡ€Π΅Π· юли:

ΠžΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° услугата #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. Никой ΠΎΡ‚ тях Π½Π΅ Π΅ Ρ€Π°Π²Π΅Π½ Π½Π° Istio. Istio Π΅ Π½Π΅Ρ‰ΠΎ съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ. 1 /

ΠŸΡŠΡ€Π²ΠΈΡ‚Π΅ са просто Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ. Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС си Ρ‚Π΅ Π½Π΅ правят Π½ΠΈΡ‰ΠΎ. Врябва Π΄Π° са Π² настроСниС Π·Π° Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅. 2/

Istio Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°, която ΡΠ²ΡŠΡ€Π·Π²Π° частитС Π·Π°Π΅Π΄Π½ΠΎ. Π’ΠΎΠ²Π° Π΅ Π΄Ρ€ΡƒΠ³ слой. /ΠΊΡ€Π°ΠΉ

ΠŸΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ Ρ‚ΡƒΠΈΡ‚ΠΎΠ²Π΅ спомСнават няколко Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Linkerd, NGINX, HAProxy, Envoy ΠΈ Istio), Π½ΠΎ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚ ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π·Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΌΡ€Π΅ΠΆΠ° Π·Π° услуги ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Π’ Ρ‚Π°Π·ΠΈ публикация Ρ‰Π΅ направя ΠΊΡ€Π°Ρ‡ΠΊΠ° Π½Π°Π·Π°Π΄ ΠΈ Ρ‰Π΅ говоря ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ‚Π΅ β€žΡ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈβ€œ ΠΈ β€žΡ€Π°Π²Π½ΠΈΠ½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅β€œ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ високо Π½ΠΈΠ²ΠΎ ΠΈ слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ говоря Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ‚Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅, спомСнати Π² Ρ‚ΡƒΠΈΡ‚ΠΎΠ²Π΅.

Какво Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ сСрвизна ΠΌΡ€Π΅ΠΆΠ°?

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ° срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°
Π€ΠΈΠ³ΡƒΡ€Π° 1: ΠžΠ±Ρ‰ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° услугата

Π€ΠΈΠ³ΡƒΡ€Π° 1 ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π° концСпцията Π·Π° сСрвизна ΠΌΡ€Π΅ΠΆΠ° Π½Π° Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ Π½Π°ΠΉ-основно Π½ΠΈΠ²ΠΎ. Има Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ сСрвизни ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° (AD). ВсСки СкзСмпляр Π½Π° услугата Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с Π»ΠΎΠΊΠ°Π»Π΅Π½ прокси ΡΡŠΡ€Π²ΡŠΡ€. ЦСлият ΠΌΡ€Π΅ΠΆΠΎΠ² Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (HTTP, REST, gRPC, Redis ΠΈ Π΄Ρ€.) ΠΎΡ‚ Π΅Π΄ΠΈΠ½ СкзСмпляр Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΏΡ€Π΅Π· Π»ΠΎΠΊΠ°Π»Π΅Π½ прокси към ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ външни ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ Π½Π° услуги. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π½Π°Π²Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ цяло ΠΈ Π·Π½Π°Π΅ само своя Π»ΠΎΠΊΠ°Π»Π΅Π½ прокси. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° систСма бСшС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° ΠΎΡ‚ услугата.

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ

Π’ сСрвизна ΠΌΡ€Π΅ΠΆΠ° прокси ΡΡŠΡ€Π²ΡŠΡ€, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, изпълнява слСднитС Π·Π°Π΄Π°Ρ‡ΠΈ:

  • ΠžΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуга. Какви услуги/прилоТСния са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?
  • Π—Π΄Ρ€Π°Π²Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. ЕкзСмпляритС Π½Π° услугата, Π²ΡŠΡ€Π½Π°Ρ‚ΠΈ ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° услуга, Π·Π΄Ρ€Π°Π²ΠΈ Π»ΠΈ са ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π»ΠΈ са Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΠΌΡ€Π΅ΠΆΠΎΠ² Ρ‚Ρ€Π°Ρ„ΠΈΠΊ? Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ (Π½Π°ΠΏΡ€. ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€/ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ), Ρ‚Π°ΠΊΠ° ΠΈ пасивни (Π½Π°ΠΏΡ€. ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 3 послСдоватСлни Π³Ρ€Π΅ΡˆΠΊΠΈ 5xx ΠΊΠ°Ρ‚ΠΎ индикация Π·Π° нСздравословно ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° услугата) ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° изправността.
  • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° заявка към "/foo" ΠΎΡ‚ REST услуга, към ΠΊΠΎΠΉ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° услуги трябва Π΄Π° бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½Π° заявката?
  • БалансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΈΠ·Π±Ρ€Π°Π½ сСрвизСн ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, към коя услуга трябва Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ заявката? Π‘ какъв Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚? Π‘ ΠΊΠ°ΠΊΠ²ΠΈ настройки Π·Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°? Ако заявката Π΅ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½Π°, трябва Π»ΠΈ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ?
  • УдостовСряванС ΠΈ оторизация. Π—Π° входящи заявки, ΠΌΠΎΠΆΠ΅ Π»ΠΈ услугата Π·Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Π΄Π° бъдС криптографски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π°/ΡƒΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° mTLS ΠΈΠ»ΠΈ някакъв Π΄Ρ€ΡƒΠ³ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ? Ако Π΅ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Ρ‚/ΡƒΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰Π΅Π½, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π»ΠΈ Π΅ Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ° заявСната опСрация (ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ°) Π½Π° услугата ΠΈΠ»ΠΈ трябва Π΄Π° сС Π²ΡŠΡ€Π½Π΅ Π½Π΅Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€?
  • ΠΠ°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚. Π—Π° всяка заявка трябва Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΈ статистичСски Π΄Π°Π½Π½ΠΈ, рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅/рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° прослСдяванС, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ разпрСдСлСния ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с отстраняванСто Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚.

Π Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π° всички ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² сСрвизната ΠΌΡ€Π΅ΠΆΠ°. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ проксито, Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π·Π° услугата (sidecar) Π΅ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π° условното ΠΈΠ·Π»ΡŠΡ‡Π²Π°Π½Π΅, ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Π½Π΅ ΠΈ наблюдСниС Π½Π° всСки ΠΌΡ€Π΅ΠΆΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ към ΠΈΠ»ΠΈ ΠΎΡ‚ услуга.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π°

ΠœΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° абстракция, която локалният прокси осигурява Π² Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, Π΅ магичСска (?). Как ΠΎΠ±Π°Ρ‡Π΅ проксито Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π·Π½Π°Π΅ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° "/foo" към услуга B? Как ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуга, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΠΎΠΏΡŠΠ»Π²Π°Ρ‚ ΠΎΡ‚ прокси заявки? Как са ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° ΠΈ Ρ‚.Π½.? Как Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° синьо/Π·Π΅Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° изящСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ? Кой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° настройкитС Π·Π° удостовСряванС ΠΈ оторизация Π·Π° цялата систСма?

Всички горСпосочСни Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ са ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° сСрвизната ΠΌΡ€Π΅ΠΆΠ°. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π²Π·Π΅ΠΌΠ° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ проксита Π±Π΅Π· ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈ Π³ΠΈ ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° систСма.

Мисля, Ρ‡Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°, ΠΏΠΎΡ€Π°Π΄ΠΈ която ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ·ΠΈ Π½Π°ΠΌΠΈΡ€Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ понятия Π·Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π° ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Ρ‰ΠΈ, Π΅, Ρ‡Π΅ Π·Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ…ΠΎΡ€Π° Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ Ρ‡ΡƒΠΆΠ΄Π°/Π½Π΅Ρ€Π°Π·Π±Ρ€Π°Π½Π°. НиС Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с физичСски ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Ρ€ΡƒΡ‚Π΅Ρ€ΠΈ ΠΈ суичовС ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅/заявкитС трябва Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ‚ ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠ° А Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° Π‘ ΠΈ Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ ΠΈ софтуСр, Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°. Новото ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ софтуСрни проксита са просто фантастични вСрсии Π½Π° инструмСнтитС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅.

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ° срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°
Π€ΠΈΠ³ΡƒΡ€Π° 2: ЧовСшка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°

НиС ΠΎΠ±Π°Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ Ρ‚Π°Π·ΠΈ част ΠΎΡ‚ систСмата с ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π΅ проста:
ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ самолСти, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ днСс, смС... Π½ΠΈΠ΅.

На Ρ„ΠΈΠ³ΡƒΡ€Π° 2 ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌ β€žΠ§ΠΎΠ²Π΅ΡˆΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°β€œ. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ внСдряванС, ΠΊΠΎΠ΅Ρ‚ΠΎ всС ΠΎΡ‰Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ разпространСно, вСроятно ΠΌΡŠΡ€Π΄Π°Ρ‰ Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ създава статични ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ - ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Ρ‡Ρ€Π΅Π· скриптовС - ΠΈ Π³ΠΈ внСдрява Ρ‡Ρ€Π΅Π· някакъв спСциалСн процСс към всички проксита. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° прокси ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π°Π·ΠΈ конфигурация ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ настройки.

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ° срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°
Π€ΠΈΠ³ΡƒΡ€Π° 3: Π£ΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ°

На Ρ„ΠΈΠ³ΡƒΡ€Π° 3 ΠΏΠΎΠΊΠ°Π·Π²Π° β€žΡ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π°Ρ‚Π°β€œ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° сСрвизната ΠΌΡ€Π΅ΠΆΠ°. Π‘ΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ слСднитС части:

  • Π§ΠΎΠ²Π΅ΠΊΡŠΡ‚: ВсС ΠΎΡ‰Π΅ ΠΈΠΌΠ° Ρ‡ΠΎΠ²Π΅ΠΊ (надявам сС ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ядосан), ΠΊΠΎΠΉΡ‚ΠΎ Π²Π·Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° високо Π½ΠΈΠ²ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° цялата систСма ΠΊΠ°Ρ‚ΠΎ цяло.
  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ интСрфСйс Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°: Π§ΠΎΠ²Π΅ΠΊ взаимодСйства с някакъв Ρ‚ΠΈΠΏ потрСбитСлски интСрфСйс, Π·Π° Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° систСмата. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡƒΠ΅Π± ΠΏΠΎΡ€Ρ‚Π°Π», ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ (CLI) ΠΈΠ»ΠΈ някакъв Π΄Ρ€ΡƒΠ³ интСрфСйс. Използвайки потрСбитСлския интСрфСйс, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ‚Π΅ систСмни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ:
    • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ, синьо/Π·Π΅Π»Π΅Π½ΠΎ ΠΈ/ΠΈΠ»ΠΈ постСпСнСн ΠΏΡ€Π΅Ρ…ΠΎΠ΄ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°
    • ΠžΠΏΡ†ΠΈΠΈ Π·Π° удостовСряванС ΠΈ оторизация
    • Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A поиска информация относно "/foo" ΠΊΠ°ΠΊΠ²ΠΎ сС случва
    • Настройки Π·Π° балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ, настройки Π·Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° ΠΈ Π΄Ρ€.
  • ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅: УслугитС сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² инфраструктурата Ρ‡Ρ€Π΅Π· някакъв Ρ‚ΠΈΠΏ систСма Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅/оркСстрация, ΠΊΠ°Ρ‚ΠΎ Kubernetes ΠΈΠ»ΠΈ Nomad. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° услугата Π·Π°Π΅Π΄Π½ΠΎ с нСйния Π»ΠΎΠΊΠ°Π»Π΅Π½ прокси.
  • ΠžΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуга. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ стартира ΠΈ спира СкзСмпляри Π½Π° услуги, Ρ‚ΠΎΠΉ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° изправност Π½Π° систСмата Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуги.
  • API Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Sidecar прокси : Π›ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ проксита Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСмни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π²Π΅Π½Ρ‚ΡƒΠ°Π»Π½ΠΎ послСдоватСлСн ΠΌΠΎΠ΄Π΅Π» Π±Π΅Π· намСса Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. Цялата систСма, ΡΡŠΡΡ‚ΠΎΡΡ‰Π° сС ΠΎΡ‚ всички Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° инстанции Π½Π° услуги ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ прокси ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС обСдинява Π² Π΅Π΄Π½Π° СкосистСма. API Π·Π° унивСрсална Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Envoy Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π°, която Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‰Π΅ бъдС ΠΏΡ€ΠΈΠ΅Ρ‚Π° ΠΎΡ‚ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ. По-ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ части ΠΎΡ‚ някои систСми ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ Ρ‰Π΅ изискват ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ€ΡŠΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ условиС Ρ‡Π΅ работят ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ!...

Π Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ срСщу ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π°

  • Π Π°Π²Π½ΠΈΠ½Π° с Π΄Π°Π½Π½ΠΈ Π½Π° обслуТваща ΠΌΡ€Π΅ΠΆΠ°: Засяга всСки ΠΏΠ°ΠΊΠ΅Ρ‚/заявка Π² систСмата. ΠžΡ‚Π³ΠΎΠ²Π°Ρ€Ρ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° прилоТСния/услуги, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° изправността, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, удостовСряванС/ΡƒΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰Π°Π²Π°Π½Π΅ ΠΈ наблюдСниС.
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° сСрвизната ΠΌΡ€Π΅ΠΆΠ°: ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ конфигурация Π·Π° всички Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° услуги. НС докосва Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ/заявки Π² систСмата. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° всички Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° систСма.

АктуалСн ΠΏΠ΅ΠΉΠ·Π°ΠΆ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ обяснСниСто ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° мрСТовия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° услугата.

  • Π Π°Π²Π½ΠΈΠ½ΠΈ с Π΄Π°Π½Π½ΠΈ: Linkerd, NGINX, HAProxy, Envoy, Traefik
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ самолСти: Istio, Nelson, SmartStack

ВмСсто Π΄Π° Π½Π°Π²Π»ΠΈΠ·Π°ΠΌ Π² Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° всяко ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅, Ρ‰Π΅ сС спра Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π½Π° някои ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ смятам, Ρ‡Π΅ причиняват голяма част ΠΎΡ‚ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π² СкосистСмата Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

Linkerd бСшС Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ прокси ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π·Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° услугитС Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2016 Π³. ΠΈ ΡΠ²ΡŠΡ€ΡˆΠΈ фантастична Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° повишаванС Π½Π° освСдомСността ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ към ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° услугитС. Около 6 мСсСца слСд Ρ‚ΠΎΠ²Π°, Envoy сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ към Linkerd (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ бСшС с Lyft ΠΎΡ‚ края Π½Π° 2015 Π³.). Linkerd ΠΈ Envoy са Π΄Π²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΉ-чСсто сС спомСнават, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΠ±ΡΡŠΠΆΠ΄Π°Ρ‚ сСрвизни ΠΌΡ€Π΅ΠΆΠΈ.

Istio бСшС обявСн ΠΏΡ€Π΅Π· ΠΌΠ°ΠΉ 2017 Π³. Π¦Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Istio са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π°Ρ‚Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² Ρ„ΠΈΠ³ΡƒΡ€Π° 3. Envoy Π·Π° Istio Π΅ проксито ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π’Π°ΠΊΠ° Istio Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π°, Π° Envoy Π΅ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. Π—Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ Istio ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ вълнСниС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° Envoy (ΠΊΠ°ΠΊΡ‚ΠΎ Linkerd, Ρ‚Π°ΠΊΠ° ΠΈ NGINX дСмонстрираха интСграция с Istio). Π€Π°ΠΊΡ‚ΡŠΡ‚, Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°, ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ са Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ тясно ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ. API ΠΊΠ°Ρ‚ΠΎ общия API Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Envoy ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° мост ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅ части Π½Π° систСмата.

Nelson ΠΈ SmartStack ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° сС ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ раздСлянСто Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. Nelson ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Envoy ΠΊΠ°Ρ‚ΠΎ свой прокси ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° Π½Π° услугата, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° стСка HashiCorp, Ρ‚.Π΅. Номад ΠΈ Π΄Ρ€. SmartStack бСшС ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΎΡ‚ Π½ΠΎΠ²Π° вълна сСрвизни ΠΌΡ€Π΅ΠΆΠΈ. SmartStack ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΎΠΊΠΎΠ»ΠΎ HAProxy ΠΈΠ»ΠΈ NGINX, дСмонстрирайки способността Π·Π° отдСлянС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΎΡ‚ сСрвизната ΠΌΡ€Π΅ΠΆΠ° ΠΎΡ‚ Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ.

АрхитСктурата Π½Π° микросСрвизитС със сСрвизна ΠΌΡ€Π΅ΠΆΠ° ΠΏΡ€ΠΈΠ²Π»ΠΈΡ‡Π° всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ (с ΠΏΡ€Π°Π²ΠΎ!) ΠΈ всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ доставчици Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° работят Π² Ρ‚Π°Π·ΠΈ посока. ΠŸΡ€Π΅Π· слСдващитС няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π² Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ смСсванС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° микросСрвизитС трябва Π΄Π° станС ΠΏΠΎ-ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π° ΠΈ магичСска (?) Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.
Π”Π°Π½ΠΎ всС ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ сС Π΄Ρ€Π°Π·Π½ΠΈ.

ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ

  • Π‘Π΅Ρ€Π²ΠΈΠ·Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ части: Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. И Π΄Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° са Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈ Π±Π΅Π· тях систСмата няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.
  • ВсСки Π΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° стС Π²ΠΈΠ΅!
  • Всички Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ сС ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си ΠΏΠΎ характСристики, производитСлност, конфигурируСмост ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚.
  • Всички ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Ρ€Π°Π²Π½ΠΈΠ½ΠΈ сС ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° характСристикитС, конфигурируСмостта, Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° ΠΈ Π»Π΅ΠΊΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
  • Π•Π΄Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ абстракции ΠΈ API, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ мноТСство Ρ€Π°Π²Π½ΠΈΠ½ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€