Solo.io, క్లౌడ్ సిస్టమ్లు, మైక్రోసర్వీస్లు, ఐసోలేటెడ్ కంటైనర్లు మరియు సర్వర్లెస్ కంప్యూటింగ్ కోసం ఉత్పత్తులను అభివృద్ధి చేసే కంపెనీ, బంబుల్బీని ప్రచురించింది, ఇది ఒక ప్రత్యేక వర్చువల్ మెషీన్లో అమలు చేసే eBPF ప్రోగ్రామ్ల తయారీ, పంపిణీ మరియు లాంచ్ను సులభతరం చేయడానికి ఉద్దేశించిన ఓపెన్ సోర్స్ టూల్కిట్. Linux కెర్నల్ మరియు ప్రాసెసింగ్ నెట్వర్క్ కార్యకలాపాలను అనుమతిస్తుంది, యాక్సెస్ మరియు మానిటర్ సిస్టమ్లను నియంత్రించండి. కోడ్ గోలో వ్రాయబడింది మరియు Apache 2.0 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
బంబుల్బీ eBPF ప్రోగ్రామ్ను OCI (ఓపెన్ కంటైనర్ ఇనిషియేటివ్) ఫార్మాట్లో కంటైనర్ ఇమేజ్గా ప్యాకేజీ చేయడం సాధ్యం చేస్తుంది, ఇది రీకంపైలేషన్ లేకుండా మరియు వినియోగదారు స్థలంలో అదనపు భాగాలను ఉపయోగించకుండా ఏదైనా సిస్టమ్లో అమలు చేయబడుతుంది. eBPF హ్యాండ్లర్ నుండి వచ్చే డేటా ప్రాసెసింగ్తో సహా కోర్లోని eBPF కోడ్తో పరస్పర చర్య బంబుల్బీ ద్వారా తీసుకోబడుతుంది, ఇది ఈ డేటాను మెట్రిక్లు, హిస్టోగ్రామ్లు లేదా లాగ్ల రూపంలో స్వయంచాలకంగా ఎగుమతి చేస్తుంది, ఉదాహరణకు, వీటిని ఉపయోగించి కర్ల్ యుటిలిటీ. ప్రతిపాదిత విధానం డెవలపర్ను eBPF కోడ్ రాయడంపై దృష్టి పెట్టడానికి అనుమతిస్తుంది మరియు వినియోగదారు స్థలం, అసెంబ్లీ మరియు కెర్నల్లోకి లోడ్ చేయడం నుండి ఈ కోడ్తో పరస్పర చర్యను నిర్వహించడం ద్వారా పరధ్యానంలో ఉండకూడదు.
eBPF ప్రోగ్రామ్లను నిర్వహించడానికి, డాకర్-స్టైల్ “బీ” యుటిలిటీ అందించబడుతుంది, దానితో మీరు వెంటనే బాహ్య రిపోజిటరీ నుండి ఆసక్తి ఉన్న eBPF హ్యాండ్లర్ను డౌన్లోడ్ చేసుకోవచ్చు మరియు స్థానిక సిస్టమ్లో దీన్ని అమలు చేయవచ్చు. ఎంచుకున్న అంశం యొక్క eBPF హ్యాండ్లర్ల కోసం C లో కోడ్ ఫ్రేమ్వర్క్ను రూపొందించడానికి టూల్కిట్ మిమ్మల్ని అనుమతిస్తుంది (ప్రస్తుతం నెట్వర్క్ మరియు ఫైల్ ఆపరేషన్ల కోసం హ్యాండ్లర్లు మాత్రమే నెట్వర్క్ స్టాక్కు కాల్లను అడ్డగించే మరియు ఫైల్ సిస్టమ్లకు మద్దతు ఇస్తారు). రూపొందించబడిన ఫ్రేమ్వర్క్ ఆధారంగా, డెవలపర్ తనకు ఆసక్తి ఉన్న కార్యాచరణను త్వరగా అమలు చేయగలడు.
BCC (BPF కంపైలర్ కలెక్షన్) వలె కాకుండా, Linux కెర్నల్ యొక్క ప్రతి వెర్షన్ కోసం హ్యాండ్లర్ కోడ్ను BumbleBee పూర్తిగా పునర్నిర్మించదు (BCC eBPF ప్రోగ్రామ్ ప్రారంభించబడిన ప్రతిసారీ క్లాంగ్ని ఉపయోగించి ఆన్-ది-ఫ్లై కంపైలేషన్ను ఉపయోగిస్తుంది). పోర్టబిలిటీతో సమస్యలను పరిష్కరించడానికి, 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