Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ΠžΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅ Ρ‚ΡŠΡ€ΡΡ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π±ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π» Π΄Π° сС справя с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ (писах Π·Π° Ρ‚ΠΎΠ²Π° Π½Π° HabrΓ©: 1, 2), Π½ΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… своС собствСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. Π’ Ρ‚Π°Π·ΠΈ статия говоря Π·Π° прСдимствата Π½Π° мрСТовия ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° услугата ΠΈ сподСлям Π½ΠΎΠ² инструмСнт Π·Π° внСдряванСто ΠΌΡƒ.

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

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

Π‘Π΅Ρ€Π²ΠΈΠ·Π΅Π½ ΠΌΡ€Π΅ΠΆΠΎΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

РСшСния

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

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

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

ΠΠ΅Ρ‚Ρ€Π°ΠΌΠ΅Ρˆ

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

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

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

продуктивност

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

Π”Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΈΠΌΠ°ΠΌΠ΅.

RAM

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

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π‘ Netramesh ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ~10 ΠΏΡŠΡ‚ΠΈ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚.

процСсор

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

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

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

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

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

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

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

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

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Но ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π”ΠΎΠΊΠ°Ρ‚ΠΎ услугитС Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΈ изпратят спСциална uber Π·Π°Π³Π»Π°Π²ΠΊΠ°, няма Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ прослСдяващи ΡƒΡ‡Π°ΡΡ‚ΡŠΡ†ΠΈ Π² систСмата. И Ρ‚ΠΎΠ²Π° Π΅, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ, Π·Π° Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Π±ΡŠΡ€Π·ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅. И Ρ‚ΡƒΠΊ Netramesh ΠΈΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠΊΡΠΈΡ‚Π°Ρ‚Π° Ρ‡Π΅Ρ‚Π°Ρ‚ HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΈ, Π°ΠΊΠΎ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ uber trace id, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Ρ‚Π°ΠΊΡŠΠ². Netramesh ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° информация Π·Π° входящи ΠΈ изходящи заявки Π² странична ΠΊΠΎΠ»Π° ΠΈ Π³ΠΈ ΡΡŠΠΏΠΎΡΡ‚Π°Π²Ρ, ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ обогатява с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° изходящи заявки. Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π² услугитС, Π΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ само Π΅Π΄ΠΈΠ½ Ρ…Π΅Π΄ΡŠΡ€ 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 Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈ прослСдяващи span Ρ‚Π°Π³ΠΎΠ²Π΅. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° тСстванС. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ функционалния тСст, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ коя част ΠΎΡ‚ систСмата Π΅ Π±ΠΈΠ»Π° засСгната ΠΎΡ‚ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ сСсиСн ΠΊΠ»ΡŽΡ‡.

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

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

Π’ΠΎΠ²Π° позволява разпространСниСто Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ…Π΅Π΄ΡŠΡ€ Π΄Π° бъдС Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² цялата ΠΌΡ€Π΅ΠΆΠ°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π² услуги ΠΈ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ към рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Netramesh

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

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

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

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° зависимост

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… голямо количСство информация Π·Π° прослСдяванС Π² Jaeger, искам Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° пълна Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° взаимодСйствията Π² систСмата. Но Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° систСма Π΅ доста Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° ΠΈ ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ΠΈ прослСдяващи ΡƒΡ‡Π°ΡΡ‚ΡŠΡ†ΠΈ сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ Π½Π° Π΄Π΅Π½, Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ Π½Π΅ става Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° лСсна Π·Π°Π΄Π°Ρ‡Π°. Има ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°: искрови зависимости. Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° пълна Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ±Π°Ρ‡Π΅ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ часовС ΠΈ Ρ‰Π΅ Π²ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ цСлия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Jaeger Π·Π° послСднитС XNUMX часа.

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Elasticsearch Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ Π·Π° прослСдяванС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ проста ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Golang, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ ΡΡŠΡ‰Π°Ρ‚Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π·Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Elasticsearch.

Netramesh - Π»Π΅ΠΊΠΎ сСрвизно мрСТСсто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

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

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

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

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

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

Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Netramesh Ρ‰Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π½Π° прилоТния слой освСн HTTP. L7 ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ бъдС Π½Π°Π»ΠΈΡ‡Π½ΠΎ Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡŠΠ΄Π΅Ρ‰Π΅.

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

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

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