誰使用 Bazel?#39

回報問題 查看原始碼

本頁面列出已知會使用 Bazel 的公司和 OSS 專案。並不代表背書。

使用 Bazel 的公司

阿卡克

Acqio 是一個為中小型企業提供付款產品和服務的金融科技。Acqio 有一些單體存放區,並使用 Bazel 與 Kubernetes 來提供快速可靠的微服務。

Adobe

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

阿薩納

Asana 是一款網頁和行動應用程式,專為協助團隊追蹤工作而設計。 產品說明:

Bazel 可提升 Asana 的所有建構/測試的可靠性、穩定性和速度。由於快取有誤,我們不再需要清理檔案。

Ascend.io

Ascend 是 Palo Alto 的新創公司,可提供大型資料集分析的解決方案。他們的座右銘是大數據很痛苦,道理

Beeswax

「Beeswax」是一家位於紐約的新創公司,提供即時出價做為服務。Bazel 致力於以 Jenkins 為基礎的持續整合與部署架構。Beeswax 非常喜歡 Bazel,因為這項工具可以在許多語言和平台中運作快速、正確且獲得良好支援。

布林

PayPal 子公司 Braintree 負責開發網站和應用程式的付款解決方案。他們將 Bazel 用於內部建構作業的某些部分,Paul Gross 甚至會明確表示改用 Bazel 的做法

畫布

Canva 利用 Bazel 管理其大型的多功能程式碼集,包括 Java、TypeScript、Scala 和 Python 等。遷移至 Bazel 可讓開發人員和運算基礎架構的效率大幅提升 (例如平均持續整合建構時間的減少幅度達 5 至 6 倍),而且依然是公司快速、可重現且標準化軟體的建構基礎。

CarGurus

CarGurus 的使命是打造世界上最值得信賴且透明公開的汽車市集,並使用 Bazel 建構自家的多功能單體存放區。

指南針

Compass 是以技術為導向的房地產平台。我們與房地產、技術和業務專業人士的頂尖團隊組成,致力成為最值得信任的居家搜尋者。

Databricks

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

Databricks 程式碼集是一個 Mono 存放區,其中包含大多數服務採用的 Scala 程式碼、適用於前端 UI 的 JavaScript、用於指令碼編寫的 Python、用於設定基礎架構的 Jsonnet 等等 [...],即使我們的單層存放區包含數百萬行 Scala,還是能在短時間內處理程式碼,又快又簡單。(Databricks,使用 Bazel 搭配 Bazel 加快建構速度)

Dataform

Dataform 為資料團隊提供可擴充的數據分析服務。他們在單一單單存放區中維護少量 NPM 套件和說明文件網站,並使用 Bazel 進行所有工作。

遷移至 Bazel 之後,他們回報了許多優勢,包括:

  • 更快的 CI:我們啟用遠端建構快取功能,將整個存放區的平均建構時間從 30 分鐘縮短為 5。
  • 改善本機開發:不必再您忘記執行的隨機 bash 指令碼,將漸進式建構作業從幾分鐘縮短至數秒
  • 開發人員設定時間:新工程師只需 3 個依附元件 (Bazel、docker 和 JVM) 就能建構所有程式碼。加入本團隊的最後一位加入工程師,在 30 分鐘內輕鬆打造出全新空的筆記型電腦

深銀 FISHLABS

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

Dropbox

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

工程和牛耳器

Engel & Völkers AG 是德國私人公司,透過一系列加盟辦公室提供與房地產交易相關的服務。

我們其中一項內部專案的編譯時間從 11 分鐘縮減到大約 1 分鐘,這項成就令人驚豔,我們目前正努力將 Bazel 拓展至更多專案。(使用 Google Cloud Build 和 Bazel 進行實驗)

Etsy

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

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

Evertz.io

Evertz.io 是多用戶群的無伺服器軟體式服務 (SaaS) 平台,為全球廣播媒體產業提供符合成本效益的多區域服務,由 Evertz Microsystems 打造。

網站是以 Angular 與 Bazel 工作流程完全建構及部署 (來源)。

尋找

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

Huawei Technologies 在大約 30 個專案中使用 Bazel,屬於 Java/Scala/Go 專案,但 Go 專案除外,其他專案是由 Maven 建構。我們編寫了一項簡單的工具,以便將 Maven 建構的專案轉譯成 Bazel 建構的專案。不久後,越來越多專案將使用 Bazel。

IMC 交易

IMC 成立於阿姆斯特丹,是一家全球專屬貿易公司和市場經營者。我們使用 Bazel 持續建構及測試 Java/C++/Python/SystemVerilog 專案。

Improbable.io

Improbable.io 開發了分散式作業系統 SpatialOS,可建立由數百萬個複雜實體所居住的大型模擬作業。

Interaxon

InteraXon 是一家審慎控管的運算公司,該公司建立硬體和軟體平台,將大腦轉換為數位信號。

木星

Jupiter 是每週提供運送雜貨和家庭必需品的公司。

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

只要

只是一間總部設於挪威的企業金融科技公司,他們打造了軟體解決方案,徹底改變全球企業企業管理風險和流動的方式。該公司的整個應用程式堆疊都是以 Bazel 建構而成。

Kitty Hawk Corporation

小貓浩克是一間生產電子飛機的美國飛機製造商。他們使用 Bazel 搭配 Haskell 和 Scala 規則。

Line

Line 提供即時通訊應用程式,這是日本最熱門的訊息應用程式。他們會在自己的程式碼集上使用 Bazel,當中包含約 60% 的 Swift 和 40% C/C++/Objective-C/Objective-C++ (來源)。

改用 Bazel 後,我們成功在建構時間方面大幅提升。這會大幅改善在品質確保期間的作業時間。向測試人員發布新版本後,不必再等待一個小時就能建構及測試。(使用 Bazel 改善 LINE 的 iOS 建構效能)

LingoChamp

LingoChamp 為英文學習者提供專業的解決方案。我們針對 Go 專案、Java 和 Python 專案使用 Bazel

LinkedIn

LinkedIn 是 Microsoft 的子公司,是全球規模最大的專業社群網路。LinkedIn 使用 Bazel 建構自己的 iOS 應用程式。

Lucid Software

Lucid Software 是視覺協作的領導者,可協助團隊眼前規劃,實現從構想到現實的未來發展。有了 LucidchartLucidsparkLucidscale 等產品,團隊就能建構共同的願景、釐清複雜性,並以視覺化方式協同合作,不必擔心位於何處。

Lucid 使用 Bazel 建構數百萬行 Scala 和 TypeScript。遷移至 Bazel 會大幅縮減建構作業,減少建構環境的外部依附性,並簡化開發人員的建構系統體驗。Bazel 在 Lucid 方面提高了開發人員的生產力,並推動了進一步的成長。

Lyft

Lyft 使用 Bazel 來處理自己的 iOS (來源) 和 Android 應用程式。

馬卡尼

Makani 現已成為 Google 子公司,負責開發能源套件,並使用 Bazel 建構自家軟體 (包括嵌入式 C++ 軟體)。

聚會

Meetup 是一個線上社群網路入口網站,可協助進行離線群組會議。Meetup 工程團隊負責處理 rules_scala,是 rules_avrorules_openapi 的維護人員。

Nvidia

在 Nvidia 上,我們一直使用 dazel(docker bazel) 處理 Python 來因應某些 bazel 的 Python 即將登場。所有其他在一般的驅動模式下執行 (大多為 Go / Scala/ C++/ Cuda) (來源)

Peloton 技術

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 使用 Bazel 執行其後端服務。

貼齊

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

條紋

Stripe 提供行動付款解決方案。他們會在建構和測試管道中使用 Bazel,詳情請參閱其工程網誌

Tinder

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

Tink

Tink 是歐洲的金融科技,是整合歐洲境內銀行的最佳方式。

他們使用 Bazel 從 Polyglot 單樣本存放區建構自己的後端服務。Tink 的工程師正在籌辦 bazel build //stockholm/... 聚會群組。

Tokopedia

Tokopedia 是一家專營電子商務的印尼科技公司,平台的每月活躍使用人數超過 9, 000 萬人,平台中的商家則有 700 多萬個。

他們撰寫了《Tokopedia Achieved 1000% Faster iOS Build Time》(Tokopedia 如何達成 1000% 的 iOS 建構時間加快) 一文,其中介紹 Bazel 如何加快建構速度。使用 Bazel 之後,建構持續時間從 55 分鐘改為 10 分鐘,在使用遠端快取時減少至 5 分鐘。

Twitter

Twitter 決定從 Pants 遷移至 Bazel 做為主要建構工具 (來源)。

西格瑪星

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

Uber

Uber 是一間叫叫車服務的公司。Uber 的 Go 單體存放區可能是 900 位活躍的開發人員,可能是使用 Bazel 的最大型 Go 存放區之一。如要進一步瞭解相關經驗,請參閱使用 Bazel 建構 Uber 的 Go Monorepo

Uber Advanced Technologies Group

Uber Advanced Technologies Group 專注於 Uber 的自動駕駛車輛,包括卡車/貨運和自動駕駛共乘。機構使用 Bazel 做為主要的建構系統。

Vistar Media

Vistar Media 是廣告平台,可讓品牌根據消費者在現實生活中的行為觸及他們。該公司的工程團隊主要來自於費城,並使用 Bazel 進行建構、部署、加快測試速度,並整合以不同技術編寫的存放區。

VMware

VMware 使用 Bazel 產生確定性且可靠的建構作業,同時為客戶開發創新產品。

Wix

Wix 是一個雲端式網頁開發平台,他們的後端使用 Java 和 Scala 程式碼。並利用 Google Cloud Build 進行遠端執行。

