[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓

рд▓реЗрдЦрдХреЛ рдЕрдиреБрд╡рд╛рдж: рджреВрдд рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓ - https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310

рдорд▓рд╛рдИ рдпреЛ рд▓реЗрдЦ рдПрдХрджрдореИ рд░реЛрдЪрдХ рд▓рд╛рдЧреНрдпреЛ, рд░ рджреВрдд рдкреНрд░рд╛рдпрдГ "istio" рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рд╡рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдХреЛ "рдЗрдирдЧреНрд░реЗрд╕ рдХрдиреНрдЯреНрд░реЛрд▓рд░" рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдзреЗрд░реИ рдЬрд╕реЛ рдорд╛рдирд┐рд╕рд╣рд░реВрд╕рдБрдЧ рдпрд╕рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рд╣реБрдБрджреИрди, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рд╛рдорд╛рдиреНрдпрд╕рдБрдЧред Nginx рд╡рд╛ Haproxy рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рдХреЗрд╣рд┐ рдмрд┐рдЧреНрд░рдиреНрдЫ рднрдиреЗ, рдпреЛ рднрд┐рддреНрд░рдмрд╛рдЯ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рд░рд╛рдореНрд░реЛ рд╣реБрдиреЗрдЫред рдореИрд▓реЗ рд╕рдХреЗрд╕рдореНрдо рдзреЗрд░реИ рдкрд╛рдард▓рд╛рдИ рд░реВрд╕реА рднрд╛рд╖рд╛рдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рд╡рд┐рд╢реЗрд╖ рд╢рдмреНрджрд╣рд░реВ рд╕рд╣рд┐рдд; рдЬрд╕рд▓рд╛рдИ рдпреЛ рд╣реЗрд░реНрди рдкреАрдбрд╛рджрд╛рдпреА рд▓рд╛рдЧреНрдЫ, рдореИрд▓реЗ рдореВрд▓ рд╢рдмреНрджрд╣рд░реВ рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рдЫреЛрдбреЗрдВред рдмрд┐рд░рд╛рд▓реЛрдорд╛ рд╕реНрд╡рд╛рдЧрдд рдЫред

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

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

рдереНрд░реЗрдбрд┐рдЩ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди

[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓

рд░рд╛рдЬрджреВрддрд▓реЗ рддреАрди рдлрд░рдХ рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ:

  • рдореБрдЦреНрдп: рдпрд╕ рдереНрд░реЗрдбрд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд░ рд╕рдорд╛рдкреНрддрд┐, XDS (xDiscovery рд╕реЗрд╡рд╛) API рдХреЛ рд╕рдмреИ рдкреНрд░рд╢реЛрдзрди, DNS, рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪ, рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓рд╕реНрдЯрд░ рд░ рд░рдирдЯрд╛рдЗрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди, рддрдереНрдпрд╛рдЩреНрдХ рд░рд┐рд╕реЗрдЯ, рдкреНрд░рд╢рд╛рд╕рди рд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди - рд▓рд┐рдирдХреНрд╕ рд╕рдВрдХреЗрддрд╣рд░реВ рд╕рд╣рд┐рдд рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрджрдЫред рддрд╛рддреЛ рдкреБрди: рд╕реБрд░реБ, рдЖрджрд┐ред рдпрд╕ рдереНрд░реЗрдбрдорд╛ рд╣реБрдиреНрдЫ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд░ "рдирди-рдмреНрд▓рдХрд┐рдЩ"ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдореБрдЦреНрдп рдереНрд░реЗрдбрд▓реЗ рд╕рдмреИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдордиреНрд╡рдп рдЧрд░реНрджрдЫ рдЬрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ CPU рдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдпрд╕рд▓реЗ рдзреЗрд░реИ рдирд┐рдпрдиреНрддреНрд░рдг рдХреЛрдбрд▓рд╛рдИ рдПрдХрд▓ рдереНрд░реЗрдб рдЧрд░рд┐рдПрдХреЛ рдЬрд╕реНрддреИ рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • рдХрд╛рдорджрд╛рд░: рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рджреВрддрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдереНрд░реЗрдбрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ, рдпреЛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред --concurrencyред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд▓реЗ "рдирди-рдмреНрд▓рдХрд┐рдЩ" рдШрдЯрдирд╛ рд▓реБрдк рдЪрд▓рд╛рдЙрдБрдЫ, рдЬреБрди рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЛрддрд╛рд▓рд╛рдИ рд╕реБрдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╣реБрдиреНрдЫ; рд▓реЗрдЦрдирдХреЛ рд╕рдордпрдорд╛ (рдЬреБрд▓рд╛рдИ 29, 2017) рддреНрдпрд╣рд╛рдБ рд╢реНрд░реЛрддрд╛рдХреЛ рдХреБрдиреИ рд╢рд░реНрдбрд┐рдЩ рдЫреИрди, рдирдпрд╛рдБ рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджреИ, рдлрд┐рд▓реНрдЯрд░ рд╕реНрдЯреНрдпрд╛рдХ рдЗрдиреНрд╕реНрдЯреНрдпрд╛рдиреНрдЯрд┐рдпрдЯ рдЧрд░реНрджреИред рдЬрдбрд╛рди, рд░ рдЬрдбрд╛рдирдХреЛ рдЬреАрд╡рдирдХрд╛рд▓рдорд╛ рд╕рдмреИ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ (IO) рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИред рдлреЗрд░рд┐, рдпрд╕рд▓реЗ рдзреЗрд░реИ рдЬрд╕реЛ рдЬрдбрд╛рди рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рдХреЛрдбрд▓рд╛рдИ рдПрдХрд▓ рдереНрд░реЗрдб рдЧрд░рд┐рдПрдХреЛ рдЬрд╕реНрддреЛ рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • рдлрд╛рдЗрд▓ рдлреНрд▓рд╢рд░: рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓ рдЬреБрди рджреВрддрд▓реЗ рд▓реЗрдЦреНрдЫ, рдореБрдЦреНрдп рд░реВрдкрдорд╛ рд▓рдЧрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрджрдЫ, рд╣рд╛рд▓ рдПрдХ рд╕реНрд╡рддрдиреНрддреНрд░ рдмреНрд▓рдХрд┐рдЩ рдереНрд░реЗрдб рдЫред рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкрдирд┐ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛рд╕ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд▓реЗрдЦреНрдиреБ рддрдереНрдпрдХреЛ рдХрд╛рд░рдг рд╣реЛ O_NONBLOCK рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рдЕрд╡рд░реБрджреНрдз рд╣реБрди рд╕рдХреНрдЫ (рд╕рд╛рд╕)ред рдЬрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ, рдбрд╛рдЯрд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдореЗрдореЛрд░реАрдХреЛ рдмрдлрд░рдорд╛ рд╕рд╛рд░рд┐рдиреНрдЫ рдЬрд╣рд╛рдБ рдпреЛ рдЕрдиреНрддрддрдГ рдереНрд░реЗрдб рдорд╛рд░реНрдлрдд рдлреНрд▓рд╢ рд╣реБрдиреНрдЫред рдлрд╛рдЗрд▓ рдлреНрд▓рд╢ред рдпреЛ рдХреЛрдбрдХреЛ рдПрдЙрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реЛ рдЬрд╣рд╛рдБ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рдореЗрдореЛрд░реА рдмрдлрд░ рднрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рд╕рдорд╛рди рд▓рдХ рдмреНрд▓рдХ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред

рдЬрдбрд╛рди рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩ

рдорд╛рдерд┐ рдЫреЛрдЯрдХрд░реАрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдЭреИрдВ, рд╕рдмреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рд╕рдмреИ рд╢реНрд░реЛрддрд╛рд╣рд░реВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╢рд╛рд░реНрдбрд┐рдЩ рдмрд┐рдирд╛ рд╕реБрдиреНрдЫрдиреНред рдпрд╕рд░реА, рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╕реНрд╡реАрдХреГрдд рд╕рдХреЗрдЯрд╣рд░реВ рдкрдард╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЖрдзреБрдирд┐рдХ рдХрд░реНрдиреЗрд▓рд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпрд╕рдорд╛ рдзреЗрд░реИ рд░рд╛рдореНрд░рд╛ рд╣реБрдиреНрдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдорд╛рди рд╕рдХреЗрдЯрдорд╛ рд╕реБрдиреНрдиреЗ рдЕрдиреНрдп рдереНрд░реЗрдбрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐, рд░ рд░рд╛рдЙрдиреНрдб рд░реЛрдмрд┐рди рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдХрд╛рдордорд╛ рдереНрд░реЗрдб рднрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ (IO) рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмреВрд╕реНрдЯрд┐рдЩ рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд▓рдХ (Spinlock)ред
рдПрдХ рдкрдЯрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рдЬрдбрд╛рди рд╕реНрд╡реАрдХреГрдд рднрдПрдкрдЫрд┐, рдпрд╕рд▓реЗ рддреНрдпреЛ рдереНрд░реЗрдбрд▓рд╛рдИ рдХрд╣рд┐рд▓реНрдпреИ рдЫреЛрдбреНрджреИрдиред рдЬрдбрд╛рдирдХреЛ рд╕рдмреИ рдердк рдкреНрд░рд╢реЛрдзрди рдХреБрдиреИ рдкрдирд┐ рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣рд┐рдд, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░рд┐рдиреНрдЫред

рдпрд╕рд▓реЗ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЫрдиреН:

  • рджреВрддрдХрд╛ рд╕рдмреИ рдЬрдбрд╛рди рдкреВрд▓рд╣рд░реВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рддреЛрдХрд┐рдПрдХрд╛ рдЫрдиреНред рддреНрдпрд╕реЛрднрдП, рдпрджреНрдпрдкрд┐ HTTP/2 рдЬрдбрд╛рди рдкреВрд▓рд╣рд░реВрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд╕реНрдЯреНрд░рд┐рдо рд╣реЛрд╕реНрдЯрдорд╛ рдПрдХ рдкрдЯрдХрдорд╛ рдПрдХ рдЬрдбрд╛рди рдорд╛рддреНрд░ рдмрдирд╛рдЙрдБрджрдЫ, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдЪрд╛рд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рд╕реНрдерд┐рд░ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкреНрд░рддрд┐ рдЕрдкрд╕реНрдЯреНрд░рд┐рдо рд╣реЛрд╕реНрдЯрдорд╛ рдЪрд╛рд░ HTTP/2 рдЬрдбрд╛рдирд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред
  • рджреВрддрд▓реЗ рдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреБрдХреЛ рдХрд╛рд░рдг рдпреЛ рд╣реЛ рдХрд┐ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рдПрдЙрдЯреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рд░рд╛рдЦреЗрд░, рд▓рдЧрднрдЧ рд╕рдмреИ рдХреЛрдбрд╣рд░реВ рдмреНрд▓рдХ рдирдЧрд░реА рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ рд░ рдорд╛рдиреМрдВ рдпреЛ рдПрдХрд▓ рдереНрд░реЗрдб рднрдПрдХреЛ рд╣реЛред рдпреЛ рдбрд┐рдЬрд╛рдЗрдирд▓реЗ рдзреЗрд░реИ рдХреЛрдб рд▓реЗрдЦреНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ рд░ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛рдорд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдкрдорд╛ рдорд╛рдкрди рдЧрд░реНрджрдЫред
  • рдпрджреНрдпрдкрд┐, рдореБрдЦреНрдп рдЯреЗрдХрд╡реЗрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рднрдиреЗрдХреЛ рдореЗрдореЛрд░реА рдкреВрд▓ рд░ рдЬрдбрд╛рди рджрдХреНрд╖рддрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред --concurrencyред рдЖрд╡рд╢реНрдпрдХ рднрдиреНрджрд╛ рдзреЗрд░реИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВ рднрдПрдХреЛрд▓реЗ рдореЗрдореЛрд░реА рдмрд░реНрдмрд╛рдж рдЧрд░реНрдиреЗрдЫ, рдердк рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЬрдбрд╛рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ, рд░ рдЬрдбрд╛рди рдкреВрд▓рд┐рдЩрдХреЛ рджрд░ рдШрдЯрд╛рдЙрдБрдЫред Lyft рдорд╛, рд╣рд╛рдореНрд░реЛ рджреВрдд рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдзреЗрд░реИ рдХрдо рдХрдиреНрдХрд░реНрд░реЗрдиреНрд╕реАрдХреЛ рд╕рд╛рде рдЪрд▓реНрдЫрдиреН рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЫреЗрдЙрдорд╛ рдмрд╕реНрдиреЗ рд╕реЗрд╡рд╛рд╣рд░реВрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рд╣рд╛рдореА рдЕрдзрд┐рдХрддрдо рд╕рд╣рдорддрд┐рдорд╛ рдорд╛рддреНрд░ рдПрдЬ рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рд░реВрдкрдорд╛ рджреВрдд рдЪрд▓рд╛рдЙрдБрдЫреМрдВред

рдирди рдмреНрд▓рдХрд┐рдЩ рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ?

рдореБрдЦреНрдп рд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдЫрд▓рдлрд▓ рдЧрд░реНрджрд╛ "рдирди-рдмреНрд▓рдХрд┐рдЩ" рд╢рдмреНрдж рдзреЗрд░реИ рдкрдЯрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╕рдмреИ рдХреЛрдбрд╣рд░реВ рдпреЛ рдзрд╛рд░рдгрд╛рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рдкрдирд┐ рд░реЛрдХрд┐рдПрдХреЛ рдЫреИрдиред рдпрджреНрдпрдкрд┐, рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рддреНрдп рд╣реЛрдЗрди (рдХреЗ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рддреНрдп рд╣реЛрдЗрди?)

рджреВрддрд▓реЗ рдзреЗрд░реИ рд▓рд╛рдореЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ:

  • рдЫрд▓рдлрд▓ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рдкрд╣реБрдБрдЪ рд▓рдЧрд╣рд░реВ рд▓реЗрдЦреНрджрд╛, рдЗрди-рдореЗрдореЛрд░реА рд▓рдЧ рдмрдлрд░ рднрд░реНрдиреБ рдЕрдШрд┐ рд╕рдмреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рд╕рдорд╛рди рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рд▓рдХ рд╣реЛрд▓реНрдбрд┐рдЩ рд╕рдордп рдзреЗрд░реИ рдХрдо рд╣реБрдиреБрдкрд░реНрдЫ, рддрд░ рд▓рдХрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ рд╕рдВрдЧрддрддрд╛ рд░ рдЙрдЪреНрдЪ рдереНрд░реБрдкреБрдЯрдорд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
  • рджреВрддрд▓реЗ рдереНрд░реЗрдбрдорд╛ рд╕реНрдерд╛рдиреАрдп рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рдзреЗрд░реИ рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдпреЛ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдХреЛ рд╡рд┐рд╖рдп рд╣реБрдиреЗрдЫред рдЬреЗ рд╣реЛрд╕реН, рдо рдЫреЛрдЯрдХрд░реАрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрдиреЗрдЫреБ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдереНрд░реЗрдб рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛, рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдХреЗрдиреНрджреНрд░реАрдп "рд╕реНрдЯреНрдпрд╛рдЯ рд╕реНрдЯреЛрд░" рдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рдпреЛ рддрд╛рд▓рд╛ рд▓рдЧрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред
  • рдореБрдЦреНрдп рдереНрд░реЗрдбрд▓реЗ рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд╕рдБрдЧ рд╕рдордиреНрд╡рдп рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдореБрдЦреНрдп рдереНрд░реЗрдбрдмрд╛рдЯ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ "рдкреНрд░рдХрд╛рд╢рди" рдЧрд░реЗрд░ рдЧрд░рд┐рдиреНрдЫ, рд░ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрдмрд╛рдЯ рдореБрдЦреНрдп рдереНрд░реЗрдбрдорд╛ рдлрд░реНрдХрд┐рдиреНрдЫред рдкрдард╛рдЙрдирд▓рд╛рдИ рд▓рдХ рдЪрд╛рд╣рд┐рдиреНрдЫ рддрд╛рдХрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдиреНрджреЗрд╢рд▓рд╛рдИ рдкрдЫрд┐ рдбреЗрд▓рд┐рднрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдордмрджреНрдз рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреА рддрд╛рд▓рд╛рд╣рд░реВ рдХрд╣рд┐рд▓реНрдпреИ рдЧрдореНрднреАрд░ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди, рддрд░ рддрд┐рдиреАрд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рдЕрд╡рд░реБрджреНрдз рд╣реБрди рд╕рдХреНрдЫрдиреНред
  • рдЬрдм рджреВрддрд▓реЗ рдкреНрд░рдгрд╛рд▓реА рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░рд┐рдо (рдорд╛рдирдХ рддреНрд░реБрдЯрд┐) рдорд╛ рд▓рдЧ рд▓реЗрдЦреНрдЫ, рдпрд╕рд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рджреВрддрдХреЛ рд╕реНрдерд╛рдиреАрдп рд▓рдЧрд┐рдЩ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рднрдпрд╛рдирдХ рдорд╛рдирд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдзреЗрд░реИ рдзреНрдпрд╛рди рджрд┐рдЗрдПрдХреЛ рдЫреИрдиред
  • рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдЕрдиреНрдп рдЕрдирд┐рдпрдорд┐рдд рд▓рдХрд╣рд░реВ рдЫрдиреН, рддрд░ рддреА рдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЫреИрди рд░ рдХрд╣рд┐рд▓реНрдпреИ рдЪреБрдиреМрддреА рджрд┐рдиреБ рд╣реБрдБрджреИрдиред

рдереНрд░реЗрдб рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг

рджреВрддрд▓реЗ рдореБрдЦреНрдп рдереНрд░реЗрдбрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реАрд▓рд╛рдИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реАрдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд▓реЗ рдЧрд░реНрджрд╛, рдореБрдЦреНрдп рдереНрд░реЗрдбрдорд╛ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд▓рд╛рдИ рдЕрддреНрдпрдзрд┐рдХ рд╕рдорд╡рд░реНрддреА рд░реВрдкрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреЛ рдЦрдгреНрдбрд▓реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░рдорд╛ Envoy Thread Local Storage (TLS) рд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рдЕрд░реНрдХреЛ рдЦрдгреНрдбрдорд╛ рдо рдпрд╕рд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред
[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓

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

рд░рд╛рдЬрджреВрддрдХреЛ TLS (рдереНрд░реЗрдб рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг) рдкреНрд░рдгрд╛рд▓реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдЧрд░реНрджрдЫ:

  • рдореБрдЦреНрдп рдереНрд░реЗрдбрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдХреЛрдбрд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ TLS рд╕реНрд▓рдЯ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рд╕рдХреНрдЫред рдпрджреНрдпрдкрд┐ рдпреЛ рдЕрдореВрд░реНрдд рдЫ, рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдпреЛ рдПрдХ рднреЗрдХреНрдЯрд░рдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реЛ, O(1) рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
  • рдореБрдЦреНрдп рдереНрд░реЗрдбрд▓реЗ рдпрд╕рдХреЛ рд╕реНрд▓рдЯрдорд╛ рдордирдорд╛рдиреА рдбрд╛рдЯрд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫред рдЬрдм рдпреЛ рдЧрд░рд┐рдиреНрдЫ, рдбрд╛рдЯрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛ рд▓реБрдк рдШрдЯрдирд╛рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдиреНрдЫред
  • рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ TLS рд╕реНрд▓рдЯрдмрд╛рдЯ рдкрдвреНрди рд░ рддреНрдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рдХреБрдиреИ рдкрдирд┐ рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред

рдпрджреНрдпрдкрд┐ рдпреЛ рдПрдХ рдзреЗрд░реИ рд╕рд░рд▓ рд░ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдкрдорд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рддрд┐рдорд╛рди рд╣реЛ, рдпреЛ RCU (рдкрдвреНрдиреБрд╣реЛрд╕реН-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐-рдЕрдкрдбреЗрдЯ) рдЕрд╡рд░реБрджреНрдзрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рд╕рдБрдЧ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдХрд╛рдорджрд╛рд░ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ рдХрд╛рдо рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ TLS рд╕реНрд▓рдЯрд╣рд░реВрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рджреЗрдЦреНрджреИрдирдиреНред рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рд░реНрдп рдШрдЯрдирд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рдмрд╛рдБрдХреА рдЕрд╡рдзрд┐рдорд╛ рдорд╛рддреНрд░ рд╣реБрдиреНрдЫред

рджреВрддрд▓реЗ рдпрд╕рд▓рд╛рдИ рджреБрдИ рдлрд░рдХ рддрд░рд┐рдХрд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ:

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

рдХреНрд▓рд╕реНрдЯрд░ рдЕрдкрдбреЗрдЯ рдереНрд░реЗрдбрд┐рдЩ

рдпрд╕ рдЦрдгреНрдбрдорд╛, рдо рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди TLS (рдереНрд░реЗрдб рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг) рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ xDS API рд░/рд╡рд╛ DNS рдкреНрд░рд╢реЛрдзрди, рд╕рд╛рдереИ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред
[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓

рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╡рд╛рд╣ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ рдирд┐рдореНрди рдЕрд╡рдпрд╡ рд░ рдЪрд░рдгрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:

  1. рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдиреНрдзрдХ рджреВрдд рднрд┐рддреНрд░рдХреЛ рдПрдЙрдЯрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд╣реЛ рдЬрд╕рд▓реЗ рд╕рдмреИ рдЬреНрдЮрд╛рдд рдХреНрд▓рд╕реНрдЯрд░ рдЕрдкрд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ, рдХреНрд▓рд╕реНрдЯрд░ рдбрд┐рд╕реНрдХрд╡рд░реА рд╕рд░реНрднрд┐рд╕ (CDS) API, Secret Discovery Service (SDS) рд░ Endpoint Discovery Service (EDS) APIs, DNS, рд░ рд╕рдХреНрд░рд┐рдп рдмрд╛рд╣реНрдп рдЬрд╛рдБрдЪрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪред рдпреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреНрд▓рд╕реНрдЯрд░рдХреЛ "рдЕрдиреНрддрддрдГ рд▓рдЧрд╛рддрд╛рд░" рджреГрд╢реНрдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ, рдЬрд╕рдорд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдПрдХрд╛ рд╣реЛрд╕реНрдЯрд╣рд░реВ рд╕рд╛рдереИ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫред
  2. рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрд░реАрдХреНрд╖рдХрд▓реЗ рд╕рдХреНрд░рд┐рдп рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ рд░ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдиреНрдзрдХрд▓рд╛рдИ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫред
  3. CDS (Cluster Discovery Service) / SDS (Secret Discovery Service) / EDS (Endpoint Discovery Service) / DNS рдХреНрд▓рд╕реНрдЯрд░ рд╕рджрд╕реНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЧрд░рд┐рдиреНрдЫред рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдиреНрдзрдХрдорд╛ рдлрд░реНрдХрд╛рдЗрдиреНрдЫред
  4. рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд▓реЗ рд▓рдЧрд╛рддрд╛рд░ рдШрдЯрдирд╛ рд▓реБрдк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫред
  5. рдЬрдм рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рдпрд╕рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдирдпрд╛рдБ рдкрдвреНрди-рдорд╛рддреНрд░ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рдкрдард╛рдЙрдБрдЫред
  6. рдЕрд░реНрдХреЛ рд╢рд╛рдиреНрдд рдЕрд╡рдзрд┐рдорд╛, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд▓реЗ рдЖрд╡рдВрдЯрд┐рдд TLS рд╕реНрд▓рдЯрдорд╛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗрдЫред
  7. рдмреНрдпрд╛рд▓реЗрдиреНрд╕ рд▓реЛрдб рдЧрд░реНрди рд╣реЛрд╕реНрдЯрд▓рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиреЗ I/O рдШрдЯрдирд╛рдХреЛ рд╕рдордпрдорд╛, рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд▓реЗ рд╣реЛрд╕реНрдЯрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди TLS (рдереНрд░реЗрдб рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг) рд╕реНрд▓рдЯ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗрдЫред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд╛рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдпреЛ рдкрдирд┐ рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ TLS рд▓реЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдШрдЯрдирд╛рд╣рд░реВ рдЯреНрд░рд┐рдЧрд░ рдЧрд░реНрди рд╕рдХреНрдЫ рддрд╛рдХрд┐ рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд╣рд░реВ рд░ рдЕрдиреНрдп рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд▓реЗ рдХреНрдпрд╛рд╕рд╣рд░реВ, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ, рдЖрджрд┐ рдкреБрди: рдЧрдгрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рдпреЛ рдпрд╕ рдкреЛрд╖реНрдЯрдХреЛ рджрд╛рдпрд░рд╛ рдмрд╛рд╣рд┐рд░ рдЫ, рддрд░ рдХреЛрдбрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдард╛рдЙрдБрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдорд╛рдерд┐рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд░рд╛рдЬрджреВрддрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд░реЛрдз рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрдЫ (рдкрд╣рд┐рд▓реЗ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдмрд╛рд╣реЗрдХ)ред TLS рдХреЛрдбрдХреЛ рдЬрдЯрд┐рд▓рддрд╛ рдмрд╛рд╣реЗрдХ, рдзреЗрд░реИ рдЬрд╕реЛ рдХреЛрдбрд▓реЗ рдХрд╕рд░реА рдорд▓реНрдЯрд┐рдереНрд░реЗрдбрд┐рдЩрд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫ рд░ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдпрд╕рд▓реЗ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреЗрд░реИрдЬрд╕реЛ рдХреЛрдб рд▓реЗрдЦреНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред

TLS рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреНрдп рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ

TLS (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рд░ RCU (Read Copy Update) рджреВрддрдорд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдкреНрд░рдпреЛрдЧрдХрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ:

  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рд╕рдВрдпрдиреНрддреНрд░: рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕реВрдЪреА рдореБрдЦреНрдп рдереНрд░реЗрдбрдорд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрд▓рд╛рдИ RCU рд╕рд┐рдорд╛рдиреНрдЯрд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдвреНрди рдорд╛рддреНрд░ рдорд┐рд▓реНрдиреЗ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рджрд┐рдЗрдиреНрдЫред
  • рдорд╛рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджреИ: RDS (Route Discovery Service) рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЗрдПрдХрд╛ рдорд╛рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдореБрдЦреНрдп рдереНрд░реЗрдбрдорд╛ рд░реВрдЯ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред RCU (Read Copy Update) рд╕рд┐рдорд╛рдиреНрдЯрд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдбрдорд╛ рдкрдвреНрдиреЗ рдорд╛рддреНрд░рдХреЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рдкрдЫрд┐ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЗрдиреЗрдЫред рдпрд╕рд▓реЗ рдорд╛рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдкрд░рдорд╛рдгреБ рд░реВрдкрдорд╛ рдХреБрд╢рд▓ рдмрдирд╛рдЙрдБрдЫред
  • HTTP рд╣реЗрдбрд░ рдХреНрдпрд╛рд╕рд┐рдЩ: рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ HTTP рд╣реЗрдбрд░ рдЧрдгрдирд╛ (~ 25K + RPS рдкреНрд░рддрд┐ рдХреЛрд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛) рдзреЗрд░реИ рдорд╣рдБрдЧреЛ рдЫред рджреВрддрд▓реЗ рдХреЗрдиреНрджреНрд░реАрдп рд░реВрдкрдорд╛ рд▓рдЧрднрдЧ рд╣рд░реЗрдХ рдЖрдзрд╛ рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╣реЗрдбрд░ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ рд░ TLS рд░ RCU рдорд╛рд░реНрдлрдд рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рд▓рд╛рдИ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рддреНрдпрд╣рд╛рдБ рдЕрдиреНрдп рдХреЗрд╕рд╣рд░реВ рдЫрдиреН, рддрд░ рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрд▓реЗ TLS рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рднрдиреНрдиреЗ рд░рд╛рдореНрд░реЛ рдмреБрдЭрд╛рдЗ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдЬреНрдЮрд╛рдд рдкреНрд░рджрд░реНрд╢рди рддреНрд░реБрдЯрд┐рд╣рд░реВ

рдЬрдмрдХрд┐ рд░рд╛рдЬрджреВрддрд▓реЗ рд╕рдордЧреНрд░рдорд╛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ, рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЫрдиреН рдЬреБрди рдзреНрдпрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрдм рдпреЛ рдзреЗрд░реИ рдЙрдЪреНрдЪ рд╕рдВрдЧрддрддрд╛ рд░ рдереНрд░реБрдкреБрдЯ рд╕рдВрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ:

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

рдирд┐рд╖реНрдХрд░реНрд╖

рджреВрддрдХреЛ рдереНрд░реЗрдбрд┐рдЩ рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░ рдирдЧрд░рд┐рдПрдХреЛ рдЦрдгреНрдбрдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд рд╡реНрдпрд░реНрде рдореЗрдореЛрд░реА рд░ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рдЦрд░реНрдЪрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд╕рд╣рдЬрддрд╛ рд░ рдареВрд▓реЛ рд╕рдорд╛рдирд╛рдиреНрддрд░рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛред рдпреЛ рдореЛрдбреЗрд▓рд▓реЗ рдпрд╕рд▓рд╛рдИ рдзреЗрд░реИ рдЙрдЪреНрдЪ рдереНрд░реЗрдб рдЧрдгрдирд╛ рд░ рдереНрд░реБрдкреБрдЯрдорд╛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдореИрд▓реЗ рдЯреНрд╡рд┐рдЯрд░рдорд╛ рдЫреЛрдЯрдХрд░реАрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реЗрдЭреИрдВ, рдбрд┐рдЬрд╛рдИрди рдкреВрд░реНрдг рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдореЛрдб рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рд╕реНрдЯреНрдпрд╛рдХ рдЬрд╕реНрддреИ DPDK (рдбреЗрдЯрд╛ рдкреНрд▓реЗрди рдбреЗрднрд▓рдкрдореЗрдиреНрдЯ рдХрд┐рдЯ) рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдкрдирд┐ рдЪрд▓реНрди рд╕рдХреНрдЫ, рдЬрд╕рд▓реЗ рдкреВрд░реНрдг L7 рдкреНрд░рд╢реЛрдзрдирдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рд▓рд╛рдЦреМрдВ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреЗ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрди рд╕рдХреНрдЫред рдЕрдмрдХреЛ рдХреЗрд╣реА рд╡рд░реНрд╖рдорд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╣реБрдиреНрдЫ рднрдиреЗрд░ рд╣реЗрд░реНрди рдирд┐рдХреИ рд░реЛрдЪрдХ рд╣реБрдиреЗрдЫред
рдПрдЙрдЯрд╛ рдЕрдиреНрддрд┐рдо рджреНрд░реБрдд рдЯрд┐рдкреНрдкрдгреА: рдорд▓рд╛рдИ рдзреЗрд░реИ рдкрдЯрдХ рд╕реЛрдзрд┐рдПрдХреЛ рдЫ рдХрд┐рди рд╣рд╛рдореАрд▓реЗ рджреВрддрдХрд╛ рд▓рд╛рдЧрд┐ C++ рд░реЛрдЬреНрдпреМрдВред рдХрд╛рд░рдг рд░рд╣рдиреНрдЫ рдХрд┐ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдФрджреНрдпреЛрдЧрд┐рдХ рдЧреНрд░реЗрдб рднрд╛рд╖рд╛ рд╣реЛ рдЬрд╕рдорд╛ рдпрд╕ рдкреЛрд╕реНрдЯрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред C++ рдкрдХреНрдХреИ рдкрдирд┐ рд╕рдмреИ рд╡рд╛ рдзреЗрд░реИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫреИрди, рддрд░ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдпреЛрдЧрдХрд╛ рдХреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рдХрд╛рдо рд╕рдореНрдкрдиреНрди рдЧрд░реНрдиреЗ рдПрдХ рдорд╛рддреНрд░ рдЙрдкрдХрд░рдг рд╣реЛред

рдХреЛрдбрдорд╛ рд▓рд┐рдЩреНрдХрд╣рд░реВ

рдпрд╕ рдкреЛрд╕реНрдЯрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд░ рд╣реЗрдбрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд╛ рд╕рд╛рде рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди