рдмрдВрдмрд▓рдмреА - eBPF рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдВрдЪреА рдирд┐рд░реНрдорд┐рддреА рдЖрдгрд┐ рд╡рд┐рддрд░рдг рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреВрд▓рдХрд┐рдЯ

Solo.io, рдПрдХ рдХрдВрдкрдиреА рдЬреА рдХреНрд▓рд╛рдЙрдб рд╕рд┐рд╕реНрдЯрдо, рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕, рд╡реЗрдЧрд│реНрдпрд╛ рдХрдВрдЯреЗрдирд░реНрд╕ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреБрдЯрд┐рдВрдЧрд╕рд╛рдареА рдЙрддреНрдкрд╛рджрдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ, рдмрдВрдмрд▓рдмреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ, рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓рдХрд┐рдЯ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ eBPF рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪреА рддрдпрд╛рд░реА, рд╡рд┐рддрд░рдг рдЖрдгрд┐ рд▓реЙрдиреНрдЪ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рдгреЗ рдЖрд╣реЗ рдЬреЗ рдЖрдд рдПрдХрд╛ рдЦрд╛рд╕ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ. рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдСрдкрд░реЗрд╢рдиреНрд╕, рдХрдВрдЯреНрд░реЛрд▓ рдНрдХреНрд╕реЗрд╕ рдЖрдгрд┐ рдореЙрдирд┐рдЯрд░ рд╕рд┐рд╕реНрдЯрдореНрд╕рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдХреЛрдб Go рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

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

eBPF рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдбреЙрдХрд░-рд╢реИрд▓реАрдЪреА "рдордзрдорд╛рд╢реА" рдЙрдкрдпреБрдХреНрддрддрд╛ рдСрдлрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдмрд╛рд╣реНрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реЗ eBPF рд╣рдБрдбрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗ рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛. рдЯреВрд▓рдХрд┐рдЯ рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреНрдпрд╛ eBPF рд╣рдБрдбрд▓рд░реНрд╕рд╕рд╛рдареА C рдордзреНрдпреЗ рдХреЛрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ (рд╕рдзреНрдпрд╛ рдлрдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ рдлрд╛рдЗрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╣рдБрдбрд▓рд░ рдЬреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреЕрдХрд╡рд░ рдХреЙрд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рддрд╛рдд рдЖрдгрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд). рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ, рд╡рд┐рдХрд╛рд╕рдХ рддреНрдпрд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рддреНрд╡рд░реАрдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░реВ рд╢рдХрддреЛ.

BCC (BPF Compiler Collection) рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, BumbleBee Linux рдХрд░реНрдирд▓рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА рд╣рдБрдбрд▓рд░ рдХреЛрдб рдкреВрд░реНрдгрдкрдгреЗ рдкреБрдирд░реНрдмрд╛рдВрдзрдгреА рдХрд░рдд рдирд╛рд╣реА (BCC рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА eBPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ Clang рд╡рд╛рдкрд░реВрди рдСрди-рдж-рдлреНрд▓рд╛рдп рд╕рдВрдХрд▓рди рд╡рд╛рдкрд░рддреЗ). рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА, CO-RE рдЖрдгрд┐ libbpf рдЯреВрд▓реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХреЛрдб рддрдпрд╛рд░ рдХрд░рддрд╛ рдпреЗрддреЛ рдЖрдгрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рд▓реЛрдбрд░ рд╡рд╛рдкрд░рддрд╛ рдпреЗрддреЛ рдЬреЛ рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдХрд░реНрдирд▓ рдЖрдгрд┐ BTF рдкреНрд░рдХрд╛рд░ рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдЕрдиреБрдХреВрд▓ рдХрд░рддреЛ. рдмрдВрдмрд▓рдмреА рд╣реЗ libbpf рдордзреНрдпреЗ рдЕреЕрдб-рдСрди рдЖрд╣реЗ рдЖрдгрд┐ рдорд╛рдирдХ eBPF рдирдХрд╛рд╢рд╛ рд╕рдВрд░рдЪрдирд╛ рд░рд┐рдВрдЧрдмрдлрд░ рдЖрдгрд┐ рд╣реЕрд╢рдореЕрдкрдордзреНрдпреЗ рд╕реНрдерд┐рдд рдбреЗрдЯрд╛рдЪреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрдгрд┐ рдкреНрд░рджрд░реНрд╢рдирд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдЕрдВрддрд┐рдо eBPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ OCI рдкреНрд░рддрд┐рдорд╛ рдореНрд╣рдгреВрди рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдлрдХреНрдд "bee build file_with_code name:version" рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛ рдЖрдгрд┐ "bee run name:version" рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рд╣рдБрдбрд▓рд░рдХрдбреВрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдгрд╛рд░реЗ рдЗрд╡реНрд╣реЗрдВрдЯ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛрд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓, рдкрд░рдВрддреБ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рд╣рдБрдбрд▓рд░рд▓рд╛ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреЛрд░реНрдЯрд╡рд░ рдХрд░реНрд▓ рдХрд┐рдВрд╡рд╛ wget рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛. OCI-рд╕реБрд╕рдВрдЧрдд рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрджреНрд╡рд╛рд░реЗ рд╣рдБрдбрд▓рд░ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, ghcr.io рд░реЗрдкреЙрдЬрд┐рдЯрд░реА (GitHub рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА) рдордзреВрди рдмрд╛рд╣реНрдп рд╣рдБрдбрд▓рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА "bee run ghcr.io/solo-io/bumblebee/tcpconnect:" рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛. $(рдордзрдорд╛рд╢реА рдЖрд╡реГрддреНрддреА)тАЭ. рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╣рдБрдбрд▓рд░ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА, "рдордзрдорд╛рд╢реА рдкреБрд╢" рдХрдорд╛рдВрдб рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗ, рдЖрдгрд┐ рдЖрд╡реГрддреНрддреА рдмрд╛рдВрдзрдгреНрдпрд╛рд╕рд╛рдареА, "рдордзрдорд╛рд╢реА рдЯреЕрдЧ".

рд╕реНрддреНрд░реЛрдд: opennet.ru

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