Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム

今回は「Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム」についてご紹介します。

関連ワード (前身、既存、最初等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Meta(旧Facebook)は、大規模システム向けのビルドシステム「Buck2」をオープンソースで公開したことを明らかにしました。

fig

Buck2は同社内で数千人のエンジニアに使われており、1日あたり数百万回のビルドを実行していると説明されています。

Rustで開発したことによりビルドの速度が約2倍に

Metaは2013年にBuck2の前身となるビルドシステムの「Buck」をオープンソースで公開しています。BuckはJavaで開発されています。

Buck2は、新規にRust言語で開発されたことでガベージコレクションによる処理の一時停止などが避けられたため、より高速なビルドの実行が可能になっています。Meta社内ではBuckと比較して約2倍高速になったとのことです(ただしJavaは優れたメモリプロファイリングツールなどの優位点があると、フォローもしています)。

また、Buckではリモートでのビルド実行があとから機能追加されたのに対し、Buck2ではリモートでのビルドを最初から考慮して開発されたことで、より並列性の高い効率的なビルドが可能になっています。

Buck2のビルドシステムのコア機能は特定のプログラミング固有のビルドルールから完全に分離されており、プログラミング言語固有のルールなどは「Starlark」と呼ばれるコンフィグレーションのための言語によって記述します。これにより、さまざまな言語に対応できる拡張性も備えているとされています。

さらにビルド時の依存関係はつねに明示が必要で、それにより厳密で信頼性の高いビルドの実行を可能にしているとのことです。

Metaの開発事情がBuckを生んだ

MetaはBuckおよびBuck2を自社開発する理由として、同社がC++やPython、 Rust、Kotlin、Swift、Objective-C、Haskell、OCamなどをはじめとするさまざまなプログラミング言語によるコードを単一のリポジトリ(monorepo)で扱っており、同社のような大規模かつ多言語のビルドは既存のビルドシステムでは扱えないことから、自社でこれらの最適化されたビルドシステムを開発することにしたと説明しています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
シスコ、オフィス勤務日数など義務づけないハイブリッドワークのアプローチへ
IT関連
2021-08-02 06:29
AI・データ時代を支えるストレージやデータ保護ベンダーの展望
IT関連
2024-01-13 00:13
2021年にサイバー攻撃を最も受けたのはアジア–業種別トップは製造
IT関連
2022-03-03 00:15
三重県庁、「Slack」を全庁導入へ–組織内外のコミュニケーションを活性化
IT関連
2023-03-09 17:17
2024年のデータ管理市場を5つのトレンドで読む
IT関連
2023-12-21 02:22
AWS、公共向けビジネスに参入するスタートアップ企業支援策を開始
IT関連
2022-02-19 16:44
ソフトバンクの「LINEMO」に月990円・3GBの新プラン
企業・業界動向
2021-07-16 02:29
「ChatGPT」がサイバーセキュリティの未来にもたらす光と影
IT関連
2023-02-23 02:23
パテントトロールによるオープンソースプロジェクトへの攻撃が急増している理由
IT関連
2022-09-22 04:35
「ChatGPT」で手書きのメモをデジタル化するには
IT関連
2024-08-04 18:39
欧州がリスクベースのAI規制を提案、AIに対する信頼と理解の醸成を目指す
パブリック / ダイバーシティ
2021-05-02 15:31
150年続くMLBに学ぶ、伝統ある事業の変革の勝ちパターン
IT関連
2024-04-06 08:14
TechCrunch Tokyo 2021は12月2日、3日でオンライン開催決定、スタートアップバトルの応募も開始
IT関連
2021-08-17 19:52
グーグル、Windows版「ニアバイシェア」を正式リリース
IT関連
2023-07-22 19:12