áá»áœááºá¯ááºááá¯á·ááẠmonolithic á¡ááºááá®áá±ážááŸááºážá០microservices áááá¯áá¬áá áºáá¯ááá¯á· áá°ážááŒá±á¬ááºážáá¬áááºááŸáá·áºá¡áá»áŸá áá»áœááºá¯ááºááá¯á·ááẠá áááºáá±á«áºááŸá¯á¡áá áºáá»á¬ážááŸáá·áº áááºááá¯ááºááááºá
monolithic á¡ááá®áá±ážááŸááºážáá áºáá¯ááœááºá á¡ááŸá¬ážá¡ááœááºážááŒá áºááœá¬ážáá±á¬á áá áºáá¡á áááºá¡ááá¯ááºážááá¯áá¯á¶ážááŒááºáááºá¡áá±á¬áºáá±ážááœááºáá°áááºá á¡áá»á¬ážá á¯ááŸá¬ ááŒá¿áá¬ááŸá¬ monolith á code áá²ááœáẠááá¯á·ááá¯áẠdatabase ááœááºááŒá áºáááºá áá«áá±ááá·áº ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áááá¯áá¬ááŸá¬ ááŒá¿áá¬áá áºáá¯ááᯠá ááŸá¬áá²á·á¡áá«á á¡áá¬á¡á¬ážáá¯á¶ážá ááááºááááá¬áá±á¬á·áá«áá°ážá áá±á¬ááºážááá¯ááŸá¯ á¡á á០á¡áá¯á¶ážá¡áá áá¯ááºáá±á¬ááºáá²á·ááá·áº áááºážááŒá±á¬ááºážáá áºáá¯áá¯á¶ážááᯠááŸá¬ááœá±ááŒá®áž áá¬ááŸáá·áºáá»á®áá±á¬ microservices áá»á¬ážá០áááºážááᯠááœá±ážáá»ááºááẠááá¯á¡ááºáá«áááºá ááá¯á·á¡ááŒááºá áááºážááá¯á·á¡áá»á¬ážá á¯ááœáẠáá¯áá¹ááá¡ááŸá¬ážáá»á¬ážá¡ááŒáẠá áœááºážáá±á¬ááºáááºááŸáá·áº á¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŸá¯ááá¯ááºáᬠááŒá¿áá¬áá»á¬ážááá¯áááºáž ááŒá áºá á±ááá¯ááºááá·áº áááºážááá¯á·á ááá¯ááºááá¯ááºááá¯ááŸá±á¬ááºááŸá¯ á¡áá±á¬ááºá¡áŠáá»á¬ážáááºáž ááŸááá«áááºá
áá®ááá¯ááŒá¿áá¬ááœá±ááᯠááá¯ááºááœááºááŒá±ááŸááºážááá¯ááºááá·áº áááááá¬áá
áºáá¯ááᯠáá»áœááºáá±á¬áº ááŸá¬áá±áᬠááŒá¬áá«ááŒá® (áá®á¡ááŒá±á¬ááºážááᯠHabré ááŸá¬ áá±ážáá²á·áááº-
Distributed tracing ááẠááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠááŸá¬ááœá±ááŒááºážááŒá¿áá¬á¡ááœáẠáá¯á¶ááŒá±ááŸááºážáá»ááºáá áºáá¯ááŒá áºáááºá ááá¯á·áá±á¬áº ááœááºáááºá¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºá á¯áá±á¬ááºážááŒááºážáááºážáááºážááᯠá áá áºááœáẠá¡áá±á¬ááºá¡áááºááá±á¬áºáá±ážáá«áá ááá¯á·ááá¯áẠááá¯ááá¯ážáááºááŸá¬ á áá áºááá áºá áááºáá áºááá¯ááºážááœáẠáááºážááẠáá±á¬ááºážááœááºá áœá¬á¡áá¯ááºáá¯ááºáá±ááŒá®ááŒá áºáá±á¬áºáááºáž áá áºá áááºáá áºááá¯ááºážá¡á¬ážááŒáá·áº áááºážááẠáááºáá±á¬ááºááŸá¯á¡áá±á¬ááºážáá»á¬ážááá¯á· áááá·áºááá±ážáá±á¬ááŒá±á¬áá·áº áááºážááẠáááºááá¯á·áá»áŸáááŒá áºááá¯ááºáá«á ? ááŒá¿áá¬áá áºáá¯á á¡áááºážáá¶á¡ááŒá±á¬ááºážá¡áááºážá¡ááá¡áá»ááᯠáá¯á¶ážááŒááºáááºá á áá áºááœááºááŒá áºáá»ááºáá±ááá·áºá¡áá¬áá»á¬ážááᯠááŒá®ážááŒáá·áºá á¯á¶áá±á¬áá¯á¶ááŸáááẠááá¯á¡ááºáááºá á á®ážááœá¬ážáá±ážá¡ááœáẠá¡áá±ážááŒá®ážáá±á¬áááºážááŒá±á¬ááºážáá»á¬ážááœáẠáááºááá·áº microservices áá»á¬áž áá«áááºáá±áááºááᯠáá¬ážáááºááẠá¡áá°ážá¡áá±ážááŒá®ážáá«áááºá
á€áá±áá¬ááœáẠáááºáá±á¬ááºááŸá¯ mesh áá»ááºážáááºááŸá¯ááẠáá»áœááºá¯ááºááá¯á·áá¡áá°á¡áá®ááá¯á· áá±á¬ááºááŸááá¬ááá¯ááºáááºá áááºážááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºáááºááẠáááá·áºáá»áá±á¬á¡ááá·áºááœáẠááœááºáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá á¯áá±á¬ááºážáááºá¡ááœáẠá ááºááá¹ááá¬ážá¡á¬ážáá¯á¶ážááŸáá·áº ááá¯ááºááœááºááŒá±ááŸááºážáááºááŒá áºáááºá á€áá»ááºážáááºááŸá¯ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž á¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒá¬ážááŒááºááá¯ááºááŒá®áž áááºážááᯠáá»á¶áááºážááŸá¯ááœáẠááá¯ááºážááŒá¬ážá áááºááŒá¬ááá¯ááºá á±áá«áááºá ááá¯á·á¡ááŒááºá á¡ááºááá®áá±ážááŸááºážáá»á¬ážááẠáááºážááŸáá·áºáááºáááºááá·áº áááºááá·áºá¡áá¬ááá¯áá»áŸ áááááºáááºáááá¯áá«á
áá¬ážáá áºááœááºááœá± áá»á¬ážáá¬áááºá
áááºáá±á¬ááºááŸá¯ mesh áá»ááºážáááºááŸá¯á á¡ááá á¡áá°á¡áááŸá¬ áááºáá±á¬ááºááŸá¯ á¡ááŒááºá¡ááŸáẠáááºááœááºááŸá¯ááŒáá·áº áááºááá·áºá¡áá¬ááá¯áááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±ááá·áº ááœááºáááºáá±á«áºááœáẠá¡ááŒá¬ážáá±á¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ á¡ááœáŸá¬ááᯠáá±á«ááºážááá·áºáááºááŒá áºáááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡áá»á¬ážá á¯ááẠá¡á±á¬ááºáá«á¡ááá¯ááºážáá¯ááºáá±á¬ááºáááº- áá±á¬ááºááœááºážááŒááºááá±á¬ááá±á¬ááºá á®áá«ááŸááá±á¬ áá±á¬ááºáááºááá¯ááºáá¬ážááœááºááááºáá¬áá áºáá¯á¡á¬áž microservice áá áºáá¯á á®ááá¯á· áá±á«ááºážááá·áºáá¬ážááŒá®ážá áááºáá±á¬ááºááŸá¯á á¡áááºá¡ááœááºáááºážááŒá±á¬ááºážá¡á¬ážáá¯á¶ážááᯠáá»á±á¬áºááŒááºááœá¬ážáááºááŒá áºáááºá á€áá±áá¬ááẠáá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºáááºá¡á¬áž áááºáá»ááºáá®á á±áááºá áá¯á¶ááŒá¯á¶áá±ážáá°áá«ááá»á¬ážááᯠáá»áá·áºáá¯á¶ážáááºá áá±á¬ááºážááá¯ááŸá¯á¡áá±á¡ááœááºá¡áá±á«áº ááá·áºáááºáá»ááºáá»á¬ážáá»ááŸááºáᬠáá¯ááºáá¯ááºááŸá¯ááœáẠáááºáá±á¬ááºááŸá¯áá»á¬ážá á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯ááŸá¯ááá¯ááºáᬠá¡áá±ážááŒá®ážá¡áá»ááºá¡áááºáá»á¬ážááᯠá á¯áá±á¬ááºážááá¯ááºááá·áºáá±áá¬ááŒá áºáááºá
ááŒá±ááŸááºážáá»ááº
á€áá»ááºážáááºáááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážá
áœá¬ ááŸáááŸáá·áºááŒá®ážááŒá
áºáááºá
ááááºá¡áá±ááŒáá·áºá ááᯠáá»áœááºá¯ááºááá¯á·ááá¯á¡ááºááá·áº á áœááºážáááºáá»á¬ážááᯠá¡ááá¡áá»ááŒáá·áºááŸá¯ááŒá®áž áááºážááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá áááºá¡áá±á¬ááºá¡áááºáá±á¬áºáááá·áº á¡áááá¡ááŒá±á¬ááºážáááºážááŸá¬ á áá áºáá áºáá¯áá¯á¶ážá០ááŒá±áá¬áá¶á¡áá»ááºá¡áááºáá»á¬ážááᯠááœáá·áºáááºážááŒááºáá¬á áœá¬ á á¯áá±á¬ááºážááá¯ááºááŒááºážááŒá±á¬áá·áºááŒá áºááŒá±á¬ááºáž áá¯á¶ážááŒááºáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŒá¬ážááœáẠááœáŸá²ááŒá±á¬ááºážáá±ážááá·áº áá±á«ááºážá á®ážáá»á¬ážááŒáá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááŒááºááŸááºááŸá¯áá»á¬ážááᯠáá±á¬ááºááœááºáá±ážá á±ááá¯áá«áááºá
ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á áá¯á¶ážááŒááºáá»ááºááᯠáá»ááŸááºáá²á·áááº-â
Netramesh
ááŒá±ááŸááºážáá»ááºá¡áá áºá á¡ááááááºážááá¯ááºáá»á¬ážááŸá¬ á¡áááºážá¡ááŒá áºáááá·áºáá»ááŒááºážááŸáá·áº á áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážááŒááºáž ááá¯á·ááŒá áºáááºá á¡áááá¡ááºá¹áá«áááºáá»á¬ážáá²ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á Jaeger á áá áºááá¯á· ááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠááœáá·áºáááºážááŒááºáá¬á áœá¬ áá»ááºáá»ááºážáá±ážááá¯á·ááá¯ááºááá¯áá«áááºá
ááá±á·ááœááºá cloud ááŒá±ááŸááºážáá»ááºá¡áá»á¬ážá á¯ááᯠGolang ááœááºá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá ááŒá®ážáá±á¬á· áá®á¡ááœáẠá¡ááŒá±á¬ááºážááŒáá»ááºááœá±ááŸááááºá Golang ááœáẠI/O ááŸáá·áº áááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááŒá®áž ááá¯á¡ááºáááᯠcores áá»á¬ážáá áºáá»áŸá±á¬áẠá áá±ážáá»á¬ážááᯠá¡áááºááŒá±ááŒá±ááŸáá·áº á¡áá±á¬áºáá±ážááá¯ážááŸááºážáá±á¬ Golang ááœáẠááœááºáááºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážáá±ážáá¬ážááŒááºážá áá±á¬ááºááŒá®áž á¡áááºážá¡áá±ážááŒá®ážáá¬á áá®ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯á· á áœááºážáá±á¬ááºáááºá áá¯á¶áá±á¬ááºáá«áááºá á¡á²áá«ááŒá±á¬áá·áºáááºáž Golang ááᯠááœá±ážáá»ááºáá²á·áá«áááºá
ááœááºááá¯ááºáá±áž
á¡ááŒáá·áºáá¯á¶ážáá¯ááºáá¯ááºá áœááºážá¡á¬ážááá¯áááŸáááẠáá»áœááºá¯ááºááá¯á·áááŒáá¯ážáááºážá¡á¬ážáá¯ááºááŸá¯áá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºáá¬ážáá«áááºá áááºáá±á¬ááºááŸá¯áá áºáá¯á á®á á á¶ááá°áá¬áá áºáá¯á á®áá±ážááœáẠááŒáá·áºáá»ááºáá¬ážááá·áº ááŒá±ááŸááºážáá»ááºáá áºáá¯á¡ááœáẠRAM ááŸáá·áº CPU á¡áá»áááºá¡áááºážááẠááá¯á¡ááºáááºá ááá¯á·á¡ááŒááºá áá¯á¶á·ááŒááºááŸá¯ááŸá±á¬áá·áºááŸá±ážááŸá¯áááºáž áááºážáá«ážááá·áºáááºá
áááºááá¯ááááºááœá± ááá²á·áá² ááŒáá·áºáá¡á±á¬ááºá
áááº
Netramesh ááẠá¡ááœá¬ážá¡áá¬áááŸááá² ~10Mb á á¬ážáá¯á¶ážááŒá®áž 50Mb á¡áá»á¬ážáá¯á¶áž 10000Mb ááᯠá¥ááá¬áá áºáá¯áá»áŸáẠXNUMX RPS á¡áá áá¯á¶ážá áœá²áááºá
Istio á¡áá°ážááá¯ááºá á¬ážááŸááºááá±á¬ááºá á®ááẠáá¬áááá±á«ááºážáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬ááŸááá±á¬ áá»áœááºá¯ááºááá¯á·áá¡á á¯á¡áá±ážáá»á¬ážááœáẠ~300Mb á¡ááŒá²á á¬ážáá¯á¶ážáááºá áááºážááẠáááºážá¡á¬áž á¡á á¯á¡áá±ážáá áºáá¯áá¯á¶ážááá¯á· áá»áááºááŸáááẠááœáá·áºáááŒá¯áá«á
Netramesh ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ ~ 10 á áá»áŸá±á¬á·áá»ááá¯ááºáá²á·áááºá
á á®áá®áá°
CPU á¡áá¯á¶ážááŒá¯ááŸá¯ááẠLoad á¡á±á¬ááºááœáẠá¡áá±á¬áºáá±áž áá°áá®áá«áááºá ááá¯ááºáá¬ážáá®ááá¯á· á¡áá»áááºáá°áá áºáá áºáá¯á¡ááœáẠáá±á¬ááºážááá¯ááŸá¯á¡áá±á¡ááœááºáá±á«áºááœáẠáá°áááºáááºá á¡ááŒáá·áºáá¯á¶ážááœáẠáá áºá áá¹ááá·áºáá»áŸáẠáá±á¬ááºážááá¯ááŸá¯ 3000 ááœáẠáááºááá¯ážáá»á¬áž-
áá±á¬ááºáááºá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºáá áºáá»ááºááŸááá«áááº- Netramesh - ááááºážáá»á¯ááºááŸá¯áá±áá¬ááºááá«áá²ááŒá±ááŸááºážáá»ááºááŸáá·áº load ááá«áá² CPU á¡áá»áááºááá¯áá á¬ážáá¯á¶ážáá«á Istio ááŒáá·áº ááá¯ááºáá¬ážáá»á¬ážááẠáááºáá±á¬ááºááŸá¯ á¡áá¯á¶ážááŸááºáá»á¬ážááᯠá¡ááŒá²áááºáž á¡ááºááááºáá¯ááºááŒáááºá ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá€áá¯á¶ááᯠáá±á«ááºážáá¯ááºááá«áá² ááŒááºááá¯ááºáááº-
áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŒá¬áž áááºááœááºáá±ážá¡ááœáẠHTTP/1 ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áá¶ááááºááŸáá áºááá·áº proxying áá¯ááºááá·áºá¡áá« Istio á¡ááœáẠáá¯á¶á·ááŒááºáá»áááºááá¯ážáá¬ááŸá¯ááẠ5-10ms á¡ááááŸáááŒá®ážá áááºážááẠáá®áá®á áá¹ááá·áºá¡ááœááºáž áá¯á¶á·ááŒááºáááºá¡áááºááá·áºááŒá áºáá±áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠá¡ááœááºáá»á¬ážááŒá¬ážáá«áááºá Netramesh ááŒáá·áº á€á¡áá»áááºááẠ0.5-2ms ááá¯á· áá»á±á¬á·áá»ááœá¬ážáááºá
á¡áá±á«áºáá¶
proxy áá áºáá¯á á®á០áá¯á¶ážá áœá²áá±á¬ á¡áááºážá¡ááŒá Ạá¡áááºážáááºááẠáááºáá±á¬ááºááŸá¯ áá áºáá¯á á®á áá±ážááœáẠáá¬ážááŸáááá¯ááºá á±áááºá Netramesh ááẠáá±ážááœá²áá¬ážááá¯ááºážááᯠáá±á«á·áá«ážá á±áááºá¡ááœáẠááááºážáá»á¯ááºááŸá¯áá±áá¬ááºá¡á áááºá¡ááá¯ááºážááá«áá² áááºááœááºáá»ááºááŸáááŸá áááºáá®ážáá¬ážáááºá Service Mesh ááŒá±ááŸááºážáá»ááºáá»á¬ážááœáẠáááŒá¬ááááá¯áááá¯á ááááºážáá»á¯ááºáá±áá¬ááºááẠáááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ á¡áá»ááºá¡áááºáá»á¬ážááᯠáá±ážááœá²áá¬ážáá áºáá¯á á®ááá¯á· ááŒáá·áºáá±áá±ážáááºá áááºážááŸáá·áºá¡áá° á¡áá»áááºáá¯ááºááŸá¯áá»á¬ážááŸáá·áº áá»áááºááœááºáá»áŸá¬áá»áááºááŸáááŒááºážááá¯ááºáᬠáááºáááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬áž áá«ááŸááááºá á€á¡áá¬á¡á¬ážáá¯á¶ážááẠááá·áºá¡á¬áž á¡áá¯á¶ážáááºáá±á¬ á¡áá¬áá»á¬ážá áœá¬ááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±áááºá ááá¯á·áá±á¬áº áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá áááºážááẠááá¯ááºáá¬ážáá»á¬ážááᯠá¡ááœááºá¡á á¬ážááŒá®ážá á±áá«áááºá
áááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯
Netramesh ááẠáááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯á¡ááœáẠáá±á¬ááºáááºááá¹ááá¬ážáá»á¬ážááᯠáááá·áºáá«á áá¬ááºá¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠnetra sidecar ááŸáááá·áº ááœáá·áºáááºážááŒááºáá¬á áœá¬ ááá¯á·áá±á¬ááºáá±ážáá«áááºá
Netramesh ááẠHTTP/1 á¡ááá®áá±ážááŸááºážáááá¯ááá¯áá±á¬ááᯠáá¶á·ááá¯ážáá±ážáááºá áááºážááᯠáááºááŸááºáááºá ááŒááºáááºááá¯ááºáá±á¬ ááááºáááºážáá»á¬ážá
á¬áááºážááᯠá¡áá¯á¶ážááŒá¯áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á
áá
áºááœáẠHTTP áááºááœááºááŸá¯ááŒá
áºáá±á«áºááá·áº port á¡áá»á¬ážá¡ááŒá¬ážááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááŒááºááá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŒá¬áž á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯á¡ááœáẠ80á 8890á 8080 ááá¯á¡áá¯á¶ážááŒá¯áá«áááºá á€ááá
á¹á
ááœááºá áááºážááá¯á·ááᯠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá
áºáá¯á¡áá¯á¶ážááŒá¯á áááºááŸááºááá¯ááºáááºá NETRA_HTTP_PORTS
.
á¡áááºá áááºááẠKubernetes ááᯠáá®ážááŸá¯ááºáá°ááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááŒá¬áž á¡á á¯á¡áá±ážá¡ááœááºáž áááºááœááºááŸá¯ á¡ááœáẠáááºážá áááºáá±á¬ááºááŸá¯ á¡ááœá²á·á¡á ááºáž ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áá ááá¹ááá¬ážááẠá¡áá°áá°ááẠááŒá áºáááºá ááááŠážá áœá¬á microservice ááẠkube-dns ááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºááŸá¯ IP ááááºá á¬ááᯠááá°ááŒá®áž áááºážááŸáá·áºáá»áááºáááºááŸá¯á¡áá áºááᯠááœáá·áºáá±ážáááºá á€áá»áááºáááºááŸá¯ááᯠáá±ááᶠnetra-sidecar ááŒáá·áº ááááá¯á¶ážáááºáá±á¬ááºáá¬ážááŒá®áž TCP áááºáá±á·ááºá»á¡á¬ážáá¯á¶ážááẠáááŠážááœáẠnetra ááá¯á· áá±á¬ááºááŸááááºá ááá¯á·áá±á¬ááºá netra-sidecar ááẠáá°ááŠážáááºáá¬ááŸáá·áº áá»áááºáááºááŸá¯áá áºáá¯ááᯠáááºáá±á¬ááºáááºá node áá±á«áºááŸá pod IP áá±á«áºááŸá NAT ááẠnetra ááá«áá²ááŸáá·áº á¡ááá¡áá»áá°áá®áá±áá«áááºá
ááŒáá·áºáá±áá¬ážáá±á¬ ááŒá±áá¬áá¶ááŒááºážááŸáá·áº á¡ááŒá±á¬ááºážá¡áᬠáááºááá·áºááá¯á·ááŒááºážá
Netramesh ááẠHTTP á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž ááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠáá±ážááá¯á·ááẠááá¯á¡ááºáá±á¬áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠáá±ážáááºá Netra-sidecar ááẠHTTP áááá¯ááá¯áá±á¬ááᯠááœá²ááŒááºážá
áááºááŒá¬ááŒá®ážá áá±á¬ááºážááá¯ááŸá¯ááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠááá¯ááºážáá¬ááŒá®áž HTTP áá±á«ááºážá
á®ážáá»á¬ážá០ááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠáá¯ááºáá°áááºá áá±á¬ááºáá¯á¶ážááœááºá Jaeger á
áá
áºáá
áºáá¯áááºážááœáẠááŒá±áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»áœááºá¯ááºááá¯á·áááŸááááºááŒá
áºáááºá á¡áá¯á
áááºááœá²á·á
ááºážáá¯á¶á¡ááœááºá ááá¬ážáááºá
á¬ááŒáá·áºááá¯ááºá០áá¶á·ááá¯ážáá±ážáá¬ážáá±á¬ áááºáááºážáá»ááºááŒá±á¬ááºážááœá²áá»ááºáá»á¬ážááá¯áááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
áá«áá±ááá·áº ááŒá¿áá¬áá
áºáá¯ááŸááááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡áá°áž uber áá±á«ááºážá
á®ážááᯠáá¯ááºáá±ážááŒá®áž áá±ážááá¯á·ááŒááºážáááŒá¯ááá»ááºážá á
áá
áºááœáẠáá»áááºáááºáá¬ážáá±á¬ ááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááœá±á·ááááºááá¯ááºáá«á ááŒá®ážáá±á¬á· áá«á ááŒá¿áá¬ááœá±áá²á· á¡ááŒá±á¬ááºážáááºážááᯠááŒááºááŒááºááŸá¬ááá¯á· ááá¯áááºá á€ááœáẠNetramesh ááœááºá¡ááŒá±áá
áºáá¯ááŸááááºá Proxies áá»á¬ážááẠHTTP áá±á«ááºážá
á®ážáá»á¬ážááá¯áááºááŒá®ážá áááºážááá¯á·ááœáẠuber ááŒá±áá¬áá±á¬áẠID ááá«áááºáá«áá áá
áºáá¯áá¯ááºáá±ážáá«á Netramesh ááẠsidecar ááœáẠá¡áááºá¡ááœááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠááááºážáááºážáá¬ážááŒá®áž ááá¯á¡ááºáá±á¬ á¡ááœááºáá±á¬ááºážááá¯ááŸá¯ áá±á«ááºážá
á®ážáá»á¬ážááŒáá·áº áááºážááá¯á·á¡á¬áž ááŒáá·áºá
ááºážáá±ážááŒááºážááŒáá·áº áááºážááá¯á·ááŸáá·áº ááá¯ááºáá®áá«áááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠáááºáá¯ááºáá±á¬ááºáááºááŸá¬ áá±á«ááºážá
á®ážáá
áºáá¯áᬠáá±ážááá¯á·áááºááŒá
áºáááºá X-Request-Id
áááºáááºážáá»áẠááááºážááŸááºááᯠá¡áá¯á¶ážááŒá¯á ááŒááºáááºáááºááŸááºááá¯ááºáááºá NETRA_HTTP_REQUEST_ID_HEADER_NAME
. Netramesh ááŸá á¡ááŒá±á¬ááºážá¡áá¬á á¡ááœááºá¡á
á¬ážááᯠááááºážáá»á¯ááºáááºá áááºááẠá¡á±á¬ááºáá« áááºáááºážáá»áẠááááºážááŸááºáá»á¬ážááᯠáááºááŸááºááá¯ááºáááºá NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS
(á¡ááŒá±á¬ááºážá¡áá¬ááᯠááááºážáááºážááá·áºá¡áá»áááº) ááŸáá·áº NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL
(á¡ááŒá±á¬ááºážá¡áá¬ááŸááºážáááºážááŸá¯á¡ááŒáááºáá±)á
á¡áá°áž session token ááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯ááŒááºážááŒáá·áº ááá·áºá
áá
áºááŸá áááºážááŒá±á¬ááºážáá»á¬ážá
áœá¬ááᯠáá±á«ááºážá
ááºááá¯ááºáááºá Netra áááºááá·áºá¡á¬ážáááºáááºáááºááœáá·áºááŒá¯áááºá HTTP_HEADER_TAG_MAP
HTTP áá±á«ááºážá
á®ážáá»á¬ážááᯠáááºááá¯ááºáᬠtracing span áááºáá»á¬ážá¡ááŒá
ẠááŒá±á¬ááºážáá²áááºá áááºážááẠá
ááºážáááºááŒááºážá¡ááœáẠá¡áá°ážá¡áá¯á¶ážáááºááá¯ááºáááºá áá¯ááºáá±á¬ááºáá»ááºááá¯ááºáᬠá
ááºážáááºááŸá¯á¡á±á¬ááºááŒááºááŒá®ážáá±á¬ááºá áááºááá¯ááºáᬠá
ááºááŸááºáá±á¬á·ááŒáá·áº á
á
áºáá¯ááºááŒááºážááŒáá·áº á
áá
áºá áááºááá·áºá¡á
áááºá¡ááá¯ááºážááᯠááááá¯ááºáá²á·ááŒá±á¬ááºáž áááºááœá±á·ááŒááºááá¯ááºáá«áááºá
Request Source ááᯠáááºááŸááºááŒááºážá
áá±á¬ááºážááá¯áá»ááºááẠáááºááá·áºáá±áá¬á០áá¬áááºááᯠáá¯á¶ážááŒááºáááºá á¡áááºážá¡ááŒá
áºááŸáá·áº áá±á«ááºážá
á®ážááᯠá¡ááá¯á¡áá»á±á¬áẠááá·áºááŒááºážá áá¯ááºáá±á¬ááºáá»ááºááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá áááºáááºážáá»áẠááááºážááŸááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá NETRA_HTTP_X_SOURCE_HEADER_NAME
á¡ááá¯á¡áá»á±á¬áẠááá·áºááœááºážááá·áº áá±á«ááºážá
á®ážá¡áááºááᯠááẠáááºááŸááºááá¯ááºáááºá á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº NETRA_HTTP_X_SOURCE_VALUE
á¡ááœááºáá±á¬ááºážááá¯ááŸá¯á¡á¬ážáá¯á¶ážá¡ááœáẠX-Source áá±á«ááºážá
á®ážááᯠáááºááŸááºáá±ážááá·áº áááºááá¯ážááᯠáááºáááºááŸááºááá¯ááºáááºá
á€á¡áá¬á á€á¡áá¯á¶ážáááºáá±á¬ áá±á«ááºážá á®ážááᯠááœááºáááºáá áºáá¯áá¯á¶áž áá áºááŒá±ážáá® ááŒáá·áºáá±ááá¯ááºá á±áá«áááºá ááá¯á·áá±á¬áẠáááºážááᯠáááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®áž ááŸááºáááºážáá»á¬ážááŸáá·áº ááá¯ááºážáá¬ááŸá¯áá»á¬ážááœáẠááá·áºááœááºážááá¯ááºáááºá
á¡ááœá¬ážá¡áá¬áááºážááŒá±á¬ááºážááŸáá·áº Netramesh á¡ááœááºážááá¯ááºáž
Netramesh ááœáẠá¡ááá á¡á
áááºá¡ááá¯ááºáž ááŸá
áºáᯠáá«áááºáááºá ááááá¯á¶ážá netra-init ááẠtraffic ááá¯ááŒá¬ážááŒááºááẠááœááºáááºá
ááºážáá»ááºážáá»á¬ážááᯠáááºááŸááºáááºá áá°áá¯á¶ážááá¯ááºááẠINBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS
.
áááááá¬ááœáẠá
áááºáááºá
á¬ážááœááºáá±á¬ááºážáá±á¬ á¡ááºá¹áá«áááºáá
áºáá¯áááºáž áá«ááŸááááºá ááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠá
á¯áá±á¬ááºážáááºá¡ááœáẠáá®ážááá·áº Netramesh ááᯠá¡áá¯á¶ážááŒá¯áá«áá áá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááœáẠáááºááẠá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠáá»áœá±áá¬ááá¯ááºááŒá®áž ááááºážááŸááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒá
áºááá¯ááºááŒá±ááŸááá±á¬áááºážááŒá±á¬ááºážááᯠááœáá·áºááá¯ááºááẠNETRA_INBOUND_PROBABILITY
О NETRA_OUTBOUND_PROBABILITY
(0 á០1)á áá°áááºážáááºááá¯ážááẠ1 (á¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒá¬ážááŒááºáá¬ážáááº)á
á¡á±á¬ááºááŒááºá
áœá¬ ááŒá¬ážááŒááºáá¬ážáá±á¬ááºááŒá®ážáá±á¬ááºá netra sidecar ááẠáá»áááºáááºááŸá¯á¡áá
áºááᯠáááºáá¶ááŒá®áž á¡áá¯á¶ážááŒá¯áááºá SO_ORIGINAL_DST
áá°áááºážáŠážáááºáá¬ááá¯ááá°ááẠsocket ááœá±ážáá»ááºááŸá¯á ááá¯á·áá±á¬áẠNetra ááẠáá°á IP ááááºá
á¬ááá¯á· áá»áááºáááºááŸá¯á¡áá
áºáá
áºáá¯ááœáá·áºááŒá®áž áá«áá®áá»á¬ážááŒá¬áž ááŒááºáááºážááœá¬ážáá±á¬ á¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¬ážáá±á¬ááºáᬠááŸá
áºáááºážááœá¬áž TCP áááºááœááºáá±ážááᯠáá°áá±á¬ááºáááºá ááááºáááºážááᯠHTTP á¡ááŒá
ẠáááºááŸááºáá«áá Netra ááẠáááºážááᯠááœá²ááŒááºážá
áááºááŒá¬ááẠááŒáá¯ážá
á¬ážáááºá HTTP ááœá²ááŒááºážá
áááºááŒá¬ááŸá¯ áá¡á±á¬ááºááŒááºáá«áá Netra ááẠTCP ááá¯á· ááŒááºáá»ááœá¬ážááŒá®áž bytes áá»á¬ážááᯠááœáá·áºáááºážááŒááºáá¬á
áœá¬ proxy áá¯ááºáá±ážáááºá
ááŸá®ááá¯ááááºááá¯áááºáá±á¬ááºááŒááºážá
Jaeger ááœáẠááŒá±áá¬áá¶á¡áá»ááºá¡ááẠá¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáá¶áááŸáááŒá®ážáá±á¬ááºá á
áá
áºá¡ááœááºážááŸá á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯ááá¯ááºáᬠááááºá¡ááŒáá·áºá¡á
á¯á¶ááᯠáá»áœááºáá±á¬áº ááá°ááá¯áá«áááºá áá«áá±ááá·áº ááá·áºá
áá
áºá á¡áá±á¬áºáá±ážááᯠáááºáá±á¬ááºáá±ááŒá®áž áá
áºáá±á·ááᯠááŒá±áá¬áá¶ááŸá¯ áá®áá»á¶áá±á«ááºážáá»á¬ážá
áœá¬ á
á¯áá¯á¶áá±áááºááá¯ááẠá¡á²áá«ááœá±ááᯠáá±á«ááºážá
ááºážáá¬áᬠááœááºáá°áá²á· á¡áá¯ááºáá
áºáá¯áá±á¬á· ááá¯ááºáá«áá°ážá áá«ááá¯áá¯ááºááá¯á· ááá¬ážáááºáááºážáááºážááŸááá«áááºá
á¡áááºá áááºááẠááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠááááºážáááºážááẠElasticsearch ááá¯á¡áá¯á¶ážááŒá¯áá±áá«áá áááºááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
Netramesh á¡áá¯á¶ážááŒá¯áááºáž
Netra ááᯠáá¶á
á¯á¶áá®ážááá¯ááºážáá¯ááºááá·áº áááºááá·áºáááºáá±á¬ááºááŸá¯ááœááºáááᯠá¡ááœááºááá° ááá·áºááœááºážááá¯ááºáááºá á¥ááá¬áá
áºáá¯ááŒáá·áºááá¯ááºáá«áááºá
áá±á¬áá±á¬áááºááœááºá Netra ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠááá¯ááºáá¬ážáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºá áœááºážáááŸááá±á¬áºáááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡á á®á¡á ááºáá»á¬ážááŸááá«áááºá
Netramesh áá¡áá¬áááº
á¡ááááááºážááá¯ááº
á¡áá¬áááºááœááºá Netramesh ááẠHTTP ááŸááœá²á á¡ááŒá¬ážáá±á¬ á¡ááá®áá±ážááŸááºážá¡ááœáŸá¬áááá¯ááá¯áá±á¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºááŒá áºáááºá L7 áááºážááŒá±á¬ááºážááᯠáááŒá¬áá®áá¬áá¡ááœááºáž áááá¯ááºáá«áááºá
á¡áá¬ážáá°ááŒá¿áá¬áá»á¬ážááŒá¯á¶ááœá±á·áá«á Netramesh ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž áá±ážááœááºážáá»á¬ážááŸáá·áº á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·áᶠá á¬áá±ážáá«á
source: www.habr.com