BumbleBee - Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π·Π° опростяванС Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ разпространСниСто Π½Π° eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ

Solo.io, компания, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ систСми, ΠΌΠΈΠΊΡ€ΠΎΡΡŠΡ€Π²ΠΈΡΠΈ, ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Π±Π΅Π·ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ изчислСния, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° инструмСнтариума с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ BumbleBee, насочСн към опростяванС Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π°, разпространСниСто ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² спСциална Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина Π²ΡŠΡ‚Ρ€Π΅ Π² ядрото. Linux ΠΈ Π΄Π° позволят ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΈ систСмСн ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Go ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0.

BumbleBee ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ OCI (Open Container Initiative), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изпълнява Π½Π° всяка систСма Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π² потрСбитСлското пространство. ВзаимодСйствиСто с eBPF ΠΊΠΎΠ΄Π° Π² ядрото, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ΄Π²Π°Ρ‰ΠΈ ΠΎΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° eBPF, сС ΠΏΠΎΠ΅ΠΌΠ° ΠΎΡ‚ BumbleBee, ΠΊΠΎΠΉΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Скспортира Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, хистограми ΠΈΠ»ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΊΡŠΠ΄Ρ€ΠΈΡ†ΠΈ. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈ Π²ΡŠΡ€Ρ…Ρƒ писанСто Π½Π° eBPF ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π½Π΅ сС разсСйва ΠΎΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° взаимодСйствиС с Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΠΎΡ‚ потрСбитСлското пространство, асСмблиранСто ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π² ядрото.

Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° β€žbeeβ€œ Π² стил Docker, с която ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ интСрСсуващия Π²ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° eBPF ΠΎΡ‚ външно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΄Π° Π³ΠΎ стартиратС Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° систСма. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ Π²ΠΈ позволява Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²Π° Ρ€Π°ΠΌΠΊΠ° Π² C Π·Π° eBPF ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΈΠ·Π±Ρ€Π°Π½Π° Ρ‚Π΅ΠΌΠ° (понастоящСм сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ само ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Ρ‚ повиквания към мрСТовия стСк ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми). Π’ΡŠΠ· основа Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π°Ρ‚Π° Ρ€Π°ΠΌΠΊΠ°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈ функционалността, която Π³ΠΎ интСрСсува.

Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ BCC (BPF Compiler Collection), BumbleBee Π½Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° пълно ΠΏΡ€Π΅ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° всяка вСрсия Π½Π° ядрото. Linux (BCC ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° компилация Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ с Clang всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС изпълнява eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°.) Π—Π° Π΄Π° сС Ρ€Π΅ΡˆΠ°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с прСносимостта, сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ инструмСнтариуми CO-RE ΠΈ libbpf, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΊΠΎΠ΄ΡŠΡ‚ Π΄Π° сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° само вСднъТ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ спСциалСн унивСрсалСн Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‰ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π° Π·Π°Ρ€Π΅Π΄Π΅Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° към Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ядро ​​и Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ BTF (BPF Type Format). BumbleBee Π΅ Π΄ΠΎΠ±Π°Π²ΠΊΠ° към libbpf ΠΈ прСдоставя Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² стандартнитС eBPF структури Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈ, RingBuffer ΠΈ HashMap.

Π—Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½Π°Ρ‚Π° eBPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ Π΄Π° я Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ OCI ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, просто ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žbee build file_with_code name:versionβ€œ ΠΈ Π·Π° Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žbee run name:versionβ€œ. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΎΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π°, Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ към ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½ΠΎ Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ curl ΠΈΠ»ΠΈ wget към мрСТовия ΠΏΠΎΡ€Ρ‚, ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π°. ΠœΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС разпространяват Ρ‡Ρ€Π΅Π· OCI-ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π° стартиратС външСн ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° ghcr.io (GitHub Container Registry), ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žbee run ghcr.io/solo-io/bumblebee/tcpconnect: $(вСрсия Π·Π° ΠΏΡ‡Π΅Π»ΠΈ)”. Π—Π° Π΄Π° поставитС ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ, сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žbee pushβ€œ, Π° Π·Π° ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° вСрсия, β€žbee tagβ€œ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с DDoS Π·Π°Ρ‰ΠΈΡ‚Π°, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡƒΠ΅Π± хостинг със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS Π°Ρ‚Π°ΠΊΠΈ, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster