誰使用 Bazel?#39

回報問題 查看原始碼 Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

本頁面列出已知使用 Bazel 的公司和 OSS 專案。這並不代表 Google 認可。

使用 Bazel 的公司

acqio

Acqio 是一家金融科技公司,為中小型商家提供付款產品和服務。Acqio 有幾個單一版本存放區,並使用 Bazel 搭配 Kubernetes 提供快速可靠的微服務。

Adobe

Adobe 已發布 Bazel 規則,可用於持續性、GitOps 驅動的 Kubernetes 部署作業。

Asana

Asana 是專為團隊追蹤工作而設計的網頁和行動應用程式。他們的經驗分享:

Bazel 可提高 Asana 所有建構/測試的可靠性、穩定性和速度。我們不再需要清除錯誤快取。

Ascend.io

Ascend 是一家位於帕洛阿托的初創公司,提供大型資料集分析解決方案。他們的座右銘是「大數據很難,我們會簡化這項作業

Beeswax

Beeswax 是一家位於紐約的新創公司,提供即時出價服務。Bazel 為他們的 Jenkins 持續整合和部署架構提供支援。Beeswax 很喜歡 Bazel,因為它速度極快、正確無誤,而且支援多種語言和平台。

Braintree

Braintree 是 PayPal 的子公司,專門為網站和應用程式開發付款解決方案。他們使用 Bazel 建構部分內部版本,Paul Gross 甚至發布了一篇精彩文章,說明他們如何轉換至 Bazel。

Canva

Canva 利用 Bazel 管理龐大的多語言程式碼庫,包括 Java、TypeScript、Scala、Python 等。遷移至 Bazel 後,開發人員和運算基礎架構的效率大幅提升,例如 CI 平均建構時間減少了 5 到 6 倍,並持續成為公司快速、可重現且標準化的軟體建構作業基礎。

CarGurus

CarGurus 的使命是打造全球最值得信賴且最透明的汽車市場,並使用 Bazel 建構多語言單一版本存放區。

指南針

Compass 是一個以科技為主的房地產平台。我們擁有一支由房地產、科技和商業專業人士組成的菁英團隊,致力於成為房屋尋找者最值得信賴的最佳資訊來源。

Databricks

Databricks 提供以 Apache Spark™ 為基礎的雲端整合工作區。

Databricks 程式碼基底是 Monorepo,其中包含用於支援我們大部分服務的 Scala 程式碼、用於前端 UI 的 JavaScript、用於指令碼的 Python、用於設定基礎架構的 Jsonnet,以及更多內容 [...] 雖然 Monorepo 包含數百萬行的 Scala,但使用其中的程式碼仍能快速且流暢地運作。(使用 Databricks 的 Bazel 加快 Scala 建構作業)

Dataform

Dataform 可為資料團隊提供可擴充的分析功能。他們在單一 monorepo 中維護少數 npm 套件和說明文件網站,並使用 Bazel 執行所有操作。

遷移至 Bazel 後,他們發現許多優點,包括:

  • 加快 CI 速度:我們啟用了遠端建構快取功能,因此整個存放區的平均建構時間從 30 分鐘縮短為 5 分鐘。
  • 本機開發功能改善:不再有您忘記執行的隨機 bash 指令碼,且增量建構作業時間從數分鐘縮短至數秒
  • 開發人員設定時間:新工程師只需使用 3 個依附元件 (bazel、docker 和 JVM) 就能建構所有程式碼。上一位加入團隊的工程師在全新的空筆電視上,花了不到 30 分鐘就建構出所有程式碼

Deep Silver FISHLABS

Deep Silver FISHLABS 是高階 3D 遊戲的開發商。他們使用 Bazel 搭配 C++/Python/Go/C,做為內部建構工具的基礎,特別是用於烘焙及部署所有 3D 素材資源。

Dropbox

在 Dropbox,Bazel 是分散式建構和測試環境的重要元件。我們使用 Bazel 將 TypeScript/Python/Go/C/Rust 結合成可靠的正式發布版本。

Engel & Völkers

Engel & Völkers AG 是一家私人持股德國公司,透過一系列特許經銷商辦公室提供房地產交易相關服務。