我們已經看到,在執行 Bazel 遠端執行時,清理建構作業的執行速度快了 5 倍;這個功能利用 bazel 出色的建構/測試平行處理功能,將建構/測試動作分派到工作站設備時就能派上用場。由於 Bazel 採用積極的快取機制,因此平均建構時間會快超過 10 倍。(要從 Maven 或 Gradle 遷移至 Bazel?您應該思考的 5 個重要問題)

Zenly

Zenly 是好友與家人的即時地圖。這其實是最有趣的聚會方式, 或單純查看新鮮事吧!,即使彼此分隔兩地,也能感受到彼此的感覺。


使用 Bazel 的開放原始碼專案

腹部

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

角形

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

阿波羅

Apollo 是高效能、彈性的架構,可加速自動駕駛車輛的開發、測試及部署。

Brpc

百度通用的工業級 RPC 架構,提供超過 1,000,000 個執行個體(不計算用戶端數量) 和數千種服務,在百度中稱為「百度」。

cert-manager

cert-manager 是 Kubernetes 的外掛程式,可自動管理與核發各種核發來源的傳輸層安全標準 (TLS) 憑證。如此將確保憑證定期有效且為最新版本,並在到期前嘗試在適當的時間更新憑證。

CallBuilder

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

CPPItertools

C++ 程式庫提供以範圍為基礎的迴圈外掛程式,其靈感來自 Python 內建函式和疊代工具程式庫。就像疊代工具和 Python3 內建函式一樣,這個程式庫會盡可能使用延遲評估。

文案列

Copybara 是能在存放區之間轉換及移動程式碼的工具。

Dagger

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

資料分析

DAML 是一種智慧型合約語言,可在安全且注重隱私權的執行階段中,建構符合未來趨勢的分散式應用程式。

DeepMind Lab

可自訂的 3D 平台,適用於以服務專員為基礎的 AI 研究。

Drake 是位於麻省理工學院的 C++ 工具箱,目前由 Toyota 研究機構主導。是一組工具,可用來分析機器人的動態及建構控制系統,而且特別著重於最佳化式設計/分析。

Envoy

C++ L7 Proxy 與通訊匯流排

容易發生錯誤

將常見的 Java 錯誤視為編譯時間錯誤。(正在遷移至 Bazel)。

可擴充服務 Proxy

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

FFruit

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

Gerrit 程式碼審查

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

圖塊

Gitiles 是一種以 JGit 為基礎的 Git 存放區的簡易存放區瀏覽器。

拉克

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

GRPC

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

gVisor

gVisor 是一種容器執行階段沙箱。

格瑞茲利

Guetzli 是一款 JPEG 編碼器,旨在提供優異的壓縮畫質,讓視覺品質優異。

古拉瓦

這個 Java 程式碼產生器可讓您編寫 Prolog 樣式述詞,並在一般 Java 程式碼中順暢使用。

明星型

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

爵士狂想

「Jazzer」是 Java 和其他 JVM 語言的模糊效果,可與 JUnit 5 整合。

JGit

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

Jsonnet

JSON 的典雅具體設定產生語言。(Bazel 是支援的建構系統)。

Kubernetes

Kubernetes 是開放原始碼系統,可用於管理多個主機上的容器化應用程式,為應用程式提供部署、維護及資源調度的基本機制。

基斯

這個生態系統旨在打造可與程式碼搭配運作的工具。

聖誕節

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

ONOS:Open Network OS

ONOS 是唯一支援從舊版「棕色田野」網路轉換至 SDN「綠地」網路的 SDN 控制器平台。如此可增加新功能,以及網路業者的破壞性部署和作業成本點。

Java 適用的 PetitParser

程式設計語言的文法通常是靜態指定。由於難以避免產生,這類結果在撰寫和重複使用方面並不容易。PetitParser 結合了無掃描剖析、剖析器組合器、剖析運算式文法和 Packrat 剖析器等各種構想,以建立可動態重新設定的文法和剖析器物件。

PlaidML

PlaidML 是讓深度學習在任何地點都能運作的架構。

專案 V

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

Prysmatic Labs Ethereum 2.0 實作

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

Ray

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

灰塵

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

彈性

Roughtime 是一項旨在提供安全時間同步處理的專案。

Selenium

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

語意

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

已放送

Served 是 C++ 程式庫,用於建構符合 REST 樣式的高效能網路伺服器。

Sonnet

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

雪酪

Sorbet 是快速又強大的類型檢查工具,適用於一部分 Ruby。這種資料庫會使用數百萬行程式碼來擴充程式碼集,並可以逐步採用。

Spotify

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

Tink

Tink 是多語言跨平台的開放原始碼程式庫,可提供安全、易於使用且不易濫用的加密編譯 API。

TensorFlow

適用於機器智慧的開放原始碼軟體程式庫。

Turbo Santa

平台獨立的 GameBoy 模擬器。

Wycheproof

Project Wycheproof 能夠針對已知攻擊測試加密程式庫。

XIOSim

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

ZhihuDailyPurify

Zhihu DailyPurify 是輕量級 Zhihu Daily 的一種版本,也是一個中國的問答網站。