Uber公司技术栈介绍

Uber(Uber Technologies,Inc.)中文译作“优步”,是一家美国硅谷的科技公司。Uber在2009年,由加利福尼亚大学洛杉矶分校辍学生特拉维斯·卡兰尼克和好友加勒特·坎普(Garrett Camp)创立。因旗下同名打车APP而名声大噪。Uber已经进入中国大陆的60余座城市,并在全球范围内覆盖了70多个国家的400余座城市。

前端:

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,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。