[ืชืจื’ื•ื] ื“ื’ื ื”ืฉืจืฉื•ืจ ืฉืœ ื”ืฉืœื™ื—

ืชืจื’ื•ื ื”ืžืืžืจ: ื“ื’ื ื”ืฉืจืฉื•ืจ ืฉืœ ืฉืœื™ื—ื™ื - https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310

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

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

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

ืกืงื™ืจืช ืฉืจืฉื•ืจื™ื

[ืชืจื’ื•ื] ื“ื’ื ื”ืฉืจืฉื•ืจ ืฉืœ ื”ืฉืœื™ื—

Envoy ืžืฉืชืžืฉ ื‘ืฉืœื•ืฉื” ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื–ืจืžื™ื:

  • ืจึธืืฉืึดื™: ืฉืจืฉื•ืจ ื–ื” ืฉื•ืœื˜ ื‘ืืชื—ื•ืœ ื•ืกื™ื•ื ืชื”ืœื™ื›ื™ื, ื‘ื›ืœ ืขื™ื‘ื•ื“ ื”-API ืฉืœ XDS (xDiscovery Service), ื›ื•ืœืœ DNS, ื‘ื“ื™ืงืช ืชืงื™ื ื•ืช, ื ื™ื”ื•ืœ ืืฉื›ื•ืœื•ืช ื•ื–ืžื ื™ ืจื™ืฆื” ื›ืœืœื™ื™ื, ืื™ืคื•ืก ืกื˜ื˜ื™ืกื˜ื™ืงื”, ื ื™ื”ื•ืœ ื•ื ื™ื”ื•ืœ ืชื”ืœื™ื›ื™ื ื›ืœืœื™ - ืื•ืชื•ืช ืœื™ื ื•ืงืก. ื”ืคืขืœื” ืžื—ื“ืฉ ื—ืžื” ื•ื›ื•'. ืงื•ืจื” ื‘ืฉืจืฉื•ืจ ื”ื–ื” ื”ื•ื ืืกื™ื ื›ืจื•ื ื™ ื•"ืœื ื—ื•ืกื". ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืฉืจืฉื•ืจ ื”ืจืืฉื™ ืžืชืื ืืช ื›ืœ ืชื”ืœื™ื›ื™ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืงืจื™ื˜ื™ื™ื ืฉืื™ื ื ื“ื•ืจืฉื™ื ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ืžืขื‘ื“ ื›ื“ื™ ืœืคืขื•ืœ. ื–ื” ืžืืคืฉืจ ืœื›ืชื•ื‘ ืืช ืจื•ื‘ ืงื•ื“ ื”ื‘ืงืจื” ื›ืื™ืœื• ื”ื™ื” ืคืชื™ืœ ื‘ื•ื“ื“.
  • ืขื•ึนื‘ึตื“: ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, Envoy ื™ื•ืฆืจ ืฉืจืฉื•ืจ ืขื•ื‘ื“ ืขื‘ื•ืจ ื›ืœ ืฉืจืฉื•ืจ ื—ื•ืžืจื” ื‘ืžืขืจื›ืช, ื ื™ืชืŸ ืœืฉืœื•ื˜ ื‘ื›ืš ื‘ืืžืฆืขื•ืช ื”ืืคืฉืจื•ืช --concurrency. ื›ืœ ืฉืจืฉื•ืจ ืขื•ื‘ื“ ืžืคืขื™ืœ ืœื•ืœืืช ืื™ืจื•ืขื™ื "ืœื ื—ื•ืกืžืช", ืืฉืจ ืื—ืจืื™ืช ืœื”ืื–ื ื” ืœื›ืœ ืžืื–ื™ืŸ; ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ืฉื•ืจื•ืช ืืœื” (29 ื‘ื™ื•ืœื™ 2017) ืื™ืŸ ืจื™ืกื•ืง ืฉืœ ื”ืžืื–ื™ืŸ, ืงื‘ืœืช ื—ื™ื‘ื•ืจื™ื ื—ื“ืฉื™ื, ื™ืฆื™ืจืช ืขืจื™ืžืช ืคื™ืœื˜ืจื™ื ืขื‘ื•ืจ ื”ื—ื™ื‘ื•ืจ, ื•ืขื™ื‘ื•ื“ ื›ืœ ืคืขื•ืœื•ืช ื”ืงืœื˜/ืคืœื˜ (IO) ื‘ืžื”ืœืš ื—ื™ื™ ื”ื—ื™ื‘ื•ืจ. ืฉื•ื‘, ื–ื” ืžืืคืฉืจ ืœื›ืชื•ื‘ ืืช ืจื•ื‘ ืงื•ื“ ื”ื˜ื™ืคื•ืœ ื‘ื—ื™ื‘ื•ืจ ื›ืื™ืœื• ื”ื™ื” ืคืชื™ืœ ื‘ื•ื“ื“.
  • ืฉื˜ื™ืคืช ืงื‘ืฆื™ื: ืœื›ืœ ืงื•ื‘ืฅ ืฉ-Envoy ื›ื•ืชื‘, ื‘ืขื™ืงืจ ื™ื•ืžื ื™ ื’ื™ืฉื”, ื™ืฉ ื›ืจื’ืข ืฉืจืฉื•ืจ ื—ืกื™ืžื” ืขืฆืžืื™. ื–ืืช ื‘ืฉืœ ื”ืขื•ื‘ื“ื” ืฉื›ืชื™ื‘ื” ืœืงื‘ืฆื™ื ื”ืžืื•ื—ืกื ื™ื ื‘ืžื˜ืžื•ืŸ ืขืœ ื™ื“ื™ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื’ื ื‘ืขืช ืฉื™ืžื•ืฉ O_NONBLOCK ื™ื›ื•ืœ ืœืคืขืžื™ื ืœื”ื™ื—ืกื (ืื ื—ื”). ื›ืืฉืจ ืฉืจืฉื•ืจื™ ืขื•ื‘ื“ื™ื ืฆืจื™ื›ื™ื ืœื›ืชื•ื‘ ืœืงื•ื‘ืฅ, ื”ื ืชื•ื ื™ื ืœืžืขืฉื” ืžื•ืขื‘ืจื™ื ืœืžืื’ืจ ื‘ื–ื™ื›ืจื•ืŸ ืฉื‘ื• ื”ื ื ืฉื˜ืคื™ื ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื“ืจืš ื”ืฉืจืฉื•ืจ ืฉื˜ื™ืคืช ืงื•ื‘ืฅ. ื–ื”ื• ืื–ื•ืจ ืงื•ื“ ืื—ื“ ืฉื‘ื• ืžื‘ื—ื™ื ื” ื˜ื›ื ื™ืช ื›ืœ ืฉืจืฉื•ืจื™ ื”ืขื•ื‘ื“ื™ื ื™ื›ื•ืœื™ื ืœื—ืกื•ื ืืช ืื•ืชื” ื ืขื™ืœื” ืชื•ืš ื›ื“ื™ ื ื™ืกื™ื•ืŸ ืœืžืœื ืžืื’ืจ ื–ื™ื›ืจื•ืŸ.

ื˜ื™ืคื•ืœ ื‘ื—ื™ื‘ื•ืจื™ื

ื›ืคื™ ืฉื ื“ื•ืŸ ื‘ืงืฆืจื” ืœืขื™ืœ, ื›ืœ ืฉืจืฉื•ืจื™ ื”ืขื•ื‘ื“ื™ื ืžืงืฉื™ื‘ื™ื ืœื›ืœ ื”ืžืื–ื™ื ื™ื ืœืœื ื›ืœ ืจืกื™ืกื™ื. ืœืคื™ื›ืš, ื”ืงืจื ืœ ืžืฉืžืฉ ืœืฉืœื™ื—ืช ืฉืงืขื™ื ืžืงื•ื‘ืœื™ื ื‘ื—ื™ื ื ื™ื•ืช ืœืฉืจืฉื•ืจื™ ืขื•ื‘ื“ื™ื. ื’ืจืขื™ื ื™ื ืžื•ื“ืจื ื™ื™ื ื‘ื“ืจืš ื›ืœืœ ื˜ื•ื‘ื™ื ื‘ื–ื”, ื”ื ืžืฉืชืžืฉื™ื ื‘ืชื›ื•ื ื•ืช ื›ืžื• ื”ื’ื‘ืจืช ืขื“ื™ืคื•ืช ืงืœื˜/ืคืœื˜ (IO) ื›ื“ื™ ืœื ืกื•ืช ืœืžืœื ืฉืจืฉื•ืจ ื‘ืขื‘ื•ื“ื” ืœืคื ื™ ืฉื”ื ืžืชื—ื™ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื—ื•ื˜ื™ื ืื—ืจื™ื ืฉืžืื–ื™ื ื™ื ื’ื ื”ื ื‘ืื•ืชื• ืฉืงืข, ื•ื’ื ืœื ืžืฉืชืžืฉื™ื ื‘-round robin ื ืขื™ืœื” (Spinlock) ืœืขื™ื‘ื•ื“ ื›ืœ ื‘ืงืฉื”.
ื‘ืจื’ืข ืฉื—ื™ื‘ื•ืจ ืžืชืงื‘ืœ ื‘ืฉืจืฉื•ืจ ืขื•ื‘ื“, ื”ื•ื ืœืขื•ืœื ืœื ืขื•ื–ื‘ ืืช ื”ืฉืจืฉื•ืจ ื”ื–ื”. ื›ืœ ืขื™ื‘ื•ื“ ื ื•ืกืฃ ืฉืœ ื”ื—ื™ื‘ื•ืจ ืžื˜ื•ืคืœ ื‘ืžืœื•ืื• ื‘ืฉืจืฉื•ืจ ื”ืขื•ื‘ื“, ื›ื•ืœืœ ื›ืœ ื”ืชื ื”ื’ื•ืช ื”ืขื‘ืจื”.

