【バゼル】

Bazel(バゼル) とは?

💡 Google生まれの万能ビルダー、巨大コードベースもお手のもの
📌 このページのポイント
Bazel — 大規模モノレポ対応ビルドツール モノレポ Java Python C++ Go TypeScript Bazel BUILD ファイル Starlark サンドボックス ビルド 成果物 再現可能ビルド 高速ビルド Bazelの強み 再現可能ビルド リモートキャッシュ 多言語対応
Bazelの仕組みと特徴
ひよこ ひよこ

BazelってGradleMavenと何が違うの?

ペンギン先生 ペンギン先生

一番の違いはスケールと多言語対応だよ。GradleMavenは主にJava系だけど、Bazelは一つのリポジトリJavaC++Python・Goなど複数の言語を統一的にビルドできるんだ。Googleのような巨大なモノレポで威力を発揮するよ

ひよこ ひよこ

モノレポって何?

ペンギン先生 ペンギン先生

すべてのプロジェクトのコードを一つの巨大なリポジトリで管理する方法だよ。Googleは数十億行のコードを一つのリポジトリで管理しているんだ。その規模でも効率的にビルドできるのがBazelの強みだね

ひよこ ひよこ

再現可能ビルドってどういうこと?

ペンギン先生 ペンギン先生

同じソースコードからは必ず同じビルド結果が得られることを保証する仕組みだよ。Bazelはビルドをサンドボックス化して、暗黙の依存関係を排除するんだ。これにより「自分の環境では動くのに本番では動かない」という問題を防げるよ

ひよこ ひよこ

導入のハードルは高い?

ペンギン先生 ペンギン先生

正直、学習コストはGradleMavenより高いよ。BUILDファイルを書く必要があるし、Starlarkという独自の設定言語を覚える必要がある。でも大規模プロジェクトではビルド時間の短縮効果が劇的で、導入する価値は十分あるんだ

ひよこ ひよこ

どんな企業が使っているの?

ペンギン先生 ペンギン先生

GoogleはもちろんSpotify、Uber、Stripe、Twitterなど大手テック企業が採用しているよ。特にマイクロサービスモノレポを採用している企業に人気だね。小規模なプロジェクトにはオーバースペックだけど、コードベースが成長してきたら検討する価値があるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Bazel」って出てきたら「Google製の超大規模対応ビルドツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Bazel」 = バジル(ハーブ)のもじり
💬 Google社内ツールBlazeのアナグラムだよ。Blazeを公開するにあたり商標の問題で名前を変える必要があって、文字を並べ替えてBazelにしたんだ
← 用語集にもどる