Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ื›ืืฉืจ ืื ื• ืขื•ื‘ืจื™ื ืžื™ื™ืฉื•ื ืžื•ื ื•ืœื™ื˜ื™ ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืชื™ ืžื™ืงืจื•, ืื ื• ืขื•ืžื“ื™ื ื‘ืคื ื™ ืืชื’ืจื™ื ื—ื“ืฉื™ื.

ื‘ื™ื™ืฉื•ื ืžื•ื ื•ืœื™ื˜ื™, ื‘ื“ืจืš ื›ืœืœ ื“ื™ ืงืœ ืœืงื‘ื•ืข ื‘ืื™ื–ื” ื—ืœืง ืฉืœ ื”ืžืขืจื›ืช ื”ืชืจื—ืฉื” ื”ืฉื’ื™ืื”. ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ื‘ืขื™ื” ื”ื™ื ื‘ืงื•ื“ ืฉืœ ื”ืžื•ื ื•ืœื™ื˜ ืขืฆืžื•, ืื• ื‘ืžืกื“ ื”ื ืชื•ื ื™ื. ืื‘ืœ ื›ืฉืื ื—ื ื• ืžืชื—ื™ืœื™ื ืœื—ืคืฉ ื‘ืขื™ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ื”ื›ืœ ื›ื‘ืจ ืœื ื›ืœ ื›ืš ื‘ืจื•ืจ. ืขืœื™ื ื• ืœืžืฆื•ื ืืช ื›ืœ ื”ื ืชื™ื‘ ืฉื”ื‘ืงืฉื” ืœืงื—ื” ืžืชื—ื™ืœืชื• ื•ืขื“ ืกื•ืคื• ื•ืœื‘ื—ื•ืจ ืื•ืชื• ืžืชื•ืš ืžืื•ืช ืฉื™ืจื•ืชื™ ืžื™ืงืจื•. ื™ืชืจื” ืžื›ืš, ืœืจื‘ื™ื ืžื”ื ื™ืฉ ื’ื ืžืชืงื ื™ ืื—ืกื•ืŸ ืžืฉืœื”ื, ืฉืขืœื•ืœื™ื ืœื’ืจื•ื ื’ื ืœื˜ืขื•ื™ื•ืช ืœื•ื’ื™ื•ืช, ื›ืžื• ื’ื ืœื‘ืขื™ื•ืช ื‘ื‘ื™ืฆื•ืขื™ื ื•ื‘ืกื‘ื™ืœื•ืช ืœืชืงืœื•ืช.

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ื—ื™ืคืฉืชื™ ื”ืจื‘ื” ื–ืžืŸ ืื—ืจ ื›ืœื™ ืฉื™ืขื–ื•ืจ ืœื”ืชืžื•ื“ื“ ืขื ื‘ืขื™ื•ืช ื›ืืœื” (ื›ืชื‘ืชื™ ืขืœ ื–ื” ื‘-Habrรฉ: 1, 2), ืื‘ืœ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื”ื›ื ืชื™ ืคืชืจื•ืŸ ืงื•ื“ ืคืชื•ื— ืžืฉืœื™. ื‘ืžืืžืจ ื–ื” ืื ื™ ืžื“ื‘ืจ ืขืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื’ื™ืฉืช ื”-service mesh ื•ืžืฉืชืฃ ื›ืœื™ ื—ื“ืฉ ืœื™ื™ืฉื•ื ืฉืœื”.