ื™ืฉ ืœื›ืš ืžืกืคืจ ื”ืฉืœื›ื•ืช ื—ืฉื•ื‘ื•ืช:

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

ืžื” ื”ืžืฉืžืขื•ืช ืฉืœ ืื™-ื—ืกื™ืžื”?

ื”ืžื•ื ื— "ืœื ื—ื•ืกื" ืฉื™ืžืฉ ืžืกืคืจ ืคืขืžื™ื ืขื“ ื›ื” ื›ืืฉืจ ื“ื ื• ื›ื™ืฆื“ ืคื•ืขืœ ื”ืฉืจืฉื•ืจ ื”ืจืืฉื™ ื•ื”ืขื•ื‘ื“. ื›ืœ ื”ืงื•ื“ ื ื›ืชื‘ ื‘ื”ื ื—ื” ืฉืฉื•ื ื“ื‘ืจ ืœืขื•ืœื ืœื ื ื—ืกื. ืขื ื–ืืช, ื–ื” ืœื ืœื’ืžืจื™ ื ื›ื•ืŸ (ืžื” ืœื ืœื’ืžืจื™ ื ื›ื•ืŸ?).

Envoy ืžืฉืชืžืฉ ื‘ืžืกืคืจ ืžื ืขื•ืœื™ ืชื”ืœื™ื›ื™ื ืืจื•ื›ื™ื:

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

ืื—ืกื•ืŸ ืžืงื•ืžื™ ืฉืœ ื—ื•ื˜ื™ื

ื‘ื’ืœืœ ื”ืื•ืคืŸ ืฉื‘ื• Envoy ืžืคืจื™ื“ ื‘ื™ืŸ ืชื—ื•ืžื™ ื”ืื—ืจื™ื•ืช ืฉืœ ื”ืฉืจืฉื•ืจ ื”ืจืืฉื™ ืœืื—ืจื™ื•ืช ืฉืœ ื—ื•ื˜ ื”ืขื•ื‘ื“, ื™ืฉื ื” ื“ืจื™ืฉื” ืฉื ื™ืชืŸ ืœื‘ืฆืข ืขื™ื‘ื•ื“ ืžื•ืจื›ื‘ ื‘ื—ื•ื˜ ื”ืจืืฉื™ ื•ืœืื—ืจ ืžื›ืŸ ืœืกืคืง ืœื›ืœ ื—ื•ื˜ ืขื•ื‘ื“ ื‘ืฆื•ืจื” ืžืื•ื“ ื‘ืžืงื‘ื™ืœ. ืกืขื™ืฃ ื–ื” ืžืชืืจ ืื—ืกื•ืŸ ืžืงื•ืžื™ ืฉืœ ื—ื•ื˜ ืฉืœื™ื—ื™ื (TLS) ื‘ืจืžื” ื’ื‘ื•ื”ื”. ื‘ื—ืœืง ื”ื‘ื ืืชืืจ ื›ื™ืฆื“ ื”ื•ื ืžืฉืžืฉ ืœื ื™ื”ื•ืœ ืืฉื›ื•ืœ.
[ืชืจื’ื•ื] ื“ื’ื ื”ืฉืจืฉื•ืจ ืฉืœ ื”ืฉืœื™ื—

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

ืžืขืจื›ืช ื”-TLS (ืื—ืกื•ืŸ ืžืงื•ืžื™ ืฉืœ ื—ื•ื˜ื™ื) ืฉืœ Envoy ืคื•ืขืœืช ื‘ืื•ืคืŸ ื”ื‘ื:

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

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

Envoy ืžืฉืชืžืฉ ื‘ื–ื” ื‘ืฉืชื™ ื“ืจื›ื™ื ืฉื•ื ื•ืช:

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

ืฉืจืฉื•ืจ ืขื“ื›ื•ืŸ ืืฉื›ื•ืœ

ื‘ื—ืœืง ื–ื”, ืืชืืจ ื›ื™ืฆื“ TLS (ืื—ืกื•ืŸ ืžืงื•ืžื™ ืฉืœ ืฉืจืฉื•ืจ) ืžืฉืžืฉ ืœื ื™ื”ื•ืœ ืืฉื›ื•ืœ. ื ื™ื”ื•ืœ ืืฉื›ื•ืœื•ืช ื›ื•ืœืœ xDS API ื•/ืื• ืขื™ื‘ื•ื“ DNS, ื›ืžื• ื’ื ื‘ื“ื™ืงืช ืชืงื™ื ื•ืช.
[ืชืจื’ื•ื] ื“ื’ื ื”ืฉืจืฉื•ืจ ืฉืœ ื”ืฉืœื™ื—

