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