Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ към Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с микросСрвиси, Π½ΠΈΠ΅ сС сблъсквамС с Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ просто Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ къдС Π² систСмата Π΅ възникнала Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°. Най-вСроятно ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Π² ΠΊΠΎΠ΄Π° Π½Π° самия ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΈΠ»ΠΈ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Но ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с микросСрвиси, всичко Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. Врябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ цСлия ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π» Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΎ ΠΊΡ€Π°ΠΉ, Π΄Π° Π³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°ΠΌΠ΅ ΠΎΡ‚ стотицитС микросСрвиси. ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях ΠΈΠΌΠ°Ρ‚ ΠΈ собствСни Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ логичСски Π³Ρ€Π΅ΡˆΠΊΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с производитСлността ΠΈ отказоустойчивостта.

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π”ΡŠΠ»Π³ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Ρ… инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° справянС с Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ (писах Π·Π° Ρ‚ΠΎΠ²Π° Π² Π₯Π°Π±Ρ€Π°: 1, 2), Π½ΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… собствСно опСнсорсно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ статията Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌ Π·Π° прСдимствата Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° service mesh ΠΈ сподСлям Π½ΠΎΠ² инструмСнт Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎΡ‚ΠΎ трасиро Π΅ разпространСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ систСми. Но ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ Π² систСмата всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Ρ‚Π°ΠΊΡŠΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° информация Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ взаимодСйствия, ΠΈΠ»ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎ-лошо, Π² част ΠΎΡ‚ систСмата Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π° Π² Π΄Ρ€ΡƒΠ³Π° част Π½Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π² старитС услуги? Π—Π° опрСдСлянС Π½Π° Ρ‚ΠΎΡ‡Π½Π°Ρ‚Π° ΠΊΠΎΡ€Π΅Π½Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ пълна прСдстава Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва Π² систСмата. ОсобСно Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ микросСрвиси участват Π² основнитС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π·Π° бизнСса ΠΏΡŠΡ‚ΠΈΡ‰Π°.

Π’ΡƒΠΊ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠΉΠ΄Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ service mesh, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС Π·Π°Π΅ΠΌΠ΅ с цялата ΠΌΠ°ΡˆΠΈΠ½Π΅Ρ€ΠΈΡ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° информация Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΎΡ‚ самитС услуги. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½ΠΈ позволява Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°ΠΌΠ΅ цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. ОсвСн Ρ‚ΠΎΠ²Π° прилоТСнията Π½Π΅ трябва Π΄ΠΎΡ€ΠΈ Π΄Π° знаят Π½ΠΈΡ‰ΠΎ Π·Π° Π½Π΅Π³ΠΎ.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ service mesh

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° идСя Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° service mesh Π΅ добавянСто Π½Π° ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ инфраструктурСн слой Π½Π°Π΄ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ всякакви дСйствия с взаимодСйствиСто ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ работят ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½: към всСки микросСрвис сС добавя Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ sidecar ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π΅Π½ прокси, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° цСлият входящ ΠΈ изходящ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° услугата. И Ρ‚ΠΎΡ‡Π½ΠΎ Π² Ρ‚ΠΎΠ²Π° пространство ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ клиСнтска балансировка, Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° сигурност, Π΄Π° въвСТдамС ограничСния Π½Π° броя заявки ΠΈ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ Π²Π°ΠΆΠ½Π° информация относно взаимодСйствиСто Π½Π° услугитС Π² продукция.

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

РСшСния

Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ° няколко Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Istio ΠΈ linkerd2. Π’Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ мноТСство Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ извън кутията. Но Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ΄Π²Π° ΠΈ голям Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° рСсурси. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-голям Π΅ ΠΊΠ»ΡŠΡΡ‚ΡŠΡ€Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° систСма, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ рСсурси са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° инфраструктура. Π’ Авито СксплоатирамС kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° хиляди СкзСмпляри Π½Π° услуги (ΠΈ тСхният Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° нараства Π±ΡŠΡ€Π·ΠΎ). Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° рСализация Istio консумира ΠΎΠΊΠΎΠ»ΠΎ 300Mb ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π½Π° всСки СкзСмпляр Π½Π° услуга. ΠŸΠΎΡ€Π°Π΄ΠΈ голямото количСство Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡ‚ΠΎ балансиранС ΡΡŠΡ‰ΠΎ ΠΎΠΊΠ°Π·Π²Π° влияниС Π½Π° ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° услугитС (Π΄ΠΎ 10ms).

