BumbleBee - kahi mea hana e hoʻomaʻamaʻa i ka hana ʻana a me ka hāʻawi ʻana i nā papahana eBPF

ʻO Solo.io, kahi hui e hoʻomohala nei i nā huahana no ka holo ʻana i nā ʻōnaehana kapuaʻi, microservices, nā ipu kaʻawale a me ka serverless computing, ua hoʻopuka ʻo BumbleBee, kahi hāmeʻa open source i manaʻo ʻia e hoʻomaʻamaʻa i ka hoʻomākaukau, hāʻawi ʻana a me ka hoʻomaka ʻana o nā polokalamu eBPF e holo ana i kahi mīkini virtual kūikawā i loko. ka Linux kernel a ʻae i ka hoʻoponopono ʻana i nā hana ʻoihana, hoʻokele i ke komo a nānā i nā ʻōnaehana. Ua kākau ʻia ke code ma Go a māhele ʻia ma lalo o ka laikini Apache 2.0.

Hiki i ka BumbleBee ke hoʻopaʻa i kahi polokalamu eBPF ma ke ʻano he kiʻi pahu ma ke ʻano OCI (Open Container Initiative), hiki ke holo ma kekahi ʻōnaehana me ka ʻole o ka hoʻopili hou ʻana a me ka hoʻohana ʻana i nā ʻāpana ʻē aʻe i ka wahi hoʻohana. ʻO ka launa pū ʻana me ka code eBPF i loko o ke kumu, me ka hoʻoili ʻana i ka ʻikepili mai ka mea hoʻohana eBPF, ua lawe ʻia e BumbleBee, nāna e hoʻokuʻu aku i kēia ʻikepili ma ke ʻano o nā metrics, histograms a i ʻole logs, hiki ke loaʻa, no ka laʻana, me ka hoʻohana ʻana i ka hoʻohana curl. ʻO ke ala i manaʻo ʻia e hiki ai i ka mea hoʻomohala ke nānā aku i ke kākau ʻana i ka code eBPF a ʻaʻole e hoʻopilikia ʻia e ka hoʻonohonoho ʻana i ka launa pū me kēia code mai kahi mea hoʻohana, hui a hoʻouka ʻia i loko o ka kernel.

No ka hoʻokele ʻana i nā polokalamu eBPF, hāʻawi ʻia kahi hāmeʻa Docker-style "bee", me ia e hiki ai iā ʻoe ke hoʻoiho koke i ka mea hoʻokele eBPF o ka hoihoi mai kahi waihona waho a holo iā ia ma ka ʻōnaehana kūloko. Hāʻawi ka pahu hana iā ʻoe e hana i kahi code framework ma C no nā mea lawelawe eBPF o kahi kumuhana i koho ʻia (i kēia manawa wale nō nā mea lawelawe no ka ʻoihana pūnaewele a me nā faila e hoʻopaʻa i nā kelepona i ka waihona pūnaewele a kākoʻo ʻia nā ʻōnaehana faila). Ma muli o ke kaʻina hana i hana ʻia, hiki i ka mea hoʻomohala ke hoʻokō koke i ka hana āna i makemake ai.

ʻAʻole like me BCC (BPF Compiler Collection), ʻaʻole kūkulu hou ʻo BumbleBee i ke code handler no kēlā me kēia mana o ka kernel Linux (hoʻohana ʻo BCC i ka hui ʻana ma luna o ka lele me ka hoʻohana ʻana iā Clang i kēlā me kēia manawa e hoʻomaka ai ka papahana eBPF). No ka hoʻoponopono ʻana i nā pilikia me ka portability, ke kūkulu ʻia nei nā mea hana CO-RE a me libbpf, e ʻae iā ʻoe e kūkulu i ke code i hoʻokahi wale nō a hoʻohana i kahi mea hoʻoili honua kūikawā e hoʻololi i ka papahana i hoʻouka ʻia i ka kernel o kēia manawa a me ka BTF Type Format. He mea hoʻohui ʻo BumbleBee i ka libbpf a hāʻawi i nā ʻano ʻē aʻe no ka wehewehe ʻakomi a me ka hōʻike ʻana i ka ʻikepili i loaʻa i nā kūkulu palapala palapala eBPF maʻamau RingBuffer a me HashMap.

No ke kūkulu ʻana i ka polokalamu eBPF hope loa a mālama iā ia ma ke ʻano he kiʻi OCI, e holo wale i ke kauoha "bee build file_with_code name: version", a e holo i ke kauoha "bee run name: version". Ma ka maʻamau, e hoʻokuʻu ʻia nā hanana i loaʻa mai ka mea hoʻohana i ka puka makani, akā inā pono, hiki iā ʻoe ke loaʻa i ka ʻikepili ma o ka hoʻohana ʻana i nā pono curl a i ʻole wget i ke awa pūnaewele i hoʻopaʻa ʻia i ka mea lima. Hiki ke hoʻokaʻawale ʻia nā mea lima ma o nā waihona OCI-compatible, no ka laʻana, e holo i kahi mea hoʻokele waho mai ka waihona ghcr.io (GitHub Container Registry), hiki iā ʻoe ke holo i ke kauoha "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bee version)”. No ka waiho ʻana i kahi mea lawelawe i loko o ka waihona, ua noi ʻia ke kauoha "bee push", a e hoʻopaʻa i kahi mana, "bee tag".

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka