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

рд▓реЗрдЦрд╛рдЪреЗ рднрд╛рд╖рд╛рдВрддрд░: рджреВрдд рдереНрд░реЗрдбрд┐рдВрдЧ рдореЙрдбреЗрд▓ - https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310

рдорд▓рд╛ рд╣рд╛ рд▓реЗрдЦ рдЦреВрдкрдЪ рдордиреЛрд░рдВрдЬрдХ рд╡рд╛рдЯрд▓рд╛ рдЖрдгрд┐ рджреВрдд рдмрд╣реБрддреЗрдХрджрд╛ тАЬрдЗрд╕реНрдЯрд┐рдУтАЭ рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рдХрд┐рдВрд╡рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪрд╛ тАЬрдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░тАЭ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдмрд╣реБрддреЗрдХ рд▓реЛрдХрд╛рдВрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рд╕рдорд╛рди рдереЗрдЯ рд╕рдВрд╡рд╛рдж рдирд╕рддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рд╛рдорд╛рдиреНрдп Nginx рдХрд┐рдВрд╡рд╛ Haproxy рдкреНрд░рддрд┐рд╖реНрдард╛рдкрди. рддрдерд╛рдкрд┐, рдХрд╛рд╣реАрддрд░реА рдЦрдВрдбрд┐рдд рдЭрд╛рд▓реНрдпрд╛рд╕, рддреЗ рдЖрддреВрди рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓. рдореА рд╡рд┐рд╢реЗрд╖ рд╢рдмреНрджрд╛рдВрд╕рд╣ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдордЬрдХреВрд░ рд░рд╢рд┐рдпрди рднрд╛рд╖реЗрдд рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛; рдЬреНрдпрд╛рдВрдирд╛ рд╣реЗ рдкрд╛рд╣рдгреЗ рд╡реЗрджрдирд╛рджрд╛рдпрдХ рд╡рд╛рдЯрддреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдореА рдореВрд│ рдХрдВрд╕рд╛рдд рд╕реЛрдбрд▓реЗ. рдорд╛рдВрдЬрд░ рдордзреНрдпреЗ рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.

рджреВрдд рдХреЛрдбрдмреЗрд╕рд╕рд╛рдареА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рддрд╛рдВрддреНрд░рд┐рдХ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╕рдзреНрдпрд╛ рдЦреВрдкрдЪ рд╡рд┐рд░рд│ рдЖрд╣реЗ. рдпрд╛рд╡рд░ рдЙрдкрд╛рдп рдореНрд╣рдгреВрди, рдореА рджреВрддрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдВрдмрджреНрджрд▓ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯреНрд╕рдЪреА рдорд╛рд▓рд┐рдХрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЗ. рд╣рд╛ рдкрд╣рд┐рд▓рд╛ рд▓реЗрдЦ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдХреГрдкрдпрд╛ рдорд▓рд╛ рдХрд│рд╡рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд╡рд╛рдЯрддреЗ рдЖрдгрд┐ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕реЗрд▓.

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

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

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

рджреВрдд рддреАрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ рдкреНрд░рд╡рд╛рд╣ рд╡рд╛рдкрд░рддрд╛рдд:

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

рдХрдиреЗрдХреНрд╢рди рд╣рд╛рддрд╛рд│рдгреА

рд╡рд░ рдереЛрдбрдХреНрдпрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕рд░реНрд╡ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбреНрд╕ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╢рд╛рд░реНрдбрд┐рдВрдЧрд╢рд┐рд╡рд╛рдп рд╕рд░реНрд╡ рд╢реНрд░реЛрддреНрдпрд╛рдВрдирд╛ рдРрдХрддрд╛рдд. рдЕрд╢рд╛рдкреНрд░рдХрд╛рд░реЗ, рдХрд░реНрдирд▓рдЪрд╛ рд╡рд╛рдкрд░ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбреНрд╕рд╡рд░ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реЗ рд╕реЙрдХреЗрдЯреНрд╕ рдХреГрдкрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЖрдзреБрдирд┐рдХ рдХрд░реНрдирд▓ рд╕рд╛рдорд╛рдиреНрдпрдд: рдпрд╛рдордзреНрдпреЗ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реЗ рдЕрд╕рддрд╛рдд, рддреЗ рд╕рдорд╛рди рд╕реЙрдХреЗрдЯрд╡рд░ рдРрдХрдгрд╛рд░реЗ рдЗрддрд░ рдереНрд░реЗрдбреНрд╕ рд╡рд╛рдкрд░рдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдЖрдгрд┐ рд░рд╛рдКрдВрдб рд░реЙрдмрд┐рди рди рд╡рд╛рдкрд░рддрд╛ рдереНрд░реЗрдбрд▓рд╛ рдХрд╛рдорд╛рд╕рд╣ рднрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ (IO) рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдмреВрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рд░рдЦреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдирдВрддреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓реЙрдХрд┐рдВрдЧ (рд╕реНрдкрд┐рдирд▓реЙрдХ).
рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд╡рд░ рдПрдХрджрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рд▓реЗ рдХреА рддреЗ рддреЛ рдзрд╛рдЧрд╛ рд╕реЛрдбрдд рдирд╛рд╣реА. рдХреЛрдгрддреНрдпрд╛рд╣реА рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рд╡рд░реНрддрдирд╛рд╕рд╣ рдХрдиреЗрдХреНрд╢рдирдЪреА рдкреБрдвреАрд▓ рд╕рд░реНрд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрдордзреНрдпреЗ рд╣рд╛рддрд╛рд│рд▓реА рдЬрд╛рддреЗ.

рдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗрдд:

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

рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рдореБрдЦреНрдп рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдзрд╛рдЧреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдпрд╛рд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛рдирд╛ "рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ" рд╣рд╛ рд╢рдмреНрдж рдЖрддрд╛рдкрд░реНрдпрдВрдд рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рд╕рд░реНрд╡ рдХреЛрдб рдЕрд╕реЗ рдЧреГрд╣рд┐рдд рдзрд░реВрди рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ рдХреА рдХрд╛рд╣реАрд╣реА рдХрдзреАрд╣реА рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рд╣реЗ рдкреВрд░реНрдгрдкрдгреЗ рд╕рддреНрдп рдирд╛рд╣реА (рдХрд╛рдп рд╕рдВрдкреВрд░реНрдгрдкрдгреЗ рд╕рддреНрдп рдирд╛рд╣реА?).

рджреВрдд рдЕрдиреЗрдХ рд▓рд╛рдВрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдХ рд╡рд╛рдкрд░рддрд╛рдд:

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

рдереНрд░реЗрдб рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдЯреЛрд░реЗрдЬ