我們內部的一項專案的編譯時間從 11 分鐘縮短到約 1 分鐘,這是令人驚豔的成就,我們目前正致力於將 Bazel 導入更多專案。(嘗試使用 Google Cloud Build 和 Bazel)

Etsy

Etsy 是電子商務網站,專門販售手工或復古商品和用品,以及獨特的工廠製造商品。

他們使用 Bazel 建構及測試以 Java 為基礎的搜尋平台。Bazel 會為裸機伺服器和可重複使用的 Docker 映像檔產生套件。

Evertz.io

Evertz.io 是由 Evertz Microsystems 建立的多租戶無伺服器 SaaS 平台,可為廣播媒體產業提供全球多區域服務,且價格實惠。

網站會使用 Angular 和 Bazel 工作流程進行完整建構及部署 (來源)。

FINDMINE

FINDMINE 是零售業的自動化技術,可利用機器學習來擴大目前產品策展的人工和繁瑣程序。我們使用 Bazel 來自動化整個 Python 套件建構、測試和部署程序。

Flexport

Flexport 是一家以科技為後盾的全球貨運代理商,我們的使命是讓全球貿易更容易。在 Flexport,我們使用 Bazel 建構/測試 Java/JavaScript 服務和用戶端程式庫,並從 protobuf 定義產生 Java 和 Ruby 程式碼。瞭解如何使用 Bazel 獨立執行個別 JUnit 5 測試。

Google

Bazel 的設計可因應 Google 的需求進行擴充,並滿足 Google 在可重現性和平台/語言支援方面的要求。Google 的所有軟體都是使用 Bazel 建構。Google 每天都會使用 Bazel 和其規則進行數百萬次建構作業。

GRAKN.AI

GRAKN AI 標誌

Grakn 是一種資料庫技術,可做為智慧系統的知識庫基礎。Grakn 可讓智慧系統將複雜的資料集解讀為可進行邏輯推理的單一知識體。Bazel 可讓 @graknlabs 團隊建構高度協調的 CI 和發布管道,管理多種語言的多個存放區,並順利部署至多個平台。

Huawei

華為技術在約 30 個專案中使用 Bazel,這些專案是 Java/Scala/Go 專案,除了 Go 專案外,其他專案原本都是由 Maven 建構。我們會編寫簡單的工具,將 Maven 建構的專案轉換為 Bazel 建構的專案。日後會有越來越多專案使用 Bazel。

IMC Trading

IMC 是一家全球自營交易公司和市價商,總部位於阿姆斯特丹。我們使用 Bazel 持續建構及測試 Java/C++/Python/SystemVerilog 專案。

Improbable.io

Improbable.io 開發了 SpatialOS,這是一種分散式作業系統,可用於建立包含數百萬個複雜實體的大型模擬環境。

Interaxon

InteraXon 是一家以思想控制運算為主軸的電腦公司,專門打造硬體和軟體平台,將腦波轉換為數位訊號。

Jupiter

Jupiter 是一家公司,每週提供生鮮雜貨和家用必需品的外送服務。

他們在後端程式碼中使用 Bazel,特別是使用遠端快取功能,將 Protobuf 和 Kotlin 編譯為 JVM 二進位檔。(資料來源)

Just

Just 是一家總部位於挪威的企業金融科技公司,致力於開發軟體解決方案,以改變全球企業財務人員管理風險和流動性的做法。整個應用程式堆疊都是使用 Bazel 建構。

Kitty Hawk Corporation

Kitty Hawk Corporation 是一家美國飛機製造商,專門生產電動飛機。他們使用 Bazel 搭配 Haskell 和 Scala 規則。

Line

Line 提供即時通訊應用程式,是日本最受歡迎的訊息應用程式。他們在程式碼集 (約 60% Swift 和 40% C/C++/Objective-C/Objective-C++) 中使用 Bazel (來源)。

改用 Bazel 後,我們發現建構時間大幅縮短。這項做法大幅改善了 QA 期間的回應時間。將新版本發布給測試人員時,不再需要等待另一個小時的建構和測試時間。(使用 Bazel 改善 LINE for iOS 的建構效能)

LingoChamp

