Uber公司技術棧介紹

Uber公司技術棧介紹

      Uber(Uber Technologies,Inc.)中文譯作“優步”,是一家美國硅谷的科技公司。Uber在2009年,由加利福尼亞大學洛杉磯分校輟學生特拉維斯·卡蘭尼克和好友加勒特·坎普(Garrett Camp)創立。因旗下同名打車APP而名聲大噪。Uber已經進入中國大陸的60餘座城市,並在全球範圍內覆蓋了70多個國家的400餘座城市。

image

前端:

Fusion

Base web

React.js

  1. Fusion:

    • 描述: Fusion是一種用於構建現代Web應用程序的前端框架,由Uber開發。它使用React作爲底層渲染引擎,並提供了一組可配置的插件和工具,用於加速Web應用程序的開發。Fusion注重性能和可維護性,同時支持服務器渲染(Server-side Rendering,SSR)和代碼拆分,以提供更好的用戶體驗。
  2. Base Web:

    • 描述: Base Web是Uber開發的一套React組件庫,用於構建Web應用程序的用戶界面。它提供了一系列可重用的UI組件,如按鈕、表單元素、導航菜單等,以及一些有用的樣式和佈局工具。Base Web的設計理念是靈活性和可定製性,開發人員可以根據項目需求自定義組件外觀和行爲。
  3. React.js:

    • 描述: React.js(通常簡稱爲React)是由Facebook開發的JavaScript庫,用於構建用戶界面。它採用了組件化的開發模式,將用戶界面拆分成可組合的組件,每個組件都有自己的狀態和生命週期。React使用虛擬DOM(Virtual DOM)來提高性能,僅在需要時更新頁面的部分,從而加速渲染過程。React被廣泛用於構建單頁應用程序(SPA)和動態Web界面。

移動端:

Swift

RIB cross platform

  1. Swift:

    • 描述: Swift是一種由Apple開發的、現代的多範式編程語言,用於iOS、macOS、watchOS和tvOS應用程序的開發。它被設計成易於學習和使用,具有高性能和安全性。Swift具有豐富的標準庫,支持面向對象、函數式和協議導向編程範式。它已成爲移動應用程序開發的主要語言之一,並廣泛用於開發iOS和macOS應用。
  2. RIB (Router, Interactor, Builder) cross platform:

    • 描述: RIB是由Uber開發的一種用於構建用戶界面的架構模式。它旨在解決大型應用程序中視圖控制器(View Controllers)變得複雜和難以管理的問題。RIB拆分UI層級爲三個核心組件:
      • Router: 負責導航和管理屏幕之間的跳轉。
      • Interactor: 包含業務邏輯,處理數據和狀態。
      • Builder: 構建和組裝RIBs以構建整個用戶界面。

    這種架構模式旨在提高代碼的可測試性、可維護性和可擴展性,並可用於跨平臺開發,包括iOS和Android。RIB跨平臺項目的目標是使開發人員能夠在不同的移動平臺上共享和重用RIB組件,從而加速應用程序的開發和維護。

服務端:

grpc

thrift

H3

Flipr

Cadence

uAct

Docstore

MemSQL

Presto

Redis

