Buck2، سیستم جدید ساخت فیس بوک

باک2-قهرمان

Buck2، سیستم ساخت متن باز جدید فیس بوک

فیس بوک معرفی شد اخیراً یک سیستم ساخت جدید به نام "Buck2" منتشر شده است که اشاره می کند که همینطور است تمرکز بر ساخت پروژه ها از مخازن بسیار بزرگ که شامل کد به زبان های مختلف است برنامه نويسي.

اختلافات بین پیاده سازی جدید و سیستم دلاری که قبلا استفاده شده بود توسط فیس بوک به جای جاوا از زبان Rust استفاده می کنند و افزایش قابل توجهی در کارایی و عملکرد فرآیند مونتاژ (در تست های داخلی روی همان زیرساخت، Buck2 وظایف مونتاژ را دو برابر سریعتر از Buck انجام می دهد).

سیستم‌های بیلد بین یک توسعه‌دهنده و کدهای در حال اجرا آن‌ها قرار می‌گیرند، بنابراین هر کاری که می‌توانیم انجام دهیم تا تجربه را سریع‌تر یا سازنده‌تر کنیم، مستقیماً بر میزان تأثیرگذاری یک توسعه‌دهنده تأثیر می‌گذارد. هدف Buck2 حفظ آنچه در مورد Buck1 دوست داشتیم (اصول و گردش کار)، الهام گرفتن از نوآوری های پس از Buck1 (از جمله Bazel، Adapton و Shake) و تمرکز بر سرعت و ایجاد تجربیات جدید بود.

درباره Buck2

برجسته شده است که این سیستم به ایجاد کد در زبان های خاص وابسته نیست و خارج از جعبه، از پروژه های سازنده نوشته شده در C++، Python، Rust، Kotlin، Erlang، Swift، Objective-C، Haskell و OCaml که توسط فیس بوک استفاده می شود، پشتیبانی می کند.

زبان Starlark بر پایه پایتون (مانند Bazel) برای طراحی پلاگین ها، ایجاد اسکریپت ها و قوانین استفاده می شود. Starlark به شما امکان می دهد قابلیت های سیستم ساخت را گسترش دهید و از زبان های خاص مورد استفاده در پروژه های در حال ساخت انتزاعی بگیرید.

ذکر شده است که عملکرد بالا با ذخیره کردن نتایج بدست می آید، موازی سازی کار و پشتیبانی از اجرای وظایف از راه دور (Remote Build Execution).

محیط ساخت از مفهوم هرمتیک استفاده می کند: کد کامپایل شده از دنیای خارج جدا می شود، هیچ چیزی از بیرون در طول فرآیند ساخت بارگذاری نمی شود و اجرای مکرر کار در سیستم های مختلف به نتیجه یکسانی منجر می شود (بیلدهای مکرر، به عنوان مثال، نتیجه کامپایل یک پروژه در ماشین توسعه دهنده دقیقاً مشابه ساخت سرور ادغام پیوسته خواهد بود). وضعیت عدم وابستگی در Buck2 به عنوان یک باگ درک می شود.

از طرف ویژگی های کلیدی Buck2، موارد زیر برجسته است:

  • قوانین پشتیبانی از زبان های برنامه نویسی و سیستم ساخت هسته کاملاً مجزا هستند. قوانین به زبان Starlark و جعبه ابزار Starlark و پیاده سازی با Rust نوشته شده است.
  • سیستم ساخت از یک نمودار وابستگی افزایشی منفرد (بدون مرحله‌بندی) استفاده می‌کند، که به شما امکان می‌دهد عمق موازی‌سازی کار را در مقایسه با باک و بازل افزایش دهید و از بسیاری از اشکالات جلوگیری کنید.
  • کد Buck2 ارسال شده در GitHub و قوانین پشتیبانی از زبان برنامه نویسی تقریباً مشابه نسخه داخلی مورد استفاده در زیرساخت فیس بوک است (تنها تفاوت ها در پیوند به نسخه های کامپایلر و ساخت سرورهای مورد استفاده فیس بوک است).
  • سیستم ساخت برای ادغام با سیستم های اجرای کار از راه دور طراحی شده است که به شما امکان می دهد کارها را روی سرورهای راه دور اجرا کنید. API اجرای از راه دور با Bazel سازگار است و برای سازگاری با Buildbarn و EngFlow آزمایش شده است.
  • یکپارچه سازی با سیستم های فایل مجازی ارائه شده است که در آن محتویات کل مخزن ارائه می شود، اما در واقع، کار با بخش محلی واقعی بخشی از مخزن انجام می شود (توسعه دهنده کل مخزن را می بیند، اما فقط چیزی که لازم است) فایل های مورد دسترسی از مخزن بازیابی می شوند). VFS مبتنی بر EdenFS و Git LFS پشتیبانی می شوند که توسط Sapling استفاده می شوند.

در نهایت، برای کسانی که علاقه مند به کسب اطلاعات بیشتر در مورد آن هستند، باید بدانند که کد تحت مجوز آپاچی 2.0 توزیع شده است و می توانند جزئیات را مشاهده کنند. در لینک زیر.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.