рдЦрд╛рдирд╛рдмрджреЛрд╢ рдФрд░ рдХреМрдВрд╕реБрд▓ рдкрд░ рд╕реЗрд╡рд╛ рдореЗрд╖ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╖ рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛, рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдкрд░ рднрд╛рд░ рдХрдо рдХрд┐рдпрд╛ред


рд╣рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ


рд╕реЗрд╡рд╛ рдореЗрд╖ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдХрдВрдкрдиреА рдореЗрдВ рдХрдИ рдЯреАрдореЗрдВ, рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рдпрд╛ рдЖрдк рдПрдХ рдореЛрдиреЛрд▓рд┐рде рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╖рдп рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдкрд╣рд▓реА рд╕реЗрд╡рд╛ рдореЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд┐рд▓рд┐рдпрдо рдореЙрд░реНрдЧрди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред


рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ, рдХрдВрдкрдиреА рдореЗрдВ рдЙрддреНрдкрд╛рдж рдЯреАрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 1.5 рдЧреБрдирд╛ рдмрдврд╝реА рд╣реИред рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 20 рд╕реЗ рдЕрдзрд┐рдХ рдЯреАрдореЗрдВ рд╣реИрдВ, рд▓рдЧрднрдЧ рд╕рднреА рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣реИрдВред рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдореЛрдиреЛрд▓рд┐рде рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдУрд░ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдЕрдкрдиреА рдпрд╛рддреНрд░рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 3-4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рднреНрдп рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реБрдЖред


рдмреЗрд╢рдХ, рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╕реЗрд╡рд╛рдПрдБ, рдЙрддрдиреА рд╣реА рдХрдард┐рди рд╣реЛрддреА рд╣реИрдВ, рдЙрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдЬрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдард┐рди рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рдмреАрдЪ рдПрдХ рджреАрд╡рд╛рд░ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд▓реЙрдиреНрдЪ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдУрдкреАрдПрд╕-рдкрд░реАрдХреНрд╖рд╛ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред


рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ рдмрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдмрд╣реБрдд рд╣реА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рд╕рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐:


  • рд╕реЗрд╡рд╛ рдЦреЛрдЬ
  • рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдВрдЧ;
  • рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ / рд░рд┐рдЯреНрд░реА / рдЯрд╛рдЗрдордЖрдЙрдЯ;
  • рдирд┐рдЧрд░рд╛рдиреА / рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдХрдИ рдЕрдиреНрдпред

, , Docker-. Nomad, Consul. , Kubernetes , Nomad .


, Kubernetes, , HashiCorp-.


Nomad Docker- ( QEMU, raw/isolated fork/exec Java). Consul Service Discovery DNS-.



Nomad- Consul-. - ( ), .


Nomad Consul . Consul , (node), healthcheck . (TCP, HTTP, gRPC, script). Nomad key-value Consul Vault, , -. Nomad consul-template.


Nomad, Consul HTTP API, , , Nomad , тАФ ip-port - healthcheck. , k8s Pod, Allocation, .


, , operations engineer. , , : , , .


HashiCorp-, . Service Mesh , Redis .


Service Mesh


Service Mesh : (data plane control plane). Data plane , - . control plane, . .


тАФ sidecar ( PodтАЩe/). , .


Service Mesh . Linkerd linkerd-proxy, Consul Connect Istio third-party . Envoy Lyft. open source , .



, :


  • Service Mesh 2018 . , .
  • .
  • control plane .


control plane


control plane тАФ , Service Mesh . , , . , , .


Service Mesh , Mesh, . Envoy , , , .


Envoy data plane


Envoy sidecar- . sidecar-, . . (ingress) Consul, (egress) -. , , , .


: Nomad .



Service Discovery


Service Discovery? , ? sidecar, control plane agent, control plane API, API Consul API Envoy. endpoint discovery (EDS). ┬л┬╗ - Consul. Envoy , .




Prometheus. Envoy , , Circuit Breaker - . :



, , Vizceral Netflix:




тАФ , . , - . , Envoy Distributed tracing Zipkin/Jaeger (X-b3-headers).



, , Jaeger Elastic APM (Application Performance Management). тАФ Kibana, . Elastic , , , Jaeger, , APM Distributed tracing. Jaeger-, Envoy, , , , Elastic APM. Jaeger, Elastic APM , HTTP- trace-id . Jaeger , Elastic , .



Service Mesh . тАФ . HTTP/1, TCP Redis. Mesh , . , . , Service Mesh.


Ops- Mesh: , , Canary, . , Istio .


Service Mesh


, Service Mesh:


  • тАФ .
  • Service Discovery , - . c-plane 10тАМтАп , , , , . , . Envoy 150 RAM, . , 100 RPS, 30 .
  • . 2тАУ3 .
  • тАФ , .

:


  • , .
  • - Envoy, .
  • , ( , ).

All Articles