BumbleBee - eBPF рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рд╡рд┐рддрд░рдгрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдЯреБрд▓рдХрд┐рдЯ

Solo.io, рдХреНрд▓рд╛рдЙрдб рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ, рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВ, рдкреГрдердХ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд░ рд╕рд░реНрднрд░рд▓реЗрд╕ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдХрдореНрдкрдиреАрд▓реЗ рдмрдореНрдмрд▓рдмреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реЗрдХреЛ рдЫ, рдПрдЙрдЯрд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЯреБрд▓рдХрд┐рдЯрдХреЛ рддрдпрд╛рд░реА, рд╡рд┐рддрд░рдг рд░ eBPF рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрдгрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ рднрд┐рддреНрд░ рд╡рд┐рд╢реЗрд╖ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ рдЪрд▓реНрдиреЗред рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдЮреНрдЪрд╛рд▓рди, рдирд┐рдпрдиреНрддреНрд░рдг рдкрд╣реБрдБрдЪ рд░ рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдХреЛрдб Go рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ Apache 2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдЫред

BumbleBee рд▓реЗ OCI (рдУрдкрди рдХрдиреНрдЯреЗрдирд░ рдЗрдирд┐рд╕рд┐рдПрдЯрд┐рдн) рдврд╛рдБрдЪрд╛рдорд╛ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рдХреЛ рд░реВрдкрдорд╛ eBPF рдХрд╛рд░реНрдпрдХреНрд░рдорд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫ, рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рди рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдердк рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рдмрд┐рдирд╛ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред eBPF рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдмрд╛рдЯ рдЖрдЙрдиреЗ рдбрд╛рдЯрд╛рдХреЛ рдкреНрд░рд╢реЛрдзрди рд╕рд╣рд┐рдд рдХреЛрд░рдорд╛ рд░рд╣реЗрдХреЛ eBPF рдХреЛрдбрд╕рдБрдЧрдХреЛ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛, BumbleBee рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЗрдиреНрдЫ, рдЬрд╕рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕, рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рд╡рд╛ рд▓рдЧрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдпреЛ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрджрдЫ, рдЬрд╕рд▓рд╛рдИ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдХрд░реНрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ eBPF рдХреЛрдб рд▓реЗрдЦреНрдирдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрди рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕, рдПрд╕реЗрдореНрдмрд▓реА рд░ рдХрд░реНрдиреЗрд▓рдорд╛ рд▓реЛрдб рдЧрд░реНрдиреЗ рдпрд╕ рдХреЛрдбрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрд░ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реБрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

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

BCC (BPF рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕рдЩреНрдХрд▓рди) рдХреЛ рд╡рд┐рдкрд░реАрдд, рдмрдореНрдмрд▓рдмреАрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рдХреЛрдб рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИрди (BCC рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ eBPF рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реБрд░реБ рд╣реБрдБрджрд╛ Clang рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрди-рдж-рдлреНрд▓рд╛рдЗ рд╕рдВрдХрд▓рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ)ред рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди, CO-RE рд░ libbpf рдЙрдкрдХрд░рдгрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд░ рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛рдИ рд╣рд╛рд▓рдХреЛ рдХрд░реНрдиреЗрд▓ рд░ BTF рдкреНрд░рдХрд╛рд░ рдврд╛рдБрдЪрд╛рдорд╛ рдЕрдиреБрдХреВрд▓ рдЧрд░реНрдиреЗ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд▓реЛрдбрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред BumbleBee libbpf рдорд╛ рдПрдХ рдПрдб-рдЕрди рд╣реЛ рд░ рдорд╛рдирдХ eBPF рдирдХреНрд╕рд╛ рд╕рдВрд░рдЪрдирд╛ RingBuffer рд░ HashMap рдорд╛ рд╕реНрдерд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рд╛рдЧреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдЕрдиреНрддрд┐рдо 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

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