ืžืขืงื‘ ืžื‘ื•ื–ืจ ื”ื•ื ืคืชืจื•ืŸ ื ืคื•ืฅ ืœื‘ืขื™ื” ืฉืœ ืžืฆื™ืืช ืฉื’ื™ืื•ืช ื‘ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช. ืื‘ืœ ืžื” ืื ื”ื’ื™ืฉื” ื”ื–ื• ืœืื™ืกื•ืฃ ืžื™ื“ืข ืขืœ ืื™ื ื˜ืจืืงืฆื™ื•ืช ืจืฉืช ืขื“ื™ื™ืŸ ืœื ื”ื•ื˜ืžืขื” ื‘ืžืขืจื›ืช, ืื•, ื’ืจื•ืข ืžื›ืš, ื‘ื—ืœืง ืžื”ืžืขืจื›ืช ื”ื™ื ื›ื‘ืจ ืขื•ื‘ื“ืช ื›ืžื• ืฉืฆืจื™ืš, ืื‘ืœ ื‘ื—ืœืงื” ืœื, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืœื ื ื•ืกืคื” ืœืฉื™ืจื•ืชื™ื ื™ืฉื ื™ื ? ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ืกื™ื‘ื” ื”ืžื“ื•ื™ืงืช ืœื‘ืขื™ื”, ื™ืฉ ืฆื•ืจืš ืœืงื‘ืœ ืชืžื•ื ื” ืžืœืื” ืฉืœ ื”ืžืชืจื—ืฉ ื‘ืžืขืจื›ืช. ื—ืฉื•ื‘ ื‘ืžื™ื•ื—ื“ ืœื”ื‘ื™ืŸ ืื™ืœื• ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืžืขื•ืจื‘ื™ื ื‘ื ืชื™ื‘ื™ื ืงืจื™ื˜ื™ื™ื ืœืขืกืงื™ื ืžืจื›ื–ื™ื™ื.

ื›ืืŸ ื™ื›ื•ืœื” ืœื‘ื•ื ืœืขื–ืจืชื ื• ื’ื™ืฉืช ืจืฉืช ื”ืฉื™ืจื•ืช, ืฉืชืขืกื•ืง ื‘ื›ืœ ื”ืžื›ื•ื ื•ืช ืœืื™ืกื•ืฃ ืžื™ื“ืข ืจืฉืช ื‘ืจืžื” ื ืžื•ื›ื” ืžื–ื• ืฉื”ืฉื™ืจื•ืชื™ื ืขืฆืžื ืžืคืขื™ืœื™ื. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœื ื• ืœื™ื™ืจื˜ ืืช ื›ืœ ื”ืชื ื•ืขื” ื•ืœื ืชื— ืื•ืชื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”. ื™ืชืจ ืขืœ ื›ืŸ, ื™ื™ืฉื•ืžื™ื ืืคื™ืœื• ืœื ืฆืจื™ื›ื™ื ืœื“ืขืช ืฉื•ื ื“ื‘ืจ ืขืœ ื–ื”.

ื’ื™ืฉืช ืจืฉืช ืฉื™ืจื•ืช

ื”ืจืขื™ื•ืŸ ื”ืžืจื›ื–ื™ ืฉืœ ื’ื™ืฉืช ื”-service mesh ื”ื•ื ื”ื•ืกืคืช ืฉื›ื‘ืช ืชืฉืชื™ืช ื ื•ืกืคืช ืขืœ ื’ื‘ื™ ื”ืจืฉืช, ืฉืชืืคืฉืจ ืœื ื• ืœืขืฉื•ืช ื›ืœ ื“ื‘ืจ ืขื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ-ืฉื™ืจื•ืชื™ืช. ืจื•ื‘ ื”ื”ื˜ืžืขื•ืช ืคื•ืขืœื•ืช ื‘ืื•ืคืŸ ื”ื‘ื: ืœื›ืœ ืžื™ืงืจื•-ืฉื™ืจื•ืช ืžืชื•ื•ืกืฃ ืงื•ื ื˜ื™ื™ื ืจ ืฆื“ื“ื™ ื ื•ืกืฃ ืขื ืคืจื•ืงืกื™ ืฉืงื•ืฃ, ืฉื“ืจื›ื• ืžื•ืขื‘ืจืช ื›ืœ ื”ืชืขื‘ื•ืจื” ื”ื ื›ื ืกืช ื•ื”ื™ื•ืฆืืช ืฉืœ ื”ืฉื™ืจื•ืช. ื•ื–ื” ื”ืžืงื•ื ืฉื‘ื• ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ืื™ื–ื•ืŸ ืœืงื•ื—ื•ืช, ืœื”ื—ื™ืœ ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ื”, ืœื”ื˜ื™ืœ ื”ื’ื‘ืœื•ืช ืขืœ ืžืกืคืจ ื”ื‘ืงืฉื•ืช ื•ืœืืกื•ืฃ ืžื™ื“ืข ื—ืฉื•ื‘ ืขืœ ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ื ื‘ื™ื™ืฆื•ืจ.

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ืคืชืจื•ื ื•ืช