ื ื™ื”ื•ืœ ื–ืจื™ืžืช ืืฉื›ื•ืœื•ืช ื›ื•ืœืœ ืืช ื”ืจื›ื™ื‘ื™ื ื•ื”ืฉืœื‘ื™ื ื”ื‘ืื™ื:

  1. ืžื ื”ืœ ื”ืืฉื›ื•ืœื•ืช ื”ื•ื ืจื›ื™ื‘ ื‘-Envoy ื”ืžื ื”ืœ ืืช ื›ืœ ื”ื–ืจืžื™ื ื”ืžื•ื›ืจื™ื ืฉืœ ื”ืืฉื›ื•ืœื•ืช, ื”-API ืฉืœ Cluster Discovery Service (CDS), ื”-API ืฉืœ Secret Discovery Service (SDS) ื•-Endpoint Discovery Service (EDS), DNS ื•ื‘ื“ื™ืงื•ืช ืชืงื™ื ื•ืช ื—ื™ืฆื•ื ื™ื•ืช. ื”ื™ื ืื—ืจืื™ืช ืœื™ืฆื™ืจืช ืชืฆื•ื’ื” "ืขืงื‘ื™ืช ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ" ืฉืœ ื›ืœ ืืฉื›ื•ืœ ื‘ืžืขืœื” ื”ื–ืจื, ื”ื›ื•ืœืœืช ืžืืจื—ื™ื ืฉื”ืชื’ืœื• ื›ืžื• ื’ื ืžืฆื‘ ื‘ืจื™ืื•ืชื™.
  2. ื‘ื•ื“ืง ื”ื‘ืจื™ืื•ืช ืžื‘ืฆืข ื‘ื“ื™ืงืช ืชืงื™ื ื•ืช ืืงื˜ื™ื‘ื™ืช ื•ืžื“ื•ื•ื— ืœืžื ื”ืœ ื”ืืฉื›ื•ืœ ืขืœ ืฉื™ื ื•ื™ื™ื ื‘ืžืฆื‘ ื”ื‘ืจื™ืื•ืช.
  3. CDS (Cluster Discovery Service) / SDS (Secret Discovery Service) / EDS (Endpoint Discovery Service) / DNS ืžื‘ื•ืฆืขื™ื ื›ื“ื™ ืœืงื‘ื•ืข ื—ื‘ืจื•ืช ื‘ืืฉื›ื•ืœ. ืฉื™ื ื•ื™ ื”ืžืฆื‘ ืžื•ื—ื–ืจ ืœืžื ื”ืœ ื”ืืฉื›ื•ืœ.
  4. ื›ืœ ื—ื•ื˜ ืขื•ื‘ื“ ืžื‘ืฆืข ื‘ืจืฆื™ืคื•ืช ืœื•ืœืืช ืื™ืจื•ืข.
  5. ื›ืืฉืจ ืžื ื”ืœ ื”ืืฉื›ื•ืœ ืงื•ื‘ืข ืฉื”ืžืฆื‘ ืฉืœ ืืฉื›ื•ืœ ื”ืฉืชื ื”, ื”ื•ื ื™ื•ืฆืจ ืชืžื•ื ืช ืžืฆื‘ ื—ื“ืฉื” ืœืงืจื™ืื” ื‘ืœื‘ื“ ืฉืœ ืžืฆื‘ ื”ืืฉื›ื•ืœ ื•ืฉื•ืœื— ืื•ืชื” ืœื›ืœ ืฉืจืฉื•ืจ ืขื•ื‘ื“.
  6. ื‘ืžื”ืœืš ื”ืชืงื•ืคื” ื”ืฉืงื˜ื” ื”ื‘ืื”, ืฉืจืฉื•ืจ ื”ืขื•ื‘ื“ ื™ืขื“ื›ืŸ ืืช ืชืžื•ื ืช ื”ืžืฆื‘ ื‘ืžืฉื‘ืฆืช ื”-TLS ื”ืžื•ืงืฆื”.
  7. ื‘ืžื”ืœืš ืื™ืจื•ืข I/O ืฉืืžื•ืจ ืœืงื‘ื•ืข ืืช ื”ืžืืจื— ืœืื™ื–ื•ืŸ ื”ืขื•ืžืก, ืžืื–ืŸ ื”ืขื•ืžืก ื™ื‘ืงืฉ ื—ืจื™ืฅ TLS (Thread Local storage) ื›ื“ื™ ืœืงื‘ืœ ืžื™ื“ืข ืขืœ ื”ืžืืจื—. ื–ื” ืœื ื“ื•ืจืฉ ืžื ืขื•ืœื™ื. ืฉื™ืžื• ืœื‘ ื’ื ืฉ-TLS ื™ื›ื•ืœ ื’ื ืœื”ืคืขื™ืœ ืื™ืจื•ืขื™ ืขื“ื›ื•ืŸ ื›ืš ืฉืžืื–ื ื™ ืขื•ืžืกื™ื ื•ืจื›ื™ื‘ื™ื ืื—ืจื™ื ื™ื›ื•ืœื™ื ืœื—ืฉื‘ ืžื—ื“ืฉ ืžื˜ืžื•ื ื™ื, ืžื‘ื ื™ ื ืชื•ื ื™ื ื•ื›ื•'. ื–ื” ืžืขื‘ืจ ืœื”ื™ืงืฃ ื”ืคื•ืกื˜ ื”ื–ื”, ืื‘ืœ ื ืขืฉื” ื‘ื• ืฉื™ืžื•ืฉ ื‘ืžืงื•ืžื•ืช ืฉื•ื ื™ื ื‘ืงื•ื“.

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

ืชืช-ืžืขืจื›ื•ืช ืื—ืจื•ืช ืฉืขื•ืฉื•ืช ืฉื™ืžื•ืฉ ื‘-TLS

TLS (ืื—ืกื•ืŸ ืžืงื•ืžื™ ืฉืœ ืฉืจืฉื•ืจ) ื•-RCU (ืขื“ื›ื•ืŸ ื”ืขืชืงืช ืงืจื™ืื”) ื ืžืฆืื™ื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘-Envoy.

ื“ื•ื’ืžืื•ืช ืœืฉื™ืžื•ืฉ:

  • ืžื ื’ื ื•ืŸ ืœืฉื™ื ื•ื™ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืžื”ืœืš ื”ื‘ื™ืฆื•ืข: ื”ืจืฉื™ืžื” ื”ื ื•ื›ื—ื™ืช ืฉืœ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžื•ืคืขืœืช ืžื—ื•ืฉื‘ืช ื‘ืฉืจืฉื•ืจ ื”ืจืืฉื™. ืœืื—ืจ ืžื›ืŸ ื›ืœ ืฉืจืฉื•ืจ ืขื•ื‘ื“ ืžืงื‘ืœ ืชืžื•ื ืช ืžืฆื‘ ืœืงืจื™ืื” ื‘ืœื‘ื“ ื‘ืืžืฆืขื•ืช ืกืžื ื˜ื™ืงื” ืฉืœ RCU.
  • ื”ื—ืœืคืช ื˜ื‘ืœืื•ืช ืžืกืœื•ืœื™ื: ืขื‘ื•ืจ ื˜ื‘ืœืื•ืช ืžืกืœื•ืœื™ื ื”ืžืกื•ืคืงื•ืช ืขืœ ื™ื“ื™ RDS (ืฉื™ืจื•ืช ื’ื™ืœื•ื™ ื ืชื™ื‘), ื˜ื‘ืœืื•ืช ื”ืžืกืœื•ืœื™ื ื ื•ืฆืจื•ืช ื‘ืฉืจืฉื•ืจ ื”ืจืืฉื™. ืชืžื•ื ืช ื”ืžืฆื‘ ืœืงืจื™ืื” ื‘ืœื‘ื“ ืชืกื•ืคืง ืœืื—ืจ ืžื›ืŸ ืœื›ืœ ืฉืจืฉื•ืจ ืขื•ื‘ื“ ื‘ืืžืฆืขื•ืช ืกืžื ื˜ื™ืงื” ืฉืœ RCU (Read Copy Update). ื–ื” ื”ื•ืคืš ืืช ื˜ื‘ืœืื•ืช ื”ืžืกืœื•ืœ ืœืฉื™ื ื•ื™ ื™ืขื™ืœ ืžื‘ื—ื™ื ื” ืื˜ื•ืžื™ืช.
  • ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ื›ื•ืชืจื•ืช HTTP: ื›ืคื™ ืฉืžืชื‘ืจืจ, ื—ื™ืฉื•ื‘ ื›ื•ืชืจืช ื”-HTTP ืขื‘ื•ืจ ื›ืœ ื‘ืงืฉื” (ื‘ื–ืžืŸ ื”ืคืขืœืช ~25K+ RPS ืœื›ืœ ืœื™ื‘ื”) ื”ื•ื ื“ื™ ื™ืงืจ. Envoy ืžื—ืฉื‘ ื‘ืื•ืคืŸ ืžืจื›ื–ื™ ืืช ื”ื›ื•ืชืจืช ื‘ืขืจืš ื›ืœ ื—ืฆื™ ืฉื ื™ื™ื” ื•ืžืกืคืง ืื•ืชื” ืœื›ืœ ืขื•ื‘ื“ ื‘ืืžืฆืขื•ืช TLS ื•-RCU.

ื™ืฉื ื ืžืงืจื™ื ืื—ืจื™ื, ืืš ื”ื“ื•ื’ืžืื•ืช ื”ืงื•ื“ืžื•ืช ืืžื•ืจื•ืช ืœืกืคืง ื”ื‘ื ื” ื˜ื•ื‘ื” ืฉืœ ืžื” TLS ืžืฉืžืฉ.

ืžืœื›ื•ื“ื•ืช ื‘ื™ืฆื•ืขื™ื ื™ื“ื•ืขื•ืช

ืœืžืจื•ืช ืฉ-Envoy ืžืชืคืงื“ ื“ื™ ื˜ื•ื‘ ื‘ืกืš ื”ื›ืœ, ื™ืฉื ื ื›ืžื” ืชื—ื•ืžื™ื ื‘ื•ืœื˜ื™ื ื”ื“ื•ืจืฉื™ื ืชืฉื•ืžืช ืœื‘ ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ื• ื‘ืžืงื‘ื™ืœ ื•ืชืคื•ืงื” ื’ื‘ื•ื”ื™ื ืžืื•ื“:

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

ืกื™ื›ื•ื

ืžื•ื“ืœ ื”ืฉืจืฉื•ืจ ืฉืœ Envoy ื ื•ืขื“ ืœืกืคืง ืงืœื•ืช ืชื›ื ื•ืช ื•ื”ืงื‘ื™ืœื™ื•ืช ืžืกื™ื‘ื™ืช ืขืœ ื—ืฉื‘ื•ืŸ ื–ื™ื›ืจื•ืŸ ื•ื—ื™ื‘ื•ืจื™ื ืฉืขืœื•ืœื™ื ืœื‘ื–ื‘ื– ืื ืื™ื ื ืžื•ื’ื“ืจื™ื ื›ื”ืœื›ื”. ืžื•ื“ืœ ื–ื” ืžืืคืฉืจ ืœื• ืœื‘ืฆืข ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ืžืื•ื“ ื‘ืกืคื™ืจืช ื—ื•ื˜ื™ื ื•ืชืคื•ืงื” ื’ื‘ื•ื”ื™ื ืžืื•ื“.
ื›ืคื™ ืฉืฆื™ื™ื ืชื™ ื‘ืงืฆืจื” ื‘ื˜ื•ื•ื™ื˜ืจ, ื”ืขื™ืฆื•ื‘ ื™ื›ื•ืœ ืœืจื•ืฅ ื’ื ืขืœ ื’ื‘ื™ ืขืจื™ืžืช ืจืฉืช ืžืœืื” ื‘ืžืฆื‘ ืžืฉืชืžืฉ ื›ื’ื•ืŸ DPDK (Data Plane Development Kit), ืžื” ืฉื™ื›ื•ืœ ืœื’ืจื•ื ืœื›ืš ืฉืฉืจืชื™ื ืงื•ื ื‘ื ืฆื™ื•ื ืœื™ื™ื ื™ื˜ืคืœื• ื‘ืžื™ืœื™ื•ื ื™ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื” ืขื ืขื™ื‘ื•ื“ L7 ืžืœื. ื™ื”ื™ื” ืžืื•ื“ ืžืขื ื™ื™ืŸ ืœืจืื•ืช ืžื” ื™ื™ื‘ื ื” ื‘ืฉื ื™ื ื”ืงืจื•ื‘ื•ืช.
ื”ืขืจื” ืžื”ื™ืจื” ืื—ืจื•ื ื”: ื ืฉืืœืชื™ ืคืขืžื™ื ืจื‘ื•ืช ืžื“ื•ืข ื‘ื—ืจื ื• ื‘-C++ ืขื‘ื•ืจ Envoy. ื”ืกื™ื‘ื” ื ื•ืชืจื” ืฉื”ื™ื ืขื“ื™ื™ืŸ ื”ืฉืคื” ื”ืชืขืฉื™ื™ืชื™ืช ื”ื™ื—ื™ื“ื” ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ื” ื ื™ืชืŸ ืœื‘ื ื•ืช ืืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืžืชื•ืืจืช ื‘ืคื•ืกื˜ ื–ื”. C++ ื‘ื”ื—ืœื˜ ืœื ืžืชืื™ื ืœื›ืœ ื”ืคืจื•ื™ืงื˜ื™ื ืื• ืืคื™ืœื• ืœื”ืจื‘ื” ืคืจื•ื™ืงื˜ื™ื, ืื‘ืœ ืœืžืงืจื™ ืฉื™ืžื•ืฉ ืžืกื•ื™ืžื™ื ื”ื•ื ืขื“ื™ื™ืŸ ื”ื›ืœื™ ื”ื™ื—ื™ื“ ืœื‘ื™ืฆื•ืข ื”ืขื‘ื•ื“ื”.

ืงื™ืฉื•ืจื™ื ืœืงื•ื“

ืงื™ืฉื•ืจื™ื ืœืงื‘ืฆื™ื ืขื ืžืžืฉืงื™ื ื•ื™ื™ืฉื•ืžื™ ื›ื•ืชืจื•ืช ืฉื ื“ื•ื ื• ื‘ืคื•ืกื˜ ื–ื”:

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

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