BumbleBee - เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡ เปเบฅเบฐเปเบˆเบเบขเบฒเบเป‚เบ›เบผเปเบเบผเบก eBPF เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™

Solo.io, เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบฅเบฐเบšเบปเบšเบŸเบฑเบ‡, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบ, เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเปเบฅเบฐเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เป„เบ”เป‰เป€เบœเบตเบเปเบœเปˆ BumbleBee, เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเปƒเบ™เบเบฒเบ™เบเบฐเบเบฝเบก, เบเบฒเบ™เปเบˆเบเบขเบฒเบเปเบฅเบฐเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ„เบ‡เบเบฒเบ™ eBPF เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบžเบดเป€เบชเบ”เบžเบฒเบเปƒเบ™. Linux kernel เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒ. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Go เปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0.

BumbleBee เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบซเบธเป‰เบกเบซเปเปˆเป‚เบ›เปเบเบก eBPF เป€เบ›เบฑเบ™เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปƒเบ™เบฎเบนเบšเปเบšเบš OCI (Open Container Initiative), เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™เบ—เบธเบเบฅเบฐเบšเบปเบšเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ recompilation เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰. เบ›เบฐเบ•เบดเบชเปเบฒเบžเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ” eBPF เปƒเบ™เบซเบผเบฑเบ, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบฒเบˆเบฒเบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ eBPF, เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ BumbleBee, เป€เบŠเบดเปˆเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเบปเปˆเบ‡เบญเบญเบเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ metrics, histograms เบซเบผเบทเบšเบฑเบ™เบ—เบถเบ, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. curl เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ” eBPF เปเบฅเบฐเบšเปเปˆเบ–เบทเบเบฅเบปเบšเบเบงเบ™เป‚เบ”เบเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบˆเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบเปˆเบ™.

เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™ eBPF, เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ "bee" เปเบšเบš Docker เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, เป€เบŠเบดเปˆเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เบฒเบงเป‚เบซเบฅเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ eBPF เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเบ™เบญเบเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบเบญเบšเบฅเบฐเบซเบฑเบ”เปƒเบ™ C เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ eBPF เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเป€เบฅเบทเบญเบ (เบ›เบฐเบˆเบธเบšเบฑเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เป‚เบ—เบเบฑเบš stack เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™). เบญเบตเบ‡เบ•เบฒเบกเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบฒเบงเบชเบปเบ™เปƒเบˆเป„เบ”เป‰เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ.

เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš BCC (BPF Compiler Collection), BumbleBee เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฎเบธเปˆเบ™เบ‚เบญเบ‡ Linux kernel (BCC เปƒเบŠเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบเบฒเบ™เบšเบดเบ™เป‚เบ”เบเปƒเบŠเป‰ Clang เบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™ eBPF เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง). เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆ, เป€เบ„เบทเปˆเบญเบ‡เบกเบท CO-RE เปเบฅเบฐ libbpf เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบงเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเป‚เบซเบฅเบ”เปเบšเบšเบžเบดเป€เบชเบ”เบ—เบตเปˆเบ”เบฑเบ”เปเบ›เบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป‚เบซเบฅเบ”เบเบฑเบšเบฎเบนเบšเปเบšเบšเป€เบกเบฑเบ”เปเบฅเบฐเบ›เบฐเป€เบžเบ” BTF เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. BumbleBee เป€เบ›เบฑเบ™ add-on เบเบฑเบš libbpf เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบ›เบฐเป€เบžเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบตเบ„เบงเบฒเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆ eBPF เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ RingBuffer เปเบฅเบฐ HashMap.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ›เบผเปเบเบผเบก eBPF เบชเบธเบ”เบ—เป‰เบฒเบเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเบžเบฒเบš OCI, เบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "bee build file_with_code name:version", เปเบฅเบฐเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "bee run name:version". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบ handler เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบญเบญเบเป„เบ›เบซเบฒเบ›เปˆเบญเบ‡เบขเป‰เบฝเบก terminal, เปเบ•เปˆเบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰ curl เบซเบผเบท wget utilities เบเบฑเบšเบžเบญเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบœเบนเบเบกเบฑเบ”เบเบฑเบš handler. เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบˆเบเบขเบฒเบเบœเปˆเบฒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ OCI, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบžเบฒเบเบ™เบญเบเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ ghcr.io (GitHub Container Registry), เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒเป€เบœเบดเป‰เบ‡)โ€. เป€เบžเบทเปˆเบญเบงเบฒเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™, เบ„เปเบฒเบชเบฑเปˆเบ‡ "bee push" เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต, เปเบฅเบฐเป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เบชเบฐเบšเบฑเบšเบซเบ™เบถเปˆเบ‡, "bee tag".

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™