ื™ืฉ ื›ื‘ืจ ื›ืžื” ื™ื™ืฉื•ืžื™ื ืฉืœ ื’ื™ืฉื” ื–ื•: Istio ะธ linkerd2. ื”ื ืžืกืคืงื™ื ื”ืจื‘ื” ืชื›ื•ื ื•ืช ืžื—ื•ืฅ ืœืงื•ืคืกื”. ืื‘ืœ ื‘ืžืงื‘ื™ืœ, ื™ืฉ ืชืงื•ืจื” ื’ื“ื•ืœื” ืขืœ ืžืฉืื‘ื™ื. ื™ืชืจื” ืžื›ืš, ื›ื›ืœ ืฉื”ืืฉื›ื•ืœ ื‘ื• ืคื•ืขืœืช ืžืขืจื›ืช ื›ื–ื• ื’ื“ื•ืœ ื™ื•ืชืจ, ื›ืš ื™ื™ื“ืจืฉื• ื™ื•ืชืจ ืžืฉืื‘ื™ื ืœืชื—ื–ื•ืงืช ื”ืชืฉืชื™ืช ื”ื—ื“ืฉื”. ื‘-Avito, ืื ื• ืžืคืขื™ืœื™ื ืืฉื›ื•ืœื•ืช kubernetes ื”ืžื›ื™ืœื™ื ืืœืคื™ ืžื•ืคืขื™ ืฉื™ืจื•ืช (ื•ืžืกืคืจื ืžืžืฉื™ืš ืœื’ื“ื•ืœ ื‘ืžื”ื™ืจื•ืช). ื‘ื™ื™ืฉื•ื ื”ื ื•ื›ื—ื™ ืฉืœื”, Istio ืฆื•ืจืš ~300Mb ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ืœื›ืœ ืžื•ืคืข ืฉื™ืจื•ืช. ื‘ืฉืœ ืจื™ื‘ื•ื™ ื”ืืคืฉืจื•ื™ื•ืช, ืื™ื–ื•ืŸ ืฉืงื•ืฃ ืžืฉืคื™ืข ื’ื ืขืœ ื–ืžืŸ ื”ืชื’ื•ื‘ื” ื”ื›ื•ืœืœ ืฉืœ ื”ืฉื™ืจื•ืชื™ื (ืขื“ 10ms).

ื›ืชื•ืฆืื” ืžื›ืš, ื‘ื“ืงื ื• ื‘ื“ื™ื•ืง ืื™ืœื• ื™ื›ื•ืœื•ืช ืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ืจื’ืข, ื•ื”ื—ืœื˜ื ื• ืฉื”ืกื™ื‘ื” ื”ืขื™ืงืจื™ืช ืฉื‘ื’ืœืœื” ื”ืชื—ืœื ื• ืœื™ื™ืฉื ืคืชืจื•ื ื•ืช ื›ืืœื” ื”ื™ื ื”ื™ื›ื•ืœืช ืœืืกื•ืฃ ืžื™ื“ืข ืžืขืงื‘ ืžื›ืœ ื”ืžืขืจื›ืช ื‘ืฉืงื™ืคื•ืช. ืจืฆื™ื ื• ื’ื ืœืงื‘ืœ ืฉืœื™ื˜ื” ืขืœ ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ื”ืฉื™ืจื•ืชื™ื ื•ืœืขืฉื•ืช ืžื ื™ืคื•ืœืฆื™ื•ืช ืฉื•ื ื•ืช ืขื ื”ื›ื•ืชืจื•ืช ืฉืžื•ืขื‘ืจื•ืช ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ื’ืขื ื• ืœื”ื—ืœื˜ืชื ื•:โ€Š ื ื˜ืจืžืฉ.