ElasticSearch

  1. gRPC:

    • 描述: gRPC是由Google開發的高性能遠程過程調用(RPC)框架,基於HTTP/2協議。它支持多種編程語言,並允許開發人員定義服務和消息格式,以便跨不同平臺進行通信。
  2. Thrift:

    • 描述: Thrift是由Apache開發的跨語言的遠程服務框架。它支持多種編程語言,並提供了一種有效的序列化格式,用於在分佈式系統中進行通信。
  3. H3:

    • 描述: H3是Uber開發的一個地理空間索引庫,用於將地理數據分區到六邊形單元格中。它在地理信息系統(GIS)和地理數據分析中廣泛使用。
  4. Flipr:

    • 描述: Flipr是一種用於特徵標記和開關管理的服務。它允許開發人員在運行時控制應用程序的功能,並進行A/B測試。
  5. Cadence:

    • 描述: Cadence是一個分佈式工作流編排系統,旨在處理複雜的業務流程。它允許定義、管理和執行分佈式工作流,以確保業務邏輯的正確執行。
  6. uAct:

    • 描述: uAct是一種用於構建實時事件處理和流數據應用程序的框架。它提供了事件攝取、流處理和查詢功能,適用於大規模的實時數據處理。
  7. Docstore:

    • 描述: Docstore是一個用於存儲和查詢文檔數據的服務。它通常用於構建文檔數據庫和全文搜索引擎。
  8. MemSQL:

    • 描述: MemSQL是一個分佈式實時數據庫系統,支持事務處理和分析查詢。它設計用於處理大規模的內存存儲和實時分析工作負載。
  9. Presto:

    • 描述: Presto是一個開源的分佈式SQL查詢引擎,用於查詢大規模數據。它支持多個數據源,並能夠在分佈式環境中進行高性能查詢。
  10. Redis:

    • 描述: Redis是一個開源的內存數據庫和緩存系統,用於快速存儲和檢索數據。它支持多種數據結構,包括字符串、列表、集合和哈希等。
  11. ElasticSearch:

    • 描述: ElasticSearch是一個開源的全文搜索和分析引擎,用於存儲、搜索和分析大規模的文本數據。它廣泛用於構建搜索引擎、日誌分析和數據可視化工具。

大數據:

Hadoop

Hudi

Parquet

Alluxio

TerraBlob

Pinot

Aresdb

marmaray

Flink

Kafka


  1. Hadoop:

    • 類型: 分佈式計算和存儲框架。
    • 描述: Hadoop是一個Apache項目,旨在處理大規模數據的分佈式計算和存儲。它包括HDFS(Hadoop分佈式文件系統)用於存儲數據,以及MapReduce用於分佈式計算。Hadoop是大數據處理的基石之一。
  2. Hudi (Hadoop Upserts anD Incrementals):

    • 類型: 大數據存儲和數據管理工具。
    • 描述: Hudi是一種開源數據湖管理框架,專注於提供數據的增量更新和快速查詢。它能夠將數據寫入各種存儲引擎,如HDFS和雲存儲,同時支持多種查詢引擎。
  3. Parquet:

    • 類型: 列式存儲格式。
    • 描述: Parquet是一種高效的列式存儲格式,用於存儲大規模數據。它被廣泛用於大數據生態系統,如Hadoop和Spark,因爲它能夠提供高度壓縮和高性能的查詢。
  4. Alluxio:

    • 類型: 分佈式內存數據存儲和計算加速器。
    • 描述: Alluxio(之前稱爲Tachyon)是一個開源的內存加速的分佈式文件系統,用於加速數據訪問。它可以在存儲系統之上構建,以提供快速的數據訪問,特別適用於大數據工作負載。
  5. TerraBlob:

    • 類型: 地理信息系統(GIS)工具。
    • 描述: TerraBlob是一個開源的GIS工具,用於處理和分析地理數據。它可以幫助地理信息領域的工程師和研究人員處理地理數據、地圖製作和空間分析。
  6. Pinot:

    • 類型: 分佈式實時數據倉庫。
    • 描述: Pinot是一個用於實時分析的開源數據倉庫。它設計用於快速查詢和分析大規模數據,支持實時數據導入和查詢。
  7. Aresdb:

    • 類型: 實時分析數據庫。
    • 描述: AresDB是Uber開發的實時分析數據庫,專爲處理實時和大規模數據分析而設計。它支持實時數據的攝取、查詢和可視化。
  8. marmaray:

    • 類型: 大數據管道管理工具。
    • 描述: marmaray是Uber開源的數據管道管理工具,用於處理數據攝取、轉換和加載(ETL)工作。它旨在簡化大規模數據的流動和處理。
  9. Flink:

    • 類型: 流處理和批處理框架。
    • 描述: Apache Flink是一個分佈式流處理和批處理框架,用於實時數據處理。它提供了強大的事件時間處理、狀態管理和容錯性。
  10. Kafka:

    • 類型: 分佈式流處理平臺。
    • 描述: Apache Kafka是一個分佈式流處理平臺,用於構建實時數據管道。它可用於數據攝取、數據流傳輸和事件處理,被廣泛用於構建實時應用程序。