рджреВрдд рдореБрдЦреНрдп рдереНрд░реЗрдбрдЪреНрдпрд╛ рдЬрдмрд╛рдмрджрд╛рд▒реНрдпрд╛рдВрдирд╛ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрдЪреНрдпрд╛ рдЬрдмрд╛рдмрджрд╛рд▒реНрдпрд╛рдВрдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдореБрдЦреНрдп рдереНрд░реЗрдбрд╡рд░ рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдирдВрддрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд▓рд╛ рдЕрддреНрдпрдВрдд рд╕рдорд╡рд░реНрддреА рдкрджреНрдзрддреАрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣рд╛ рд╡рд┐рднрд╛рдЧ рдЙрдЪреНрдЪ рд╕реНрддрд░рд╛рд╡рд░ рдПрдВрд╡реЙрдп рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ (TLS) рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЛ. рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рддреЗ рдореА рдкреБрдвреАрд▓ рднрд╛рдЧрд╛рдд рд╡рд░реНрдгрди рдХрд░реЗрди.
[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдВрдЧ рдореЙрдбреЗрд▓

рдЖрдзреАрдЪ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рджреВрдд рдкреНрд░рдХреНрд░рд┐рдпреЗрддреАрд▓ рдЕрдХреНрд╖рд░рд╢рдГ рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣рд╛рддрд╛рд│рддреЛ. рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрди рдпреЗрдереЗ рдереЛрдбреЗ рдУрд╡реНрд╣рд░рд▓реЛрдб рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдПрдВрд╡реЙрдп рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗрдЪ рддреЗ рдкрд╛рд╣рддрд╛ рдЖрдгрд┐ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбреНрд╕ рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧрд╢реА рддреНрдпрд╛рдЪреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪрд╛ рдЕрд░реНрде рд╣реЛрддреЛ. рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдореБрдЦреНрдп рдереНрд░реЗрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛ рдХрд╛рдорд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдб рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡реЗрд╢рд╛рд╡рд░ рд▓реЙрдХ рдШреЗрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.

рджреВрддрд╛рдЪреА TLS (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рдкреНрд░рдгрд╛рд▓реА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ:

  • рдореБрдЦреНрдп рдереНрд░реЗрдбрд╡рд░ рдЪрд╛рд▓рдгрд╛рд░рд╛ рдХреЛрдб рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА TLS рд╕реНрд▓реЙрдЯ рджреЗрдК рд╢рдХрддреЛ. рдЬрд░реА рд╣реЗ рдЕтАНреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реЗ рддрд░реА, рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рд╣реЗ рд╡реЗрдХреНрдЯрд░рдордзреНрдпреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрд╣реЗ, рдЬреЗ O(1) рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
  • рдореБрдЦреНрдп рдереНрд░реЗрдб рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд▓реЙрдЯрдордзреНрдпреЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддреЛ. рд╣реЗ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рдбреЗрдЯрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбрд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдк рдЗрд╡реНрд╣реЗрдВрдЯ рдореНрд╣рдгреВрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
  • рд╡рд░реНрдХрд░ рдереНрд░реЗрдбреНрд╕ рддреНрдпрд╛рдВрдЪреНрдпрд╛ TLS рд╕реНрд▓реЙрдЯрдордзреВрди рд╡рд╛рдЪреВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреЗрдереЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓рд╛ рдХреЛрдгрддрд╛рд╣реА рдереНрд░реЗрдб-рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛рдд.

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

рджреВрдд рд╣реЗ рджреЛрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╡рд╛рдкрд░рддрд╛рдд:

  • рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд╡рд░ рд╡реЗрдЧрд╡реЗрдЧрд│рд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВрди, рдХреЛрдгрддреНрдпрд╛рд╣реА рдмреНрд▓реЙрдХрд┐рдВрдЧрд╢рд┐рд╡рд╛рдп рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
  • рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд╡рд░ рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдореЛрдбрдордзреНрдпреЗ рдЬрд╛рдЧрддрд┐рдХ рдбреЗрдЯрд╛рд╕рд╛рдареА рд╕рд╛рдорд╛рдпрд┐рдХ рдкреЙрдЗрдВрдЯрд░ рд░рд╛рдЦреВрди. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рддреЗ рдЬреА рдХрд╛рдо рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛ рдХрдореА рдХрд░рддрд╛ рдпреЗрдд рдирд╛рд╣реА. рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡ рдХрд╛рдордЧрд╛рд░ рд╢рд╛рдВрдд рд╣реЛрддреАрд▓ рдЖрдгрд┐ рдирд╡реАрди рд╕рд╛рдорд╛рдпрд┐рдХ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рддреАрд▓ рддреЗрд╡реНрд╣рд╛рдЪ рдЬреБрдирд╛ рдбреЗрдЯрд╛ рдирд╖реНрдЯ рд╣реЛрдИрд▓. рд╣реЗ RCU рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ.

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

рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд, рдореА рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА TLS (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рдХрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди. рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдордзреНрдпреЗ xDS API рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ DNS рдкреНрд░рдХреНрд░рд┐рдпрд╛, рддрд╕реЗрдЪ рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
[рдЕрдиреБрд╡рд╛рдж] рджреВрдд рдереНрд░реЗрдбрд┐рдВрдЧ рдореЙрдбреЗрд▓

рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╡рд╛рд╣ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдШрдЯрдХ рдЖрдгрд┐ рдкрд╛рдпрд▒реНрдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ:

  1. рдХреНрд▓рд╕реНрдЯрд░ рдореЕрдиреЗрдЬрд░ рд╣рд╛ рджреВрддрдордзреАрд▓ рдПрдХ рдШрдЯрдХ рдЖрд╣реЗ рдЬреЛ рд╕рд░реНрд╡ рдЬреНрдЮрд╛рдд рдХреНрд▓рд╕реНрдЯрд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо, рдХреНрд▓рд╕реНрдЯрд░ рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА рд╕рд░реНрд╡реНрд╣рд┐рд╕ (CDS) API, рд╕рд┐рдХреНрд░реЗрдЯ рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА рд╕рд░реНрд╡реНрд╣рд┐рд╕ (SDS) рдЖрдгрд┐ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА рд╕рд░реНрд╡реНрд╣рд┐рд╕ (EDS) API, DNS рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдп рдмрд╛рд╣реНрдп рддрдкрд╛рд╕рдгреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ. рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреА. рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреНрд▓рд╕реНрдЯрд░рдЪреЗ "рд╢реЗрд╡рдЯреА рд╕рд╛рддрддреНрдпрдкреВрд░реНрдг" рджреГрд╢реНрдп рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╢реЛрдзрд▓реЗрд▓реНрдпрд╛ рдпрдЬрдорд╛рдирд╛рдВрдЪрд╛ рддрд╕реЗрдЪ рдЖрд░реЛрдЧреНрдп рд╕реНрдерд┐рддреАрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.
  2. рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдХ рд╕рдХреНрд░рд┐рдп рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреА рдХрд░рддреЛ рдЖрдгрд┐ рдЖрд░реЛрдЧреНрдп рд╕реНрдерд┐рддреАрддреАрд▓ рдмрджрд▓рд╛рдВрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рд▓рд╛ рджреЗрддреЛ.
  3. CDS (рдХреНрд▓рд╕реНрдЯрд░ рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА рд╕рд░реНрд╡реНрд╣рд┐рд╕) / SDS (рдЧреБрдкреНрдд рд╢реЛрдз рд╕реЗрд╡рд╛) / EDS (рдПрдВрдбрдкреЙрдЗрдВрдЯ рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА рд╕рд░реНрд╡реНрд╣рд┐рд╕) / DNS рдХреНрд▓рд╕реНрдЯрд░ рд╕рджрд╕реНрдпрддреНрд╡ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рд░рд╛рдЬреНрдп рдмрджрд▓ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдХрдбреЗ рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
  4. рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдб рд╕рддрдд рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЛ.
  5. рдЬреЗрд╡реНрд╣рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЕрдиреЗрдЬрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЛ рдХреА рдХреНрд▓рд╕реНрдЯрд░рдЪреА рд╕реНрдерд┐рддреА рдмрджрд▓рд▓реА рдЖрд╣реЗ, рддреЗрд╡реНрд╣рд╛ рддреЛ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдЪрд╛ рдПрдХ рдирд╡реАрди-рд╡рд╛рдЪрдиреАрдп рд╕реНрдиреЕрдкрд╢реЙрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд▓рд╛ рдкрд╛рдард╡рддреЛ.
  6. рдкреБрдвреАрд▓ рд╢рд╛рдВрдд рдХрд╛рд▓рд╛рд╡рдзреАрдд, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереНрд░реЗрдб рд╡рд╛рдЯрдк рдХреЗрд▓реЗрд▓реНрдпрд╛ TLS рд╕реНрд▓реЙрдЯрдордзреНрдпреЗ рд╕реНрдиреЕрдкрд╢реЙрдЯ рдЕрдкрдбреЗрдЯ рдХрд░реЗрд▓.
  7. рдЖрдп/рдУ рдЗрд╡реНрд╣реЗрдВрдЯ рджрд░рдореНрдпрд╛рди рдЬреЗ рд╣реЛрд╕реНрдЯрдиреЗ рдмреЕрд▓рдиреНрд╕ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╣реЛрд╕реНрдЯрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА TLS (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рд╕реНрд▓реЙрдЯрдЪреА рд╡рд┐рдирдВрддреА рдХрд░реЗрд▓. рдпрд╛рд╕рд╛рдареА рд▓реЙрдХрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рд╣реЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА TLS рдЕрдкрдбреЗрдЯ рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕ рджреЗрдЦреАрд▓ рдЯреНрд░рд┐рдЧрд░ рдХрд░реВ рд╢рдХрддреЗ рдЬреЗрдгреЗрдХрд░реВрди рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдЖрдгрд┐ рдЗрддрд░ рдШрдЯрдХ рдХреЕрд╢реЗ, рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдЗрддреНрдпрд╛рджреАрдЪреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░реВ рд╢рдХрддрд╛рдд. рд╣реЗ рдпрд╛ рдкреЛрд╕реНрдЯрдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреЛрдбрдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рдард┐рдХрд╛рдгреА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рд╡рд░реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рджреВрдд рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрд╡рд░реЛрдзрд┐рдд рди рдХрд░рддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдирдВрддреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддреЛ (рдкреВрд░реНрд╡реА рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ). TLS рдХреЛрдбрдЪреА рдЬрдЯрд┐рд▓рддрд╛ рдмрд╛рдЬреВрд▓рд╛ рдареЗрд╡реВрди, рдмрд╣реБрддреЗрдХ рдХреЛрдбрд▓рд╛ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рд╣реЗ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдмрд╣реБрддреЗрдХ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ.

рдЗрддрд░ рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдЬреА TLS рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд

TLS (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рдЖрдгрд┐ RCU (рд░реАрдб рдХреЙрдкреА рдЕрдкрдбреЗрдЯ) рдПрдиреНрд╡реЙрдпрдордзреНрдпреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд.

рд╡рд╛рдкрд░рд╛рдЪреА рдЙрджрд╛рд╣рд░рдгреЗ:

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

рдЗрддрд░ рдкреНрд░рдХрд░рдгреЗ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдиреА TLS рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ рдпрд╛рдЪреА рдЪрд╛рдВрдЧрд▓реА рд╕рдордЬ рджрд┐рд▓реА рдкрд╛рд╣рд┐рдЬреЗ.

рдЬреНрдЮрд╛рдд рдХрд╛рдордЧрд┐рд░реА рддреЛрдЯреЗ

рджреВрдд рдПрдХрдВрджрд░реАрдд рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рдХрд╛рд╣реА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХреНрд╖реЗрддреНрд░реЗ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдЦреВрдк рдЙрдЪреНрдЪ рд╕рдорд╛рдВрддрд░рддрд╛ рдЖрдгрд┐ рдереНрд░реВрдкреБрдЯрд╕рд╣ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ:

  • рдпрд╛ рд▓реЗрдЦрд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕рдзреНрдпрд╛ рд╕рд░реНрд╡ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбреНрд╕ рдНрдХреНрд╕реЗрд╕ рд▓реЙрдЧ рдореЗрдорд░реА рдмрдлрд░рд╡рд░ рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рд▓реЙрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛рдд. рдЙрдЪреНрдЪ рд╕рдорд░реВрдкрддрд╛ рдЖрдгрд┐ рдЙрдЪреНрдЪ рдереНрд░реВрдкреБрдЯрд╡рд░, рдЕрдВрддрд┐рдо рдлрд╛рдЗрд▓рд╡рд░ рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбрд╕рд╛рдареА рдЕтАНреЕрдХреНрд╕реЗрд╕ рд▓реЙрдЧ рдмреЕрдЪ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛, рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдереНрд░реЗрдбрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рд╡реЗрд╢ рд▓реЙрдЧ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛.
  • рдЬрд░реА рдЖрдХрдбреЗрд╡рд╛рд░реА рдЕрддреНрдпрдВрдд рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реА рдЧреЗрд▓реА рдЕрд╕рд▓реА рддрд░реА, рдЦреВрдк рдЙрдЪреНрдЪ рд╕рдорд╛рдВрддрд░рддрд╛ рдЖрдгрд┐ рдереНрд░реВрдкреБрдЯрдордзреНрдпреЗ рд╡реИрдпрдХреНрддрд┐рдХ рдЖрдХрдбреЗрд╡рд╛рд░реАрд╡рд░ рдЕрдгреБ рд╡рд┐рд╡рд╛рдж рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ. рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдореНрд╣рдгрдЬреЗ рдордзреНрдпрд╡рд░реНрддреА рдХрд╛рдЙрдВрдЯрд░рдЪреНрдпрд╛ рдирд┐рдпрддрдХрд╛рд▓рд┐рдХ рд░реАрд╕реЗрдЯрд╕рд╣ рдкреНрд░рддрд┐ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдб рдХрд╛рдЙрдВрдЯрд░. рдпрд╛рд╡рд░ рдкреБрдвреАрд▓ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓.
  • рджреВрддрд╛рд▓рд╛ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╕рдзреНрдпрд╛рдЪреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдЬреЗрдереЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдлрд╛рд░рдЪ рдХрдореА рдХрдиреЗрдХреНрд╢рди рдЖрд╣реЗрдд. рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ рдХрдиреЗрдХреНрд╢рди рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓ рдпрд╛рдЪреА рдХреЛрдгрддреАрд╣реА рд╣рдореА рдирд╛рд╣реА. рд╣реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрдиреЗрдХреНрд╢рди рд╕рдВрддреБрд▓рди рд▓рд╛рдЧреВ рдХрд░реВрди рд╕реЛрдбрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреЗ рдХрд╛рдордЧрд╛рд░ рдереНрд░реЗрдбреНрд╕рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рдирдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.

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

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

рдХреЛрдбрдЪреЗ рджреБрд╡реЗ

рдпрд╛ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдлрд╛рдпрд▓реАрдВрдЪреЗ рджреБрд╡реЗ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