BumbleBee - գործիքակազմ eBPF ծրագրերի ստեղծումն ու բաշխումը պարզեցնելու համար

Solo.io ընկերությունը, որը մշակում է արտադրանքներ ամպային համակարգերի, միկրոծառայությունների, մեկուսացված կոնտեյներների և առանց սերվերի հաշվարկման համար, հրապարակել է BumbleBee բաց կոդով գործիքակազմը, որն ուղղված է պարզեցնելու eBPF ծրագրերի պատրաստումը, բաշխումը և գործարկումը, որոնք աշխատում են ներսում հատուկ վիրտուալ մեքենայի մեջ: Linux միջուկը և թույլ է տալիս մշակել ցանցային գործառնությունները, վերահսկել մուտքը և մոնիտորինգի համակարգերը: Կոդը գրված է Go-ում և տարածվում է Apache 2.0 լիցենզիայի ներքո:

BumbleBee-ը հնարավորություն է տալիս փաթեթավորել eBPF ծրագիրը որպես կոնտեյների պատկեր OCI (Open Container Initiative) ձևաչափով, որը կարող է գործարկվել ցանկացած համակարգում՝ առանց վերակոմպիլյացիայի և օգտագործողի տարածքում լրացուցիչ բաղադրիչների օգտագործման: Միջուկում eBPF կոդի հետ փոխազդեցությունը, ներառյալ eBPF մշակողից ստացվող տվյալների մշակումը, ստանձնում է BumbleBee-ն, որն ավտոմատ կերպով արտահանում է այս տվյալները չափումների, հիստոգրամների կամ տեղեկամատյանների տեսքով, որոնց կարելի է մուտք գործել, օրինակ՝ օգտագործելով գանգրացման կոմունալ. Առաջարկվող մոտեցումը թույլ է տալիս ծրագրավորողին կենտրոնանալ eBPF կոդ գրելու վրա և չշեղվել՝ կազմակերպելով փոխազդեցություն այս կոդի հետ օգտագործողի տարածքից, հավաքում և միջուկ բեռնում:

eBPF ծրագրերը կառավարելու համար առաջարկվում է Docker-ի ոճով «bee» կոմունալ ծրագիր, որի միջոցով դուք կարող եք անմիջապես ներբեռնել հետաքրքրող eBPF մշակիչը արտաքին պահոցից և գործարկել այն տեղական համակարգում: Գործիքների հավաքածուն թույլ է տալիս ստեղծել կոդային շրջանակ C-ով eBPF ընտրված թեմայի մշակողների համար (ներկայումս աջակցվում են միայն ցանցի և ֆայլերի գործառնությունների մշակողները, որոնք ընդհատում են զանգերը դեպի ցանցային բուրգ և ֆայլային համակարգեր): Ստեղծված շրջանակի հիման վրա ծրագրավորողը կարող է արագ իրականացնել իրեն հետաքրքրող ֆունկցիոնալությունը:

Ի տարբերություն BCC-ի (BPF Compiler Collection), BumbleBee-ն ամբողջությամբ չի վերակառուցում մշակողի կոդը Linux միջուկի յուրաքանչյուր տարբերակի համար (BCC-ն օգտագործում է «on-the-fly» կոմպիլյացիան՝ օգտագործելով Clang ամեն անգամ, երբ eBPF ծրագիրը գործարկվում է: Դյուրակիրության հետ կապված խնդիրները լուծելու համար մշակվում են CO-RE և libbpf գործիքները, որոնք թույլ են տալիս ստեղծել կոդը միայն մեկ անգամ և օգտագործել հատուկ ունիվերսալ բեռնիչ, որը հարմարեցնում է բեռնված ծրագիրը ընթացիկ միջուկին և BTF Type Format-ին: BumbleBee-ը libbpf-ի հավելում է և տրամադրում է լրացուցիչ տեսակներ՝ RingBuffer և HashMap ստանդարտ eBPF քարտեզների կառուցվածքներում տեղակայված տվյալների ավտոմատ մեկնաբանման և ցուցադրման համար:

Վերջնական 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»:

Source: opennet.ru

Добавить комментарий