ื ื˜ืจืžืฉ

ื ื˜ืจืžืฉ ื”ื•ื ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ ืขื ื™ื›ื•ืœืช ืงื ื” ืžื™ื“ื” ืื™ื ืกื•ืคื™, ืœืœื ืงืฉืจ ืœืžืกืคืจ ื”ืฉื™ืจื•ืชื™ื ื‘ืžืขืจื›ืช.

ื”ืžื˜ืจื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœ ื”ืคืชืจื•ืŸ ื”ื—ื“ืฉ ื”ื™ื• ืชืงื•ืจื” ื ืžื•ื›ื” ืฉืœ ืžืฉืื‘ื™ื ื•ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื. ื‘ื™ืŸ ื”ืžืืคื™ื™ื ื™ื ื”ืขื™ืงืจื™ื™ื, ืจืฆื™ื ื• ืžื™ื“ ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœืฉืœื•ื— ื˜ื•ื•ื—ื™ ืžืขืงื‘ ื‘ืฉืงื™ืคื•ืช ืœืžืขืจื›ืช Jaeger ืฉืœื ื•.

ื›ื™ื•ื, ืจื•ื‘ ืคืชืจื•ื ื•ืช ื”ืขื ืŸ ืžื™ื•ืฉืžื™ื ื‘ื’ื•ืœื ื’. ื•ื›ืžื•ื‘ืŸ, ื™ืฉ ืœื›ืš ืกื™ื‘ื•ืช. ื›ืชื™ื‘ืช ื™ื™ืฉื•ืžื™ ืจืฉืช ื‘ื’ื•ืœื ื’ ืฉืขื•ื‘ื“ื™ื ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ ืขื I/O ื•ืžืชืืจื›ื™ื ืขืœ ืคื ื™ ื”ืœื™ื‘ื•ืช ืœืคื™ ื”ืฆื•ืจืš ื ื•ื—ื” ื•ื“ื™ ืคืฉื•ื˜ื”. ื•ืžื” ืฉื—ืฉื•ื‘ ืžืื•ื“, ื”ื‘ื™ืฆื•ืขื™ื ืžืกืคื™ืงื™ื ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•. ืœื›ืŸ ื‘ื—ืจื ื• ื’ื ื‘ื’ื•ืœื ื’.

ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช

ืžื™ืงื“ื ื• ืืช ืžืืžืฆื™ื ื• ื‘ื”ืฉื’ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžืจื‘ื™ืช. ืขื‘ื•ืจ ืคืชืจื•ืŸ ืฉื ืคืจืก ืœืฆื“ ื›ืœ ืžื•ืคืข ืฉืœ ื”ืฉื™ืจื•ืช, ื ื“ืจืฉืช ืฆืจื™ื›ื” ืงื˜ื ื” ืฉืœ ื–ืžืŸ RAM ื•-CPU. ื•ื›ืžื•ื‘ืŸ, ื’ื ืขื™ื›ื•ื‘ ื”ืชื’ื•ื‘ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืงื˜ืŸ.

ื‘ื•ื ื ืจืื” ืื™ืœื• ืชื•ืฆืื•ืช ืงื™ื‘ืœื ื•.

RAM

Netramesh ืฆื•ืจื›ืช ~10Mb ืœืœื ืชืขื‘ื•ืจื” ื•ืžืงืกื™ืžื•ื 50Mb ืขื ืขื•ืžืก ืฉืœ ืขื“ 10000 RPS ืœื›ืœ ืžื•ืคืข.

Proxy ืฉืœ Istio ืฆื•ืจืš ืชืžื™ื“ ~300Mb ื‘ืืฉื›ื•ืœื•ืช ืฉืœื ื• ืขื ืืœืคื™ ืžื•ืคืขื™ื. ื–ื” ืœื ืžืืคืฉืจ ืœื”ืชืื™ื ืื•ืชื• ืœื›ืœ ื”ืืฉื›ื•ืœ.

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ืขื Netramesh ืงื™ื‘ืœื ื• ื”ืคื—ืชื” ืฉืœ ~10x ื‘ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ.

CPU

ื”ืฉื™ืžื•ืฉ ื‘ืžืขื‘ื“ ืฉื•ื•ื” ื™ื—ืกื™ืช ืชื—ืช ืขื•ืžืก. ื–ื” ืชืœื•ื™ ื‘ืžืกืคืจ ื”ื‘ืงืฉื•ืช ืœื™ื—ื™ื“ืช ื–ืžืŸ ืœืจื›ื‘ ื”ืฆื“. ืขืจื›ื™ื ื‘-3000 ื‘ืงืฉื•ืช ืœืฉื ื™ื™ื” ื‘ืฉื™ื:

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ื™ืฉ ืขื•ื“ ื ืงื•ื“ื” ืื—ืช ื—ืฉื•ื‘ื”: Netramesh - ืคืชืจื•ืŸ ืœืœื ืžื™ืฉื•ืจ ื‘ืงืจื” ื•ืœืœื ืขื•ืžืก ืœื ื’ื•ื–ืœ ื–ืžืŸ CPU. ืขื Istio, ืจื›ื‘ื™ ืฆื“ ืชืžื™ื“ ืžืขื“ื›ื ื™ื ืืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ืฉืœ ื”ืฉื™ืจื•ืช. ื›ืชื•ืฆืื” ืžื›ืš, ืื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช ืชืžื•ื ื” ื–ื• ืœืœื ืขื•ืžืก:

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ืื ื• ืžืฉืชืžืฉื™ื ื‘-HTTP/1 ืœืชืงืฉื•ืจืช ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื. ื”ื’ื™ื“ื•ืœ ื‘ื–ืžืŸ ื”ืชื’ื•ื‘ื” ืขื‘ื•ืจ Istio ื‘ืขืช ื‘ื™ืฆื•ืข ืคืจื•ืงืกื™ ื“ืจืš ืฉืœื™ื— ื”ื™ื” ืขื“ 5-10ms, ื•ื–ื” ื“ื™ ื”ืจื‘ื” ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ื ืฉืžื•ื›ื ื™ื ืœื”ื’ื™ื‘ ืชื•ืš ืืœืคื™ืช ืฉื ื™ื™ื”. ืขื 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 go.

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ืื‘ืœ ื™ืฉ ื‘ืขื™ื”. ืขื“ ืฉื”ืฉื™ืจื•ืชื™ื ื™ื™ืฆืจื• ื•ื™ืฉืœื—ื• ื›ื•ืชืจืช uber ืžื™ื•ื—ื“ืช, ืœื ื ืจืื” ื˜ื•ื•ื—ื™ ืžืขืงื‘ ืžื—ื•ื‘ืจื™ื ื‘ืžืขืจื›ืช. ื•ื–ื” ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ื“ื™ ืœืžืฆื•ื ื‘ืžื”ื™ืจื•ืช ืืช ื”ื’ื•ืจื ืœื‘ืขื™ื•ืช. ื’ื ื›ืืŸ ืœ-Netramesh ื™ืฉ ืคืชืจื•ืŸ. ืคืจื•ืงืกื™ ืงื•ืจืื™ื ื›ื•ืชืจื•ืช HTTP, ื•ืื ื”ื ืื™ื ื ืžื›ื™ืœื™ื ืืช ืžื–ื”ื” ื”ืžืขืงื‘ ืฉืœ Uber, ื™ื•ืฆืจื™ื ืื—ืช. 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 ืœืชื’ื™ื•ืช ื˜ื•ื•ื— ืžืขืงื‘ ืชื•ืืžื•ืช. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ืœื‘ื“ื™ืงื”. ืœืื—ืจ ืฉืขื•ื‘ืจื™ื ืืช ื”ืžื‘ื—ืŸ ื”ืคื•ื ืงืฆื™ื•ื ืœื™, ื ื™ืชืŸ ืœืจืื•ืช ืื™ื–ื” ื—ืœืง ื‘ืžืขืจื›ืช ื”ื•ืฉืคืข ืžืกื™ื ื•ืŸ ืขืœ ื™ื“ื™ ืžืคืชื— ื”ื”ืคืขืœื” ื”ืžืชืื™ื.

ืงื‘ื™ืขืช ืžืงื•ืจ ื”ื‘ืงืฉื”

ื›ื“ื™ ืœืงื‘ื•ืข ืžื”ื™ื›ืŸ ื”ื’ื™ืขื” ื”ื‘ืงืฉื”, ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ื”ื•ืกืคืช ื›ื•ืชืจืช ืื•ื˜ื•ืžื˜ื™ืช ืขื ื”ืžืงื•ืจ. ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื” ืกื‘ื™ื‘ื” 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 ืืคืฉืจื•ืช ืฉืงืข ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ื™ืขื“ ื”ืžืงื•ืจื™. ืœืื—ืจ ืžื›ืŸ ื ื˜ืจื” ืคื•ืชื—ืช ื—ื™ื‘ื•ืจ ื—ื“ืฉ ืœื›ืชื•ื‘ืช ื”-IP ื”ืžืงื•ืจื™ืช ื•ืžืงื™ืžื” ืชืงืฉื•ืจืช TCP ื“ื• ื›ื™ื•ื•ื ื™ืช ื‘ื™ืŸ ื”ืฆื“ื“ื™ื, ืชื•ืš ื”ืื–ื ื” ืœื›ืœ ื”ืชืขื‘ื•ืจื” ื”ืขื•ื‘ืจืช ื“ืจื›ื”. ืื ื”ื™ืฆื™ืื” ืžื•ื’ื“ืจืช ื›-HTTP, Netra ืžื ืกื” ืœื ืชื— ื•ืœืขืงื•ื‘ ืื—ืจื™ื”. ืื ื ื™ืชื•ื— HTTP ื ื›ืฉืœ, Netra ื ื•ืคืœืช ื‘ื—ื–ืจื” ืœ-TCP ื•ืžืขื‘ื™ืจื” ืืช ื”ื‘ืชื™ื ื‘ืฉืงื™ืคื•ืช ืœืคืจื•ืงืกื™.

ื‘ื ื™ื™ืช ื’ืจืฃ ืชืœื•ืช

