فيسبوڪ بڪ 2 بلڊ سسٽم شايع ڪيو

فيسبوڪ هڪ نئون بلڊ سسٽم متعارف ڪرايو آهي، بڪ 2، تمام وڏي ذخيري مان تعميراتي منصوبن تي ڌيان ڏنو ويو آهي جنهن ۾ مختلف پروگرامنگ ٻولين ۾ ڪوڊ شامل آهن. نئين عمل درآمد ۽ بڪ سسٽم جي وچ ۾ اهم فرق جيڪي اڳ ۾ Facebook پاران استعمال ڪيا ويا آهن، جاوا جي بدران Rust ٻولي جو استعمال ۽ اسيمبليء جي عمل جي ڪارڪردگي ۽ ڪارڪردگي ۾ هڪ اهم اضافو آهي (اندروني تجربن ۾ ساڳئي انفراسٽرڪچر ۾، Buck2 اسيمبلي کي انجام ڏئي ٿو. بڪ جي ڀيٽ ۾ ٻه ڀيرا تيز ڪم). ڪوڊ Apache 2.0 لائسنس تحت ورهايو ويو آهي.

سسٽم مخصوص ٻولين ۾ ڪوڊنگ ڪوڊ سان ڳنڍيل نه آهي ۽ باڪس مان ٻاهر نڪرندڙ عمارت جي منصوبن کي سپورٽ ڪري ٿو C++، Python، Rust، Kotlin، Erlang، Swift، Objective-C، Haskell ۽ OCaml ۾ لکيل آهي Facebook پاران استعمال ٿيل. Starlark ٻولي Python جي بنياد تي (جهڙوڪ Bazel ۾) استعمال ڪئي ويندي آهي اضافن کي ڊزائين ڪرڻ، اسڪرپٽ ۽ ضابطن جي تعمير لاءِ. Starlark توهان کي تعميراتي نظام جي صلاحيتن کي وڌائڻ جي اجازت ڏئي ٿو ۽ تعمير ڪيل منصوبن ۾ استعمال ڪيل مخصوص ٻولين مان خلاصو.

اعليٰ ڪارڪردگي نتيجن جي ڪيشنگ، ڪم جي برابري ۽ ڪمن جي ريموٽ ايگزيڪيوشن لاءِ سپورٽ (ريموٽ بلڊ ايگزيڪيوشن) ذريعي حاصل ڪئي ويندي آهي. تعميراتي ماحول ۾، "تنگ" جو تصور استعمال ڪيو ويندو آهي - مرتب ڪيل ڪوڊ ٻاهرئين دنيا کان ڪٽيو ويندو آهي، تعميراتي عمل دوران ٻاهران ڪجھ به لوڊ نه ڪيو ويندو آهي، ۽ مختلف سسٽم تي ڪم جي بار بار عمل جي نتيجي ۾ ساڳيو نتيجو ( بار بار ٺاھڻ، مثال طور، ڊولپر جي مشين تي ھڪڙي منصوبي جي تعمير جو نتيجو بلڪل ساڳيو ھوندو جيئن مسلسل انٽيگريشن سرور تي تعمير). انحصار جي کوٽ جي صورتحال بڪ 2 ۾ هڪ غلطي سمجهي ويندي آهي.

Buck2 اهم خاصيتون:

  • پروگرامنگ ٻولين کي سپورٽ ڪرڻ جا ضابطا ۽ بلڊنگ سسٽم جو بنيادي حصو مڪمل طور تي الڳ ٿيل آهن. ضابطا Starlark ٻولي ۾ لکيل آهن، ۽ Starlark ٽول ڪٽ ۽ عمل درآمد Rust ۾ لکيل آهن.
  • تعميراتي نظام هڪ واحد اضافو انحصار گراف استعمال ڪري ٿو (بغير مرحلن ۾ ورهائڻ جي)، جيڪو توهان کي اجازت ڏئي ٿو بڪ ۽ بيزل جي مقابلي ۾ ڪم جي متوازي جي کوٽائي کي وڌائڻ ۽ ڪيترن ئي قسمن جي غلطين کان بچڻ.
  • GitHub تي شايع ٿيل بڪ 2 ڪوڊ ۽ پروگرامنگ ٻولي سپورٽ ضابطا لڳ ڀڳ هڪجهڙا آهن اندرين ورزن سان جيڪي فيس بوڪ جي بنيادي ڍانچي ۾ استعمال ڪيا ويا آهن (صرف فرق ڪمپلر ايڊيشن جي پابند ۽ فيس بوڪ پاران استعمال ٿيل سرور ٺاهڻ ۾ آهن).
  • تعميراتي نظام کي ريموٽ جاب ايگزيڪيوشن سسٽم سان انضمام جي نظر سان ٺهيل آهي جيڪا توهان کي ريموٽ سرورز تي نوڪريون هلائڻ جي اجازت ڏئي ٿي. remote execution API Bazel سان مطابقت رکي ٿي ۽ Buildbarn ۽ EngFlow سان مطابقت لاءِ آزمايو ويو آهي.
  • ورچوئل فائل سسٽم سان انضمام مهيا ڪيو ويو آهي، جنهن ۾ پوري مخزن جو مواد پيش ڪيو ويو آهي، پر حقيقت ۾، ڪم مخزن جي هڪ حصي جي حقيقي مقامي سلائس سان ڪيو ويندو آهي (ڊولپر سڄي مخزن کي ڏسي ٿو، پر صرف گهربل. فائلون جيڪي رسائي حاصل ڪيا ويا آھن مخزن مان حاصل ڪيا ويا آھن). سپورٽ ٿيل آهن VFS جي بنياد تي EdenFS ۽ Git LFS، جيڪي سيپلنگ پاران استعمال ڪيا ويا آهن.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو