Bazel の使用者

このページでは、Bazel を使用することがわかっている企業と OSS プロジェクトの一覧を示します。 なお、これは推奨を表すものではありません。

Bazel を使用している企業

Acqio

Acqio は、中小企業向けに決済製品やサービスを提供するフィンテック企業です。Acqio はいくつかのモノリシックを抱えており、Bazel と Kubernetes を併用して高速で信頼性の高いマイクロサービスを提供しています。

Adobe

Adobe は、GitOps ドリブンの継続的 Kubernetes デプロイのための Bazel ルールをリリースしました。

アサナ

Asana は、チームが作業を追跡しやすいように設計されたウェブおよびモバイル アプリケーションです。 独自の言葉で:

Bazel は、Asana のすべてのビルドとテストで信頼性、安定性、速度を向上させました。キャッシュが正しくないため、クリーンアップする必要はなくなりました。

Ascend.io

Ascend は、大規模なデータセット分析向けのソリューションを提供する Palo Alto のスタートアップです。同社のモットーは「ビッグデータは困難です。Google は簡単に移行できます。

Be ろう

Beeswax は、サービスとしてのリアルタイム ビッダーを提供するニューヨークを拠点とするスタートアップ企業です。Bazel は Jenkins ベースの継続的インテグレーションとデプロイのフレームワークを強化しています。非常に高速かつ正確で、多くの言語とプラットフォームでサポートされているため、Beeswax は Bazel を愛用しています。

ブレインツリー

PayPal の子会社である Braintree は、ウェブサイトやアプリ向けの決済ソリューションを開発しています。同社は社内ビルドに Bazel を使用しています。また、Bazel への切り替えの方法について紹介していました。

Canva

Canva は、Bazel を利用して、Java、Typescript、Scala、Python などの大規模な多言語コードベースを管理します。Bazel への移行により、デベロッパーとコンピューティングのインフラストラクチャ 効率が大幅に向上しました。たとえば、CI ビルド時間の平均が 5 ~ 6 倍短縮され、高速かつ再現可能、標準化されたソフトウェア ビルドの基盤となっています。 。

CarGurus

CarGurus は、世界で最も信頼性が高く透明性の高い自動車用マーケットプレイスを構築することを使命とし、Bazel を使用して多言語で記述されたモノリポを構築しています。

コンパス

コンパスはテクノロジーを基盤とした不動産プラットフォームです。不動産、テクノロジー、ビジネスの専門家からなるエリート チームによって、Google は住宅関係者にとって最も信頼できる最も信頼できる情報源となることを目指しています。

Databricks

Databricks は、Apache SparkTM をベースとしたクラウドベースの統合ワークスペースを提供します。