ืœืื—ืจ ืงื‘ืœืช ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ืžื™ื“ืข ืžืขืงื‘ ื‘-Jaeger, ืื ื™ ืจื•ืฆื” ืœืงื‘ืœ ื’ืจืฃ ืฉืœื ืฉืœ ืื™ื ื˜ืจืืงืฆื™ื•ืช ื‘ืžืขืจื›ืช. ืื‘ืœ ืื ื”ืžืขืจื›ืช ืฉืœืš ื“ื™ ืขืžื•ืกื” ื•ืžื™ืœื™ืืจื“ื™ ื˜ื•ื•ื—ื™ ืžืขืงื‘ ืžืฆื˜ื‘ืจื™ื ื‘ื™ื•ื, ืฆื‘ื™ืจืชื ื”ื•ืคื›ืช ืœืžืฉื™ืžื” ืœื ืงืœื” ื›ืœ ื›ืš. ื™ืฉ ื“ืจืš ืจืฉืžื™ืช ืœืขืฉื•ืช ื–ืืช: ื ื™ืฆื•ืฅ-ืชืœื•ืช. ืขื ื–ืืช, ื–ื” ื™ื™ืงื— ืฉืขื•ืช ืœื‘ื ื•ืช ื’ืจืฃ ืฉืœื ื•ื™ืืœืฅ ืื•ืชืš ืœื”ื•ืจื™ื“ ืืช ื›ืœ ืžืขืจืš ื”ื ืชื•ื ื™ื ืž-Jaeger ื‘-XNUMX ื”ืฉืขื•ืช ื”ืื—ืจื•ื ื•ืช.

ืื ืืชื” ืžืฉืชืžืฉ ื‘- Elasticsearch ืœืื—ืกื•ืŸ ื˜ื•ื•ื—ื™ ืžืขืงื‘, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื›ืœื™ ืคืฉื•ื˜ ืฉืœ ื’ื•ืœื ื’, ืืฉืจ ื™ื‘ื ื” ืืช ืื•ืชื• ื”ื’ืจืฃ ืชื•ืš ื“ืงื•ืช ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืชื›ื•ื ื•ืช ื•ื”ื™ื›ื•ืœื•ืช ืฉืœ Elasticsearch.

Netramesh - ืคืชืจื•ืŸ ืจืฉืช ืฉื™ืจื•ืช ืงืœ ืžืฉืงืœ

ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-Netramesh

ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ืืช Netra ื‘ืงืœื•ืช ืœื›ืœ ืฉื™ืจื•ืช ืฉืžืคืขื™ืœ ื›ืœ ืžืชื–ืžืจ. ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ื“ื•ื’ืžื” ื›ืืŸ.

ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ืœื ื˜ืข ืื™ืŸ ืืช ื”ื™ื›ื•ืœืช ืœื™ื™ืฉื ืื•ื˜ื•ืžื˜ื™ืช ืกื™ื“ื™ื•ืช ืœืฉื™ืจื•ืชื™ื, ืื‘ืœ ื™ืฉ ืชื•ื›ื ื™ื•ืช ืœื™ื™ืฉื•ื.

ื”ืขืชื™ื“ ืฉืœ ื ื˜ืจืžืฉ

ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ื ื˜ืจืžืฉ ื”ื™ื ืœื”ืฉื™ื’ ืขืœื•ื™ื•ืช ืžืฉืื‘ื™ื ืžื™ื ื™ืžืœื™ื•ืช ื•ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ืžืชืŸ ื™ื›ื•ืœื•ืช ื‘ืกื™ืกื™ื•ืช ืœืฆืคื™ื™ื” ื•ืฉืœื™ื˜ื” ื‘ืชืงืฉื•ืจืช ื‘ื™ืŸ-ืฉื™ืจื•ืชื™ืช.

ื‘ืขืชื™ื“, Netramesh ื™ืชืžื•ืš ื‘ืคืจื•ื˜ื•ืงื•ืœื™ ืฉื›ื‘ืช ื™ื™ืฉื•ืžื™ื ืื—ืจื™ื ืžืœื‘ื“ HTTP. ื ื™ืชื•ื‘ L7 ื™ื”ื™ื” ื–ืžื™ืŸ ื‘ืขืชื™ื“ ื”ืงืจื•ื‘.

ื”ืฉืชืžืฉ ื‘-Netramesh ืื ืืชื” ื ืชืงืœ ื‘ื‘ืขื™ื•ืช ื“ื•ืžื•ืช ื•ื›ืชื•ื‘ ืœื ื• ืขื ืฉืืœื•ืช ื•ื”ืฆืขื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”