CI/CD:

bazel an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large codebases across multiple repositories, and large numbers of users.

devpod remote development environment

spinnaker multi-cloud continuous delivery platform that combines a powerful and flexible pipeline management system with integrations to the major cloud providers.


uMetric a unified internal metric platform that powers the full lifecycle of a metric from definition, discovery, planning, computation, and quality to consumption.

uMonitor alert consists of a metric query, a set of alerting thresholds, and a set of one or more actions to execute in the event that the monitored metric exceeds its corresponding thresholds.

M3 Large-scale Metrics Platform for Prometheus

Peloton Unified Resource Scheduler to co-schedule mixed types of workloads such as batch, stateless and stateful jobs in a single cluster for better resource utilization.

kraken P2P Docker registry capable of distributing TBs of data in seconds

Crane  Next-Gen Infrastructure Stack

Terraform a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.

  1. Bazel:

    • 描述: Bazel是一個Google開源的構建工具,旨在構建和測試多語言的大規模軟件項目。它具有高度並行的構建能力,能夠提供可重現的構建結果,適用於大型代碼庫的管理和構建。
  2. Devpod:

    • 描述: Devpod是一個用於開發者環境管理的工具。它允許開發人員在容器中創建和管理開發環境,以便更容易地在不同項目之間切換,並確保環境的一致性。
  3. Spinnaker:

    • 描述: Spinnaker是一個開源的持續交付(CD)平臺,旨在簡化構建、部署和管理多雲環境中的應用程序。它支持多個雲提供商,具有靈活的部署策略和流水線配置,可實現持續部署和滾動升級。
  4. uMetric:

    • 描述: uMetric是Uber開發的度量和監控系統,用於收集和分析應用程序和系統的性能數據。它有助於監視應用程序的運行狀況,發現問題並進行性能優化。
  5. uMonitor:

    • 描述: uMonitor是Uber的實時監控系統,用於監視分佈式應用程序的健康和性能。它提供了儀表板、警報和可視化工具,以便快速發現和解決問題。
  6. M3:

    • 描述: M3是Uber開發的開源度量和監控平臺,用於處理大規模的時序數據。它支持高度可擴展的度量數據收集和查詢,適用於大數據和分佈式系統監控。
  7. Peloton:

    • 描述: Peloton是Uber開發的資源管理系統,用於調度和管理容器和作業。它旨在提供多租戶、高效能的資源分配和管理。
  8. Kraken:

    • 描述: Kraken是Dropbox開發的分佈式存儲系統,用於管理大規模的文件和對象存儲。它設計用於高度可擴展性和可靠性,適用於大型文件系統。
  9. Crane:

    • 描述: Crane是Uber開發的大規模數據遷移工具,用於將數據從一個存儲後端遷移到另一個。它支持不同存儲後端之間的數據複製和遷移。
  10. Terraform:

  • 描述: Terraform是一個基礎設施即代碼(Infrastructure as Code,IaC)工具,用於自動化基礎設施的創建和管理。它允許開發人員定義基礎設施的配置,並通過代碼進行版本控制,以便輕鬆地創建、修改和銷燬基礎設施資源。



今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領導人怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟件工程的迷思
企業項目化管理介紹
軟件項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網數據庫架構設計思路
IT基礎架構規劃方案一(網絡系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想了解更多軟件設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關注我的微信訂閱號:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 該文章也同時發佈在我的獨立博客中-Petter Liu Blog。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章