LingoChamp 為英語學習者提供專業解決方案。我們使用 Bazel 建構 Go、Java 和 Python 專案。

LinkedIn

LinkedIn 是 Microsoft 的子公司,也是全球最大的專業人士社交網路。LinkedIn 使用 Bazel 建構 iOS 應用程式。

Lucid Software

Lucid Software 是視覺協作領域的領導者,可協助團隊掌握未來趨勢,並將構想付諸實現。透過 Lucidchart、Lucidspark 和 Lucidscale 等產品,團隊成員無論身處何處,都能圍繞共同願景進行協調、釐清複雜問題,並以視覺化方式進行協作。LucidchartLucidsparkLucidscale

Lucid 使用 Bazel 建構數百萬行 Scala 和 TypeScript 程式碼。遷移至 Bazel 後,建構作業速度大幅提升,對建構環境的依賴性降低,開發人員使用建構系統的體驗也變得更簡單。Bazel 提升了 Lucid 開發人員的工作效率,並開啟了進一步成長的契機。

Lyft

Lyft 會使用 Bazel 建構 iOS (來源) 和 Android 應用程式。

Makani

Makani 目前是 Google 的子公司,專門開發能源風箏,並使用 Bazel 建構軟體 (包括嵌入式 C++ 軟體)。

Meetup

Meetup 是線上社群網站入口網站,可協助安排離線群組會議。Meetup 工程團隊會為 rules_scala 提供貢獻,並維護 rules_avrorules_openapi

Nvidia