Databricks コードベースは、ほとんどのサービスを実行する Scala コード、フロントエンド UI 用の JavaScript、スクリプト作成用の Python、インフラストラクチャの構成用の Jsonnet などを含む Monorepo です。[...] さらに当社のモノリポには 100 万行の Scala が含まれていますが、その中のコードの操作は高速でスナップです。(Databricks の Bazel を使用した Scala の迅速なビルド

Dataform

Dataform はデータチームにスケーラブルな分析を提供します。いくつかの NPM パッケージとドキュメント サイトを 1 つのモノリポで維持し、すべてを Bazel で行います。

Bazel への移行後、次のような多くのメリットが報告されました。

  • CI の高速化: リモートビルドのキャッシュ保存が有効になり、平均ビルド時間が 30 分から 5 分(リポジトリ全体で)に短縮されました。
  • ローカル開発の改善: 実行し忘れたランダムな bash スクリプトが不要になり、増分ビルドが数分から数秒に短縮
  • デベロッパーのセットアップ時間: 新しいエンジニアは、bazel、docker、JVM という 3 つの依存関係があれば、私たちの全コードをビルドできます。チームに加わった最後のエンジニアが、まったく新しい空のノートパソコンですべてのコードを 30 分足らずで構築できました

Deep Silver FisHLABS

Deep Silver FISHLABS はハイエンド 3D ゲームの開発者です。内部ビルドツールのベースとして、また特にすべての 3D アセットのベイクとデプロイに、Bazel を C++/Python/Go/C とともに使用します。

Dropbox

Dropbox では、Bazel は分散ビルドおよびテスト環境の重要なコンポーネントです。Bazel を使用して、Typescript/Python/Go/C/Rust と信頼できる本番環境リリースが統合されます。

エンゲル、フェルカース

Engel & Völkers AG は、民営ドイツ企業の 1 社で、一連のフランチャイズ オフィスとして、不動産取引に関連するサービスを提供しています。

社内プロジェクトの 1 つでは、コンパイル時間が 11 分から約 1 分に短縮されました。これは目覚ましい成果であり、現在、より多くのプロジェクトに Bazel を導入しています。(Google Cloud Build と Bazel を使用したテスト)。

Etsy

Etsy は、手作りやヴィンテージのアイテムや備品、工場で製造されたユニークなアイテムに焦点を当てた e コマースサイトです。

Bazel を利用して Java ベースの検索プラットフォームを構築、テストしています。Bazel は、ベアメタル サーバーと再現可能な Docker イメージの両方のパッケージを生成します。

Evertz.io

Evertz.io は、Evertz Microsystems によって作成された放送メディア業界に、世界中の費用対効果の高いマルチリージョン サービスを提供するためのマルチテナントのサーバーレス SaaS プラットフォームです。

このウェブサイトは、Angular と Bazel のワークフローで完全にビルドおよびデプロイされています(ソース)。

フィンランド語

FINDMINE は小売業界向けの自動化テクノロジーで、機械学習により、現在手作業で行う and 雑な製品整理作業をスケールしています。Bazel を使用して、Python パッケージのビルド、テスト、デプロイ プロセス全体を機械化します。

フレックスポート

フレックスポートは、技術系の貨物輸送業者です。私たちの使命は、すべての人にとってグローバルな取引を容易にすることです。Flexport では、Bazel を使用して Java/JavaScript サービスとクライアント ライブラリをビルド/テストし、protobuf 定義から Java と Ruby のコードを生成しています。Bazel 5 と単独で JUnit 5 テストを実行する方法についてご確認ください。

Google

Bazel は、Google のニーズに応え、再現性とプラットフォームや言語のサポートに関する Google の要件を満たすことができるように設計されています。Google のすべてのソフトウェアは、Bazel を使用してビルドされています。Google は、数百万ものビルドに対して Bazel とそのルールを毎日使用しています。

GRAKN.AI

GRAKN AI ロゴ

Grakn は、インテリジェント システムのナレッジベースの基盤として機能するデータベース テクノロジーです。Grakn のインテリジェント システムでは、複雑なデータセットを論理的に推論できる 1 つの知識セットとして解釈できます。Bazel は、@graknlabs チームが複数の言語の複数のリポジトリを管理するオーケストレーションされた CI と配布パイプラインを構築し、多数のプラットフォームにシームレスにデプロイすることを可能にしています。

Huawei

Huawei Technologies は、約 30 のプロジェクトで Bazel を使用しています。Go 以外のプロジェクトは Java/Scala/Go プロジェクトで、それ以外は Maven によってビルドされています。Maven でビルドされたプロジェクトを Bazel でビルドされたプロジェクトに変換するための簡単なツールを作成します。将来、より多くのプロジェクトで Bazel が使用されるようになります。

IMC トレーディング

IMC はアムステルダムに本社を置く世界有数の trading 易会社で、マーケット メーカーでもあります。Java/C++/Python/SystemVerilog プロジェクトを継続的にビルドしてテストするために、Bazel を使用しています。

Improbable.io

Improbable.io が開発した SpatialOS は、数百万もの複雑なエンティティが生息する巨大なシミュレーションを作成できる分散型オペレーティング システムです。

Interaxon(英語)

InteraXon は、 をデジタル信号に変換するハードウェアとソフトウェアのプラットフォームを制作する、考え抜かれたコンピューティング企業です。

木星

Jupiter は食料品や生活必需品を毎週配達する会社です。

具体的には、Bazel をバックエンド コードで使用します。特に、リモート キャッシュを使用して、proto と Kotlin を JVM バイナリにコンパイルします。(ソース

ただ

ノルウェーに本社を置く企業の金融テクノロジー企業である Just は、グローバル企業の財務担当者によるリスクと流動性の管理方法を変革するソフトウェア ソリューションを開発しています。アプリケーション スタック全体が Bazel でビルドされています。

Kitty Hawk Corporation

Kitty Hawk Corporation は、航空機の製造を行っているアメリカの航空機メーカーです。Haskell と Scala のルールと一緒に Bazel を使用しています。

LINE

Line は、日本で最も人気のあるメッセージング アプリケーションであるインスタント コミュニケーション用のアプリを提供しています。約 60% の Swift と 40% の C/C++/Objective-C/Objective-C++ で構成されるコードベースに Bazel を使用しています(ソース)。

Bazel への切り替え後、ビルド時間を大幅に改善できました。これにより、QA 期間中のターンアラウンド タイムが大幅に短縮されました。新しいビルドをテスターに配布しても、そのビルドとテストをあと 1 時間待つ必要がなくなりました。(Bazel による iOS 向け LINE のビルド パフォーマンスの向上)。

リンゴシャン

LingoChamp は、英語学習者向けに専門的なソリューションを提供します。go、java、python プロジェクトに Bazel を使用します。

LinkedIn

Microsoft の子会社である LinkedIn は、世界最大のプロフェッショナル ソーシャル ネットワークです。LinkedIn は、iOS アプリのビルドに Bazel を使用しています。

Lyft

Lyft は iOS アプリに Bazel を使用しています(ソース)。

マカニ

Google の子会社であるマカニは、エネルギー キットを開発しており、Bazel を使用してソフトウェア(組み込み C++ ソフトウェアを含む)をビルドしています。

Google Meet

Meetup は、オフラインのグループ会議を促進するオンライン ソーシャル ネットワーキング ポータルです。Meetups エンジニアリング チームは、rules_scala に貢献しており、rules_avrorules_の説明を管理しています。

Nvidia

Nvidia では、Python で dazel(docker bazel)を使用して、bazel の python の欠点に対処しています。その他はすべて通常のベゼルで動作している(基本的には Go / Scala/ C++/ Cuda)(ソース

Peloton Technology

Peloton Technology は、トラック事故と燃料の利用に取り組む自動車両技術会社です。自動車安全システム向けに Bazel を使用して信頼性の高いビルドを実行します。

Pinterest

Pinterest は、世界中のさまざまなアイデアを紹介しています。Bazel を使用してさまざまなバックエンド サービス(Java/C++)と iOS アプリ(Objective-C/C++)をビルドします。

Bazel が、パフォーマンスを大幅に向上する基盤の構築、ビルド環境のばらつきの解消、段階的導入に最適であることがわかりました。その結果、Bazel を使用してすべての iOS リリースを出荷できるようになりました。Pinterest で高速かつ信頼性の高い iOS ビルドを開発する

PubRef

PubRef は新しい科学的公開プラットフォームです。 ルールの作成には Bazel_closure を含む Bazel と、メイン バックエンドをビルドするためのネイティブ Java ルール rules_go を使用します。 rules_noderules_kotlin を使用して、さまざまなバックエンド サービスを構築します。 rules_protobuf は、バックエンド サービス間の gRPC ベースの通信を支援するために使用されます。PubRef.org はコロラド州ボルダーにあります。

Redfin

Redfin は、フルサービスのローカル エージェントによる次世代の不動産仲介業者です。ウェブサイトとさまざまなバックエンド サービスをビルドしてデプロイするために Bazel が使用されています。

大部分が変換のおかげで、状況は大きく改善されました。 CI のビルドが高速(高速)になりました。以前は 40 ~ 90 分かかっていましたが、現在は 5 ~ 6 分でビルドが進んでいます。信頼性もはるかに高くなります。定量化は困難ですが、原因不明のビルド障害から「解決すべき現実的な問題」への転換は、信頼性がますます高まるという好 put 環につながっています。 。 (Maven から Bazel に切り替えて 10 倍速くビルド)。

Ritual(英語)

Ritual はモバイル ピックアップ アプリのひとつです。レストランを顧客につないで、時間をかけず簡単に食品や飲み物を提供する便利なツールを提供します。Ritual はバックエンド サービスに Bazel を使用しています。

スナップ

Snapchat メッセージ アプリのデベロッパーである Snap は、2020 年に Buck から Bazel に移行しました(ソース)。このプロセスの詳細については、同社のエンジニアリング ブログをご覧ください。

ストライプ

Stripe はモバイル決済ソリューションを提供します。 これは、Bazel Scala ルールのメインの管理者です。

Tink

ヨーロッパのフィンテック企業 Tink。ヨーロッパの銀行とつながるための最適なツールを開発しています。

多言語で記述されたモノリポからバックエンド サービスをビルドするために Bazel を使用しています。Tink のエンジニアは、bazel build //stockholm/... の Meetup グループを編成しています。

Tokopedia(英語)

Tokopedia は、e コマースを専門とするインドネシアのテクノロジー企業で、1 か月のアクティブ ユーザー数は 9, 000 万人を超え、プラットフォームで 700 万を超える販売者を抱えています。

同社は、Tokopedia が iOS のビルド時間を 1,000% も短縮した方法の記事を作成しました。この記事では、Bazel がビルドを高速化した方法について説明します。ビルド時間は、Bazel を使用した場合は 55 分から 10 分に、リモート キャッシュを使用した場合は 5 分に短縮されました。

Twitter

Twitter は、Pants から Bazel への移行を主なビルドツールとして決定しました(ソース)。

ツーシグマ

Two Sigma は、世界中のデータから価値を見つけることに特化したニューヨークに本社を置くテクノロジー企業です。

Uber

Uber は配車サービス会社です。Uber の Go モノリポは 900 人のアクティブなデベロッパーを対象としており、Bazel を使用する最大の Go リポジトリの 1 つと言えます。これらの機能について詳しくは、Bazel で Uber Go のモノラルをビルドするをご覧ください。

Uber Advanced Technologies グループ

Uber Advanced Technologies Group は Uber の自律走行車の取り組み(トラック、貨物、自動運転シェアリングなど)に重点を置いています。組織では、Bazel を主要なビルドシステムとして使用します。

Vistar Media

Vistar Media は、ブランドが実店舗での行動に基づいてユーザーにリーチできる広告プラットフォームです。同社のエンジニアリング チームは主にフィラデルフィアを拠点としており、ビルド、デプロイ、テストの高速化、さまざまなテクノロジーで作成されたリポジトリの統合に Bazel を使用しています。

VMware

VMware は、Bazel を使用して、顧客のために革新的な製品を開発しながら、決定論的で信頼できるビルドを生成しています。

Wix

Wix は、クラウドベースのウェブ開発プラットフォームです。そのバックエンドでは Java と Scala コードが使用されています。Google Cloud Build のリモート実行を使用する。

bazel リモート実行で実行する場合、ビルド/テスト アクションをワーカー ファームにディスパッチするときに bazel の優れたビルド/テスト並列処理機能を利用するため、クリーンビルドが約 5 倍高速になりました。平均攻撃時間は、ベゼルの積極的なキャッシュ メカニズムにより 10 倍以上高速になります。(Maven または Gradle から Bazel への移行や、 検討すべき 5 つの重要な質問)

Zenly

Zenly は友だちや家族のリアルタイムの地図です。みんなで待ち合わせをするのも、参加枠を見るのも楽しいです。 — 離れていても、一緒にいるように感じられます。


Bazel を使用したオープンソース プロジェクト

Abseil

Abseil は、C++ 標準ライブラリを強化するために設計された C++ コードのオープンソース コレクション(C++11 に準拠)です。

Angular

Angular は一般的なウェブ フレームワークです。Angular は Bazel で構築されています。

アポロ

Apollo は、自律走行車の開発、テスト、デプロイを加速する高性能で柔軟なアーキテクチャです。

brpc

バイドゥ全体で使用される産業用グレードの RPC フレームワーク。1,000,000 以上のインスタンス(クライアントは数えません)と数千種類のサービス(バイドゥ内で「baidu-rpc」と呼ばれます)が使用されています。

cert-manager

cert-manager は、さまざまな発行元からの TLS 証明書の管理と発行を自動化する Kubernetes アドオンです。証明書が有効かつ最新の状態に保たれ、有効期限が切れる前に適切なタイミングで証明書の更新が試みられます。

CallBuilder

1 つの関数を記述することでビルダーを作成できるようにする Java コード ジェネレータ。

CPPIterTools

Python 組み込みライブラリと itertools ライブラリからヒントを得て、範囲ベースのループ アドオンを提供する C++ ライブラリ。itertools および Python3 組み込みと同様に、このライブラリでは遅延評価を可能な限り使用します。

コピーバラ

Copybara は、リポジトリ間でコードを変換して移動するためのツールです。

Dagger

Dagger は、Java と Android の両方を対象とする完全に静的なコンパイル時の依存関係注入フレームワークです。

DAML

DAML は、安全でプライバシーを意識したランタイムで将来を見 distributed えた分散アプリケーションを構築するためのスマートな契約言語です。

DeepMind ラボ

エージェント ベースの AI 研究に使用できるカスタマイズ可能な 3D プラットフォーム。

Drake(英語)

Drake は MIT で開発された C++ ツールボックスで、現在はトヨタ研究所が主導しています。これは、ロボットのダイナミクスを分析し、それらのロボットの制御システムを構築するためのツールのコレクションです。特に、最適化ベースの設計と分析に重点が置かれています。

Envoy

C++ L7 プロキシと通信バス

エラーが発生しやすい

Java の一般的な誤りをコンパイル時のエラーとしてキャッチします。(Bazel への移行が進行中です)。

Extensible Service Proxy

Extensible Service Proxy(別名 ESP)は、JSON/REST や gRPC API サービスの API 管理機能を実現するプロキシです。現在の実装は、NGINX HTTP リバース プロキシ サーバーをベースにしています。

フルーツ

FFruit は、人気が高い Falling Fruit の無料オープンソース Android アプリです。

Gerrit コードレビュー

Gerrit は、Git ベースのプロジェクト用のコードレビューとプロジェクト管理ツールです。

Gitiles

Gitiles は、JGit をベースに構築された、Git リポジトリ用のシンプルなリポジトリ ブラウザです。

Grakn

Grakn(https://grakn.ai/)は、複雑なデータ ネットワークの編成やクエリを可能にするナレッジグラフ エンジンです。

GRPC

言語とプラットフォームに中立なリモート プロシージャ コール システム。(Bazel はサポートされていますが、プライマリ ビルドシステムではありません)。

gVisor

gVisor はコンテナ ランタイム サンドボックスです。

ゲツェリ

Guetzli は、高い画質で優れた圧縮密度を実現する JPEG エンコーダです。

グラバ

Prolog スタイルの述語を記述し、通常の Java コードからシームレスに使用できる Java コード ジェネレータ。

ヒーロー

Heron はリアルタイムの分散型フォールト トレラントなストリーム処理エンジンです。

JGit

JGit は、Git のバージョン管理システムを実装する軽量な純粋な Java ライブラリです。

Jsonnet

正式に指定された、JSON 用の構成生成言語です。(Bazel はサポート対象のビルドシステムです)。

Kubernetes

Kubernetes は、複数のホストにまたがるコンテナ化されたアプリケーションを管理するためのオープンソース システムであり、アプリケーションのデプロイ、メンテナンス、スケーリング用の基本的なメカニズムを提供します。

Kythe

コードで動作するツールを構築するためのエコシステム。

Nomulus(英語)

Google App Engine のトップレベル ドメイン名レジストリ サービス。

ONOS : オープン ネットワークのオペレーティング システム

OS は、従来の「ブラウン フィールド」ネットワークから SDN「グリーン フィールド」ネットワークへの移行をサポートする唯一の SDN コントローラ プラットフォームです。これによって、ネットワーク オペレータの新しい機能が実現されると同時に、デプロイと運用のコストが大幅に減少します。

Java 用 PetitParser

プログラミング言語での文法は、従来から静的に指定されていました。あいまいな状況のため、構成や再利用が困難です。 PetitParser は、スキャンナーレス解析、パーサー コンビネータ、式文法および packrat パーサーの解析から、動的に再構成可能なオブジェクトとしてモデル文法とパーサーのモデルを組み合わせたものです。

PlaidML

PlaidML は、ディープ ラーニングをあらゆる場所で活用するためのフレームワークです。

プロジェクト V

Project V は、インターネット経由で独自のプライバシー ネットワークを構築する際に役立つツールのセットです。

Prysmatic Labs Ethereum 2.0 の実装

Prysm は、ブロックチェーンベースの分散コンピューティング プラットフォームである Ethereum 2.0 のシャーディング クライアントです。

レイ

Ray は、柔軟で高性能な分散実行フレームワークです。

休憩

Resty は、Go 用のシンプルな HTTP および REST クライアント ライブラリです(Ruby REST-client から着想を得ています)。

ラフタイム

Roughtime は、安全な時刻同期を実現することを目的としたプロジェクトです。

セレニウム

Selenium は、ウェブ アプリケーションをテストするためのポータブルなフレームワークです。

セマンティック

Semantic は、ソースコードの解析、分析、比較用の Haskell ライブラリとコマンドライン ツールです。これは GitHub で開発されています(コード ナビゲーションなどに使用されます)。

配信中

高パフォーマンスの RESTful ウェブサーバーを構築するための C++ ライブラリが用意されています。

Sonnet

Sonnet は、TensorFlow 上に構築され、複雑なニューラル ネットワークを構築するライブラリです。

シャーベット

Sorbet は Ruby のサブセットに対応する高速で強力な型チェッカーです。数百万行のコードを含むコードベースにスケールでき、段階的に導入できます。

Tink

Tink は、安全かつ正しく、かつ不正使用しやすい暗号 API を提供する、多言語のクロス プラットフォーム オープンソース ライブラリです。

TensorFlow

機械学習用オープンソース ソフトウェア ライブラリです。

ターボサンタ

プラットフォームに依存しない GameBoy エミュレータ。

防 che

Project Wycheproof では、暗号ライブラリが既知の攻撃と比較してテストされています。

XIOSim

XIOSim は x86 アーキテクチャ用の詳細なユーザーモード マイクロアーキテクチャ シミュレータです。

ZhihuDailyPurify

ZhihuDailyPurify は、中国の Q&A ウェブである Zhihu Daily の軽量版です。