बक2, नया फेसबुक बिल्ड सिस्टम

बक2-हीरो

Buck2, Facebook का नया ओपन सोर्स बिल्ड सिस्टम

फेसबुक पेश किया हाल ही में "बक 2" नामक एक नया बिल्ड सिस्टम जारी किया है, जो नोट करता है कि यह है रिपॉजिटरी से परियोजनाओं के निर्माण पर ध्यान केंद्रित किया बहुत बड़े जिनमें विभिन्न भाषाओं में कोड शामिल हैं प्रोग्रामिंग।

मतभेद नए कार्यान्वयन और प्रणाली के बीच पहले इस्तेमाल किया हिरन फेसबुक द्वारा जावा के बजाय जंग भाषा का प्रयोग कर रहे हैं और असेंबली प्रक्रिया की दक्षता और प्रदर्शन में उल्लेखनीय वृद्धि हुई है (एक ही बुनियादी ढांचे पर आंतरिक परीक्षणों में, बक 2 असेंबली कार्यों को बक के रूप में तेजी से करता है)।

बिल्ड सिस्टम एक डेवलपर और उनके चल रहे कोड के बीच खड़ा होता है, इसलिए अनुभव को तेज़ या अधिक उत्पादक बनाने के लिए हम जो कुछ भी कर सकते हैं, वह सीधे प्रभावित करता है कि डेवलपर कितना प्रभावी हो सकता है। बक2 का लक्ष्य यह था कि हम बक1 (बुनियादी और कार्यप्रवाह) के बारे में जो पसंद करते हैं उसे बनाए रखें, बक1 के बाद के नवाचारों (बैजेल, एडैप्टन और शेक सहित) से प्रेरणा लें, और गति पर ध्यान केंद्रित करें और नए अनुभवों को सक्षम करें।

बक 2 के बारे में

इस बात पर प्रकाश डाला गया है कि सिस्टम विशिष्ट भाषाओं में कोड के निर्माण से बंधा नहीं है और बॉक्स से बाहर, यह फेसबुक द्वारा उपयोग किए जाने वाले सी ++, पायथन, जंग, कोटलिन, एरलांग, स्विफ्ट, ऑब्जेक्टिव-सी, हास्केल और ओकैमल में लिखी गई बिल्डर परियोजनाओं का समर्थन करता है।

पायथन पर आधारित Starlark भाषा (जैसा कि Bazel में है) का उपयोग प्लगइन्स को डिज़ाइन करने, स्क्रिप्ट और नियम बनाने के लिए किया जाता है। स्टारलार्क आपको निर्माण प्रणाली की क्षमताओं का विस्तार करने और निर्मित परियोजनाओं में उपयोग की जाने वाली विशिष्ट भाषाओं से अमूर्त करने की अनुमति देता है।

यह उल्लेख है कि परिणामों को कैशिंग करके उच्च प्रदर्शन प्राप्त किया जाता है, कार्यों के समानांतरकरण और कार्यों के दूरस्थ निष्पादन के लिए समर्थन (रिमोट बिल्ड निष्पादन)।

निर्माण वातावरण "हर्मेटिकिटी" की अवधारणा का उपयोग करता है: संकलित कोड को बाहरी दुनिया से अलग किया जाता है, निर्माण प्रक्रिया के दौरान बाहर से कुछ भी लोड नहीं किया जाता है, और विभिन्न प्रणालियों पर बार-बार काम करने से एक ही परिणाम होता है (बार-बार बनाता है, उदाहरण के लिए, एक परियोजना को संकलित करने का परिणाम) डेवलपर की मशीन बिल्कुल वैसी ही होगी जैसी निरंतर एकीकरण सर्वर पर निर्मित होती है)। निर्भरता की कमी की स्थिति को बक 2 में बग के रूप में माना जाता है।

की ओर से बक2 मुख्य विशेषताएं, निम्नलिखित बाहर खड़े हैं:

  • प्रोग्रामिंग लैंग्वेज और कोर बिल्ड सिस्टम को सपोर्ट करने के नियम पूरी तरह से अलग हैं। नियम Starlark भाषा में लिखे गए हैं, और Starlark टूलकिट और कार्यान्वयन रस्ट में लिखे गए हैं।
  • बिल्ड सिस्टम एकल वृद्धिशील निर्भरता ग्राफ (कोई स्टेजिंग नहीं) का उपयोग करता है, जो आपको बक और बज़ेल की तुलना में काम के समानांतरकरण की गहराई को बढ़ाने और कई प्रकार की बग से बचने की अनुमति देता है।
  • बक2 का कोड गिटहब पर पोस्ट किया गया है और प्रोग्रामिंग भाषा समर्थन नियम लगभग फेसबुक के बुनियादी ढांचे में उपयोग किए जाने वाले आंतरिक संस्करण के समान हैं (केवल अंतर ही फेसबुक द्वारा उपयोग किए जाने वाले कंपाइलर संस्करणों और बिल्ड सर्वर के लिंक में हैं)।
  • बिल्ड सिस्टम को रिमोट जॉब एक्जीक्यूशन सिस्टम के साथ एकीकृत करने के लिए डिज़ाइन किया गया है जो आपको रिमोट सर्वर पर जॉब चलाने की अनुमति देता है। दूरस्थ निष्पादन एपीआई Bazel के साथ संगत है और Buildbarn और EngFlow के साथ संगतता के लिए परीक्षण किया गया है।
  • वर्चुअल फ़ाइल सिस्टम के साथ एकीकरण प्रदान किया जाता है, जिसमें संपूर्ण रिपॉजिटरी की सामग्री प्रस्तुत की जाती है, लेकिन वास्तव में, रिपॉजिटरी के एक हिस्से के वास्तविक स्थानीय हिस्से के साथ काम किया जाता है (डेवलपर पूरे रिपॉजिटरी को देखता है, लेकिन केवल क्या आवश्यक है) एक्सेस की गई फ़ाइलें रिपॉजिटरी से पुनर्प्राप्त की जाती हैं)। ईडनएफएस-आधारित वीएफएस और गिट एलएफएस समर्थित हैं, जिनका उपयोग सैपलिंग द्वारा किया जाता है।

अंत में, इसके बारे में अधिक जानने में रुचि रखने वालों के लिए, उन्हें पता होना चाहिए कि अपाचे 2.0 लाइसेंस के तहत कोड वितरित किया गया है और वे विवरण देख सकते हैं निम्नलिखित लिंक में


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।