在 NVIDIA,我們一直使用 dazel(Docker Bazel) 來處理 Python 的部分 Bazel 缺點。其他所有項目都會在一般 Bazel 中執行 (大多是 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 搭配 rules_closure 建構前端,使用原生 Java 規則建構主要後端,以及使用 rules_gorules_noderules_kotlin 建構各種後端服務。rules_protobuf 可協助後端服務之間以 gRPC 為基礎進行通訊。PubRef.org 位於科羅拉多州博爾德。

Redfin

Redfin 是新一代的房地產經紀公司,提供全方位的在地房仲服務。他們使用 Bazel 建構及部署網站和各種後端服務。

轉換作業已大致完成,情況也大幅改善!我們的 CI 建構作業速度更快 (快:以前需要 40 到 90 分鐘,現在開發人員建構作業平均只需 5 到 6 分鐘)。可靠性也大幅提升。這項指標較難量化,但我們已將不明原因的建構失敗問題,從「只是發生」的現象,轉變為需要解決的實際問題,進而進入良性循環,不斷提升可靠性。(我們從 Maven 改用 Bazel,建構作業速度提升 10 倍)

Ritual

Ritual 是一款行動外帶應用程式,可將餐廳與顧客連結,提供簡單又省時的工具,讓顧客不必等待就能取得所需的餐點和飲料。Ritual 會將 Bazel 用於後端服務。

Snap

Snapchat 訊息應用程式開發商 Snap 已在 2020 年從 Buck 遷移至 Bazel (來源)。如要進一步瞭解這項程序,請參閱他們的工程網誌

Stripe

Stripe 提供行動支付解決方案。他們是 Bazel Scala 規則的主要維護者。

Tinder

Tinder 在 2021 年將 iOS 應用程式從 CocoaPods 遷移至 Bazel (來源)。

Tink

Tink 是歐洲金融科技公司,致力打造連結歐洲銀行的最佳方式。

他們使用 Bazel 從多語言單一版本控制工具箱中建構後端服務。Tink 的工程師正在安排 bazel build //stockholm/... 聚會群組。

Tokopedia

Tokopedia 是專門從事電商的印尼科技公司,每月活躍使用者超過 9, 000 萬人,平台上商家數也已超過 700 萬家。

他們撰寫了「Tokopedia 如何將 iOS 建構時間縮短 1000%」一文,說明 Bazel 如何加快建構作業。使用 Bazel 後,建構時間從 55 分鐘縮短為 10 分鐘,再加上遠端快取功能,更縮短至 5 分鐘。

Twitter

Twitter 已決定將主要的建構工具從 Pants 改為 Bazel (來源)。

Two Sigma

Two Sigma 是一家總部位於紐約的科技公司,致力於從全球資料中找出價值。

Uber

Uber 是叫車服務公司,Uber 的 Go 單一存放區擁有 900 名活躍開發人員,可能是使用 Bazel 的最大 Go 存放區之一。如要進一步瞭解他們的經驗,請參閱「使用 Bazel 建構 Uber 的 Go Monorepo」一文。

Uber Advanced Technologies Group

Uber 先進科技團隊專注於 Uber 的自動駕駛車輛計畫,包括卡車/貨運和自動駕駛共乘服務。該機構使用 Bazel 做為主要建構系統。

Vistar Media

Vistar Media 是廣告平台,可讓品牌根據消費者在實體世界的行為觸及他們。他們的工程團隊主要位於費城,並使用 Bazel 進行建構和部署作業,以加快測試速度,並整合使用各種不同技術編寫的存放區。

VMware

VMware 使用 Bazel 產生可靠的確定性版本,同時為客戶開發創新產品。

Wix

Wix 是雲端式網頁開發平台。後端使用 Java 和 Scala 程式碼。這些工作流程會使用 Google Cloud Build 的遠端執行功能。

我們發現,使用 bazel 遠端執行功能執行時,清除建構作業的速度可加快約 5 倍,因為該功能會將建構/測試動作分派至 worker 農場,並利用 bazel 的優異建構/測試平行處理功能。由於使用了 bazel 的積極快取機制,平均建構時間快了 10 倍以上。(從 Maven 或 Gradle 遷移至 Bazel?5 個你必須問自己的關鍵問題)

Zenly

Zenly 是一張顯示親友即時位置的地圖。這是最有趣的見面方式,或是瞭解最新動態!即使分隔兩地,也能感受到彼此的存在。


使用 Bazel 的開放原始碼專案

Abseil

Abseil 是開放原始碼的 C++ 程式碼集合 (符合 C++11 標準),旨在擴充 C++ 標準程式庫。

Angular

Angular 是熱門的網路架構。Angular 是使用 Bazel 建構

Apollo

Apollo 是一項高效且彈性的架構,可加快自動駕駛車輛的開發、測試和部署作業。

brpc

百度內使用的工業級 RPC 架構,有 1,000,000 個以上的例項(不含用戶端) 和數千種服務,在百度內稱為「baidu-rpc」。

cert-manager

cert-manager 是 Kubernetes 外掛程式,可自動管理並發出來自各種發出來源的 TLS 憑證。這項服務會定期確保憑證有效且為最新版本,並在到期前適當時間嘗試更新憑證。

CallBuilder

Java 程式碼產生器,可讓您透過編寫一個函式來建立建構工具。

CPPItertools

這個 C++ 程式庫提供範圍為基礎的 for 迴圈外掛程式,靈感來自 Python 內建程式和 itertools 程式庫。如同 itertools 和 Python 3 內建函式,這個程式庫會盡可能使用惰性評估。

Copybara

Copybara 是用於在儲存庫之間轉換及移動程式碼的工具。

Dagger

Dagger 是 Java 和 Android 的完全靜態編譯時間依附元件插入架構。

DAML

DAML 是一種智慧型合約語言,可在安全且注重隱私權的執行階段建構可隨時擴充的區塊鏈應用程式。

DeepMind Lab

可自訂的 3D 平台,可用於代理人 AI 研究。

Drake

Drake 是 MIT 開發的 C++ 工具箱,目前由 Toyota Research Institute 負責維護。這是一組工具,可用於分析機器人的動態和建立機器人控制系統,並著重於以最佳化為基礎的設計/分析。

Envoy

C++ L7 代理程式和通訊匯流排

容易發生錯誤

將常見的 Java 錯誤偵測為編譯時錯誤。(目前正在進行遷移至 Bazel 的作業)。

可擴充服務 Proxy

可擴充服務 Proxy (又稱為 ESP) 是一種 Proxy,可為 JSON/REST 或 gRPC API 服務啟用 API 管理功能。目前的實作是以 NGINX HTTP 反向 Proxy 伺服器為基礎。

FFruit

FFruit 是免費的開放原始碼 Android 應用程式,可用於熱門服務 Falling Fruit

Gerrit Code Review

Gerrit 是適用於 Git 專案的程式碼審查和專案管理工具。

Gitiles

Gitiles 是專為 Git 存放區打造的簡易存放區瀏覽器,以 JGit 建構而成。

Grakn

Grakn (https://grakn.ai/) 是知識圖譜引擎,可整理複雜的資料網路,並讓資料可供查詢。

GRPC

語言和平台中立的遠端程序呼叫系統。(Bazel 雖然不是主要的建構系統,但仍受支援)。

gVisor

gVisor 是容器執行階段沙箱。

Guetzli

Guetzli 是 JPEG 編碼器,旨在以高視覺品質提供優異的壓縮密度。

Gulava

Java 程式碼產生器,可讓您編寫 Prolog 風格的謂詞,並透過一般 Java 程式碼無縫使用這些謂詞。

Heron

Heron 是 Twitter 推出的即時、分散式、容錯串流處理引擎。

Jazzer

Jazzer 是針對 Java 和其他整合 JUnit 5 的 JVM 語言所設計的模糊測試工具。

JGit

JGit 是實作 Git 版本控制系統的輕量純 Java 程式庫。

Jsonnet

這是 JSON 的優雅、正式指定的設定產生語言。(Bazel 是支援的建構系統)。

Kubernetes

Kubernetes 是開放原始碼系統,可管理多個主機上的容器化應用程式,提供應用程式部署、維護和擴充的基本機制。

Kythe

建構工具生態系統,可與程式碼搭配使用。

Nomulus

Google App Engine 上的頂層網域名稱註冊服務。

ONOS:開放式網路作業系統

ONOS 是唯一支援從傳統「棕地」網路轉換至 SDN「綠地」網路的 SDN 控制器平台。這可為網路作業人員提供令人振奮的新功能,以及顛覆性的部署和營運成本點。

Java 適用的 PetitParser

程式設計語言的語法通常會以靜態方式指定。由於難免會產生模糊不清的情況,因此很難組合和重複使用。PetitParser 結合了無掃描器剖析、剖析器組合器、剖析式文法和 packrat 剖析器的概念,將文法和剖析器建模為可動態重新設定的物件。

PlaidML

PlaidML 是可讓深度學習在任何地方運作的架構。

Project V

Project V 是一組工具,可協助您透過網際網路建立專屬的隱私網路。

Prysmatic Labs 以太坊 2.0 實作

Prysm 是 Ethereum 2.0 的分割用戶端,這是以區塊鏈為基礎的分散式運算平台。

Ray

Ray 是彈性高效能的分散式執行架構。

Resty

Resty 是 Go 適用的簡易 HTTP 和 REST 用戶端程式庫 (靈感來自 Ruby rest-client)。

Roughtime

Roughtime 是一項專案,旨在提供安全的時間同步功能。

Selenium

Selenium 是用於測試網頁應用程式的可攜式架構。

Semantic

Semantic 是 Haskell 程式庫和指令列工具,可用於剖析、分析及比較原始碼。這是由 GitHub 開發 (並用於程式碼導覽的範例)。

放送

Served 是用於建構高效能 RESTful 網路伺服器的 C++ 程式庫。

Sonnet

Sonnet 是使用 TensorFlow 建構的程式庫,可用於建構複雜的神經網路。

Sorbet

Sorbet 是一款快速且強大的型別檢查器,可用於部分 Ruby 程式碼。它可擴充至含有數百萬行程式碼的程式碼集,且可逐步採用。

Spotify

Spotify 使用 Bazel 建構 iOS 和 Android 應用程式 (來源)。

Tink

Tink 是一款多語言、跨平台的開放原始碼程式庫,可提供安全、易於正確使用且難以濫用的加密 API。

TensorFlow

機器智慧開放原始碼軟體程式庫。

Turbo Santa

不受平台限制的 GameBoy 模擬器。

Wycheproof

Wycheproof 專案會針對加密編譯程式庫測試已知的攻擊。

XIOSim

XIOSim 是 x86 架構的詳細使用者模式微架構模擬器。

ZhihuDailyPurify

ZhihuDailyPurify 是 Zhihu Daily 的輕量版,這是中文問答網站。