Buck2, नवीन Facebook बिल्ड सिस्टम

बक2-नायक

Buck2, Facebook ची नवीन ओपन सोर्स बिल्ड सिस्टम

फेसबुकची ओळख झाली अलीकडे "Buck2" नावाची नवीन बिल्ड सिस्टीम रिलीझ केली आहे, जी ती आहे असे नमूद करते रेपॉजिटरीजमधून प्रकल्प उभारण्यावर लक्ष केंद्रित केले खूप मोठ्या ज्यात भिन्न भाषांमधील कोड समाविष्ट आहे प्रोग्रामिंग.

फरक नवीन अंमलबजावणी आणि प्रणाली दरम्यान पूर्वी वापरलेले पैसे फेसबुकद्वारे Java ऐवजी रस्ट भाषा वापरत आहेत आणि असेंबली प्रक्रियेच्या कार्यक्षमतेत आणि कार्यक्षमतेत लक्षणीय वाढ (त्याच पायाभूत सुविधांवरील अंतर्गत चाचण्यांमध्ये, बक 2 बकपेक्षा दुप्पट वेगाने असेंब्लीची कामे करते).

विकासक आणि त्यांचा कोड चालू असताना बिल्ड सिस्टीम उभ्या राहतात, त्यामुळे अनुभव जलद किंवा अधिक उत्पादक बनवण्यासाठी आम्ही जे काही करू शकतो त्याचा थेट परिणाम विकासक किती प्रभावी असू शकतो यावर होतो. Buck2 चे ध्येय म्हणजे Buck1 (मूलभूत गोष्टी आणि कार्यप्रवाह) बद्दल आम्हाला जे आवडते ते ठेवणे, बक1 नंतरच्या नवकल्पनांमधून प्रेरणा घेणे (बॅझेल, अॅडाप्टन आणि शेकसह) आणि वेगावर लक्ष केंद्रित करणे आणि नवीन अनुभव सक्षम करणे हे होते.

बक 2 बद्दल

हे ठळक केले आहे प्रणाली विशिष्ट भाषांमध्ये कोडच्या निर्मितीशी जोडलेली नाही आणि बॉक्सच्या बाहेर, ते Facebook द्वारे वापरल्या जाणार्‍या C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell आणि OCaml मध्ये लिहिलेल्या बिल्डर प्रकल्पांना समर्थन देते.

Python (Bazel प्रमाणे) वर आधारित Starlark भाषा प्लगइन डिझाइन करण्यासाठी, स्क्रिप्ट आणि नियम तयार करण्यासाठी वापरली जाते. स्टारलार्क तुम्हाला बिल्ड सिस्टीमची क्षमता वाढवण्याची आणि तयार केल्या जात असलेल्या प्रकल्पांमध्ये वापरल्या जाणार्‍या विशिष्ट भाषांमधून गोषवारा देण्यास अनुमती देते.

असे नमूद केले आहे परिणाम कॅश करून उच्च कार्यक्षमता प्राप्त केली जाते, कामाचे समांतरीकरण आणि कार्यांच्या दूरस्थ अंमलबजावणीसाठी समर्थन (रिमोट बिल्ड एक्झिक्युशन).

बिल्ड वातावरण "हर्मेटिसिटी" ची संकल्पना वापरते: संकलित कोड बाहेरील जगापासून अलिप्त आहे, बिल्ड प्रक्रियेदरम्यान बाहेरून काहीही लोड केले जात नाही आणि वेगवेगळ्या सिस्टम्सवर कामाची पुनरावृत्ती केल्याने समान परिणाम होतो (पुनरावृत्ती बिल्ड, उदाहरणार्थ, प्रकल्प संकलित करण्याचा परिणाम डेव्हलपरचे मशीन सतत इंटिग्रेशन सर्व्हरवरील बिल्ड सारखेच असेल). बक 2 मध्ये अवलंबित्व परिस्थितीचा अभाव बग म्हणून समजला जातो.

च्या भागावर Buck2 प्रमुख वैशिष्ट्ये, खाली उभे रहा:

  • प्रोग्रामिंग लँग्वेज आणि कोअर बिल्ड सिस्टमला सपोर्ट करण्याचे नियम पूर्णपणे वेगळे आहेत. नियम स्टारलार्क भाषेत लिहिलेले आहेत आणि स्टारलार्क टूलकिट आणि अंमलबजावणी रस्टमध्ये लिहिलेली आहे.
  • बिल्ड सिस्टम सिंगल इन्क्रिमेंटल डिपेंडेंसी आलेख (स्टेजिंग नाही) वापरते, जे तुम्हाला बक आणि बॅझेलच्या तुलनेत कामाच्या समांतरीकरणाची खोली वाढविण्यास आणि अनेक प्रकारचे बग टाळण्यास अनुमती देते.
  • GitHub वर पोस्ट केलेला Buck2 चा कोड आणि प्रोग्रामिंग भाषा समर्थन नियम Facebook च्या पायाभूत सुविधांमध्ये वापरल्या जाणार्‍या अंतर्गत आवृत्तीशी जवळजवळ एकसारखे आहेत (फक्त फरक Facebook द्वारे वापरलेल्या कंपाइलर एडिशन्स आणि बिल्ड सर्व्हरच्या लिंकमध्ये आहेत).
  • बिल्ड सिस्टम रिमोट जॉब एक्झिक्यूशन सिस्टीमसह समाकलित करण्यासाठी डिझाइन केले आहे जे तुम्हाला रिमोट सर्व्हरवर नोकर्‍या चालवण्याची परवानगी देतात. रिमोट एक्झिक्युशन API Bazel शी सुसंगत आहे आणि Buildbarn आणि EngFlow सह सुसंगततेसाठी चाचणी केली गेली आहे.
  • व्हर्च्युअल फाइल सिस्टमसह एकत्रीकरण प्रदान केले आहे, ज्यामध्ये संपूर्ण रेपॉजिटरीची सामग्री सादर केली जाते, परंतु प्रत्यक्षात, रिपॉझिटरीच्या एका भागाच्या वास्तविक स्थानिक भागासह कार्य केले जाते (विकासक संपूर्ण भांडार पाहतो, परंतु फक्त काय आवश्यक आहे) प्रवेश केलेल्या फायली रेपॉजिटरीमधून पुनर्प्राप्त केल्या जातात). EdenFS-आधारित VFS आणि Git LFS समर्थित आहेत, जे रोपट्याद्वारे वापरले जातात.

शेवटी, ज्यांना याबद्दल अधिक जाणून घेण्यास इच्छुक आहे, त्यांना हे माहित असले पाहिजे की कोड अपाचे 2.0 परवान्याअंतर्गत वितरित केला गेला आहे आणि ते तपशीलांचा सल्ला घेऊ शकतात. पुढील लिंकवर


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.