Π’ края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π°, Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ са Π½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ основното, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° внСдрявамС ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, бСшС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ информация Π·Π° tracing ΠΎΡ‚ цялата систСма ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° искахмС Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π²ΡŠΡ€Ρ…Ρƒ взаимодСйствиСто Π½Π° услугитС ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ с заглавията, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° достигнахмС Π΄ΠΎ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:β€Š Netramesh.

Netramesh

Netramesh β€” Ρ‚ΠΎΠ²Π° Π΅ Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, нСзависимо ΠΎΡ‚ броя Π½Π° услугитС Π² систСмата.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ Π½Π° Π½ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ бяха малък Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° рСсурси ΠΈ висока производитСлност. ΠžΡ‚ основнитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ искахмС Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ tracing span’и Π² Π½Π°ΡˆΠ°Ρ‚Π° Jaeger систСма.

ДнСс ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π½Π° Golang. И, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° своитС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ. ΠŸΠΈΡΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ прилоТСния Π½Π° Golang, ΠΊΠΎΠΈΡ‚ΠΎ работят асинхронно с Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄ ΠΈ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚ ΠΏΠΎ нСобходимост Π½Π° ядра, Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ доста просто. И, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ, производитСлността Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π°. Π—Π°Ρ‚ΠΎΠ²Π° ΠΈ Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ Golang.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚

Бфокусирали смС усилията си Π²ΡŠΡ€Ρ…Ρƒ постиганС Π½Π° максимална производитСлност. Π—Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ сС внСдрява Π΄ΠΎ всСки инстанс Π½Π° услугата, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ процСсорно Π²Ρ€Π΅ΠΌΠ΅. И, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, забавянСто ΠΏΡ€ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° ΡΡŠΡ‰ΠΎ трябва Π΄Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ.

НСка Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅.

RAM

Netramesh консумира ~10Mb Π±Π΅Π· Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ 50Mb ΠΏΡ€ΠΈ максимум Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π΄ΠΎ 10000 RPS Π½Π° Π΅Π΄ΠΈΠ½ инстанс.

Istio envoy прокси Π²ΠΈΠ½Π°Π³ΠΈ консумира ~300Mb Π² Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ с хиляди инстанси. Π’ΠΎΠ²Π° Π½Π΅ позволява Π΄Π° Π³ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ Π² цСлия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π‘ Netramesh ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ намаляванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ с ~10 ΠΏΡŠΡ‚ΠΈ.

CPU

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CPU Π΅ относитСлно Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ΄ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. Π’ΠΎ зависи ΠΎΡ‚ броя Π½Π° заявкитС Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅ към sidecar. БтойноститС ΠΏΡ€ΠΈ 3000 заявки Π² сСкунда Π² ΠΏΠΈΠΊ:

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Има ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π²Π°ΠΆΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Netramesh Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· control plane ΠΈ Π±Π΅Π· Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π΅ консумира процСсорно Π²Ρ€Π΅ΠΌΠ΅. Π‘ Istio sidecar-ΠΈΡ‚Π΅ Π²ΠΈΠ½Π°Π³ΠΈ обновяват endpoint-ΠΈΡ‚Π΅ Π½Π° услугитС. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΊΠ°Π²Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π±Π΅Π· Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅:

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ИзползвамС HTTP/1 Π·Π° взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΏΡ€ΠΈ проксифициранСто ΠΏΡ€Π΅Π· envoy с Istio Π΅ Π±ΠΈΠ»ΠΎ Π΄ΠΎ 5-10ms, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ доста ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° услуги, ΠΊΠΎΠΈΡ‚ΠΎ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° отговарят Π·Π° милисСкунда. Π‘ Netramesh Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ намалява Π΄ΠΎ 0.5-2ms.

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚

НСбольшо количСство рСсурси, ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Π½ΠΈ ΠΎΡ‚ всСки прокси, позволява Π΄Π° сС Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ всяка услуга. Netramesh Π΅ създадСн Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° control plane Π·Π° просто ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° Π»Π΅ΠΊΠΎΡ‚Π°Ρ‚Π° Π½Π° всСки sidecar. ЧСсто Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° service mesh control plane разпространява информация Π·Π° service discovery във всСки sidecar. Π‘ нСя ΠΈΠ΄Π²Π° ΠΈ информация Π·Π° Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΈΡ‚Π΅, настройки Π·Π° балансиранС. Всичко Ρ‚ΠΎΠ²Π° позволява Π΄Π° сС правят ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π½Π΅Ρ‰Π°, Π½ΠΎ, Π·Π° съТалСниС, ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° sidecar-ΠΈΡ‚Π΅.

ΠžΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуги

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh Π½Π΅ добавя Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° service discovery. ЦСлият Ρ‚Ρ€Π°Ρ„ΠΈΠΊ сС проксифицира ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π· netra sidecar.

Netramesh ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° HTTP/1 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Π—Π° опрСдСлянСто ΠΌΡƒ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ списък с ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅. ОбикновСно Π² систСмата ΠΈΠΌΠ° няколко ΠΏΠΎΡ€Ρ‚Π°, ΠΏΠΎ ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° взаимодСйствиС ΠΏΠΎ HTTP. НапримСр, Π·Π° взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ услуги ΠΈ външни заявки ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ 80, 8890, 8080. Π’ Ρ‚Π°ΠΊΡŠΠ² случай Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π·Π° срСда. NETRA_HTTP_PORTS.

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Kubernetes ΠΊΠ°Ρ‚ΠΎ оркСстратор ΠΈ нСговия ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Service Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΠ³Ρ€ΡƒΠΏΠΎΠ²ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ остава Ρ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡ‰ΠΈΡΡ‚. ΠŸΡŠΡ€Π²ΠΎ, ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° service IP адрСс Ρ‡Ρ€Π΅Π· kube-dns ΠΈ отваря Π½ΠΎΠ²ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към Π½Π΅Π³ΠΎ. Π’ΠΎΠ²Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ сС установява с локалния netra-sidecar ΠΈ всички TCP ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ пристигат ΠΈΠΌΠ΅Π½Π½ΠΎ Π² netra. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° netra-sidecar установява ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. NAT Π½Π° pod IP Π½Π° възСла остава Ρ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡ‰ΠΈΡΡ‚, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π±Π΅Π· netra.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ прослСдяванС ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° контСкста

Netramesh прСдоставя функционалността, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° tracing span’овС относно HTTP взаимодСйствията. Netra-sidecar ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° HTTP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΈΠ·ΠΌΠ΅Ρ€Π²Π° Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π° Π½Π° заявкитС, ΠΈΠ·Π²Π»ΠΈΡ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° информация ΠΎΡ‚ HTTP заглавията. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ всички trace’овС Π² Π΅Π΄ΠΈΠ½Π½Π° систСма Jaeger. Π—Π° Ρ„ΠΈΠ½Π° конфигурация ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΡΡŠΡ‰ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° срСда, прСдоставСни ΠΎΡ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. jaeger go library.

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Но ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π”ΠΎΠΊΠ°Ρ‚ΠΎ услугитС Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ спСциалния uber Π·Π°Π³Π»Π°Π²ΠΈΠ΅, няма Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ tracing span’овС Π² систСмата. А Ρ‚ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅. Π’ΡƒΠΊ Netramesh ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠΊΡΠΈ Ρ‡Π΅Ρ‚Π°Ρ‚ HTTP заглавията ΠΈ, Π°ΠΊΠΎ Π² тях няма uber trace id, Π³ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚. Netramesh ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° информация Π·Π° входящитС ΠΈ изходящитС заявки Π² sidecar ΠΈ ΡΡŠΠΏΠΎΡΡ‚Π°Π²Ρ тях Ρ‡Ρ€Π΅Π· обогатяванС с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ заглавия Π½Π° изходящитС заявки. Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° направят услугитС, Π΅ Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ само Π΅Π΄Π½ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅. X-Request-Id, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π·Π° срСда. NETRA_HTTP_REQUEST_ID_HEADER_NAME. Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° контСкста Π² Netramesh, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ слСднитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° срСда: NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS (Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅Π· ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡŠΡ‚ Ρ‰Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°) ΠΈ NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL (пСриодичността Π½Π° почистванСто Π½Π° контСкста).

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТно Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ няколко ΠΏΡŠΡ‚Π΅ΠΊΠΈ във Π²Π°ΡˆΠ°Ρ‚Π° систСма, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΠΉΠΊΠΈ Π³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° спСциалСн сСсионСн ΠΌΠ°Ρ€ΠΊΠ΅Ρ€. Netra позволява Π΄Π° установитС HTTP_HEADER_TAG_MAP Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° HTTP заглавия Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ tracing span Ρ‚Π°Π³ΠΎΠ²Π΅. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° тСстванС. Π‘Π»Π΅Π΄ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° функционалния тСст, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ коя част ΠΎΡ‚ систСмата Π΅ Π±ΠΈΠ»Π° засСгната, ΠΊΠ°Ρ‚ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ session ΠΊΠ»ΡŽΡ‡.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° Π½Π° заявката

Π—Π° опрСдСлянС ΠΎΡ‚ΠΊΡŠΠ΄Π΅ Π΅ дошла заявката, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚ функционалността Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ добавянС Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ с ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ. Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата NETRA_HTTP_X_SOURCE_HEADER_NAME ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ сС Π·Π°Π΄Π°Π²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° NETRA_HTTP_X_SOURCE_VALUE ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ стойност, Π² която Ρ‰Π΅ сС Π·Π°Π΄Π°Π²Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ X-Source Π½Π° всички изходящи заявки.

Π’ΠΎΠ²Π° позволява ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π² цялата ΠΌΡ€Π΅ΠΆΠ°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π² слуТбитС ΠΈ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π² Π»ΠΎΠ³ΠΎΠ²Π΅, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

Π ΠΎΡƒΡ‚ΠΈΠ½Π³ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Netramesh

Netramesh сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΄Π²Π° основни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ΠŸΡŠΡ€Π²ΠΈΡΡ‚, netra-init, установява ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° iptables redirect ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° цСлия ΠΈΠ»ΠΈ част ΠΎΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° sidecar, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ вторият основСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Netramesh. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° настроитС ΠΊΠΎΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½ΠΈ Π·Π° входящи ΠΈ изходящи TCP сСсии: INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π² инструмСнта ΠΈΠΌΠ° интСрСсна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ β€” вСроятностСн Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Netramesh ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° tracing span’овС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° спСститС рСсурси Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½ΠΎ срСдищС ΠΈ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ вСроятностСн Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ NETRA_INBOUND_PROBABILITY ΠΈ NETRA_OUTBOUND_PROBABILITY (ΠΎΡ‚ 0 Π΄ΠΎ 1). Бтойността ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 1 (ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½ Π΅ цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ).

Π‘Π»Π΅Π΄ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ netra sidecar ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½ΠΎΠ²ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SO_ORIGINAL_DST опцията Π½Π° сокСта Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° дСстинация. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Netra отваря Π½ΠΎΠ²ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към оригиналния IP адрСс ΠΈ установява двупосочна TCP комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ странитС, ΡΠ»ΡƒΡˆΠ°ΠΉΠΊΠΈ цСлия ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‰ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Ако ΠΏΠΎΡ€Ρ‚ΡŠΡ‚ Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°Ρ‚ΠΎ HTTP, Netra сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° Π³ΠΎ парсира ΠΈ прослСди. Ако парсинга Π½Π° HTTP Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Netra ΠΏΡ€Π°Π²ΠΈ Ρ„Π°Π»Π±Π΅ΠΊ Π½Π° TCP ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ проксира Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅.

ΠŸΠΎΡΡ‚Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π°Ρ„ Π½Π° зависимоститС

Π‘Π»Π΅Π΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° голямо количСство информация Π·Π° tracing Π² Jaeger, ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ пълСн Π³Ρ€Π°Ρ„ Π½Π° взаимодСйствията Π² систСмата. Но Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° систСма Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ Π΄Π΅Π½ сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ΠΈ tracing span-ΠΎΠ²Π΅, Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ става доста слоТна Π·Π°Π΄Π°Ρ‡Π°. Има ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° Ρ‚ΠΎΠ²Π°: spark-dependencies. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠΉ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ часовС Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ пълСн Π³Ρ€Π°Ρ„ ΠΈ Ρ‰Π΅ изисква ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° цСлия dataset ΠΎΡ‚ Jaeger Π·Π° послСднитС 24 часа.

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Elasticsearch Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° tracing span-ΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚ прост инструмСнт Π½Π° Golang, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Ρ‚Π°ΠΊΡŠΠ² Π³Ρ€Π°Ρ„ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ особСноститС ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Elasticsearch.

Netramesh – Π»Π΅ΠΊΠΎ service mesh Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Netramesh

Netra ΠΌΠΎΠΆΠ΅ просто Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ към всяка услуга, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° всСки оркСстратор. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΡƒΠΊ.

Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Netra няма Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ внСдряванС Π½Π° sidecar към услугитС, Π½ΠΎ ΠΈΠΌΠ° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅.

Π‘ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ Π½Π° Netramesh

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Netramesh Π΅ постиганС Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π·Π° рСсурси ΠΈ висока производитСлност, прСдоставяйки основни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° observability ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° мСТдусСрвизнитС взаимодСйствия.

Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Netramesh Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ слой, освСн HTTP. Π’ Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‰Π΅ станС възмоТно L7 Ρ€ΡƒΡ‚ΠΈΡ€Π°Π½Π΅.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Netramesh, Π°ΠΊΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚Π΅ с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ ΠΈ прСдлоТСния.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster