学习
实践
活动
工具
TVP
写文章

Uber Cadence 学习

可惜文档晦涩难懂,不使用业内通用模式和架构,自己创造一套,这大概也是 Uber 的一个特色吧? 相反 Netflix Conductor 的 JSON DSL 简直就是噩梦。 演进历史: AWS Simple Workflow -> Uber Cadence -> Temporal -> AWS Step Function ? 当然还有更复杂的用例:uber eats[7] 参考资料 •Cadence — The only workflow orchestrator you will ever need[8]•Using Cadence [11] 引用链接 [1] TChannel: https://github.com/uber/tchannel-go [2] AirFlow: https://airflow.apache.org [ id=19734067 [6] samples: https://github.com/uber-common/cadence-samples [7] uber eats: https://github.com

1.3K40

UBER数据大迁徙

想象一下如果你必须在几个星期内迁移数以亿计的数据和100多个服务项目,同时还要保持UBER被几百万的乘客正常使用,这是多么艰巨的任务啊! 而以下这个故事就是关于数十名工程师是如何帮助UBER在2014年迁移到Mezzanine的故事。 背景 就像大多数基于网络服务的公司那样,UBER后端系统一开始是采用“单一化”的软件架构,其中包括一群应用服务器和一个单独的数据库。 对于UBER平台,它一切如常。这一起就像万圣节,可能看起来吓人,但其实只是娱乐一下! 教训总结 要使用UUID(通用唯一识别码):请始终使用的UUID。 UBER积极心态!有一个积极和敢做的态度会使全队全力以赴创造辉煌。 自从我们迁移了大数据以来,我们已经增加了一倍的路径存储了,且实现了零死机,并实施了许多性能和运营改进。

46170
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Uber 现在的技术构成

    Uber 经过6年的快速发展,技术构成已经非常复杂,下面看下 Uber 官方公布的技术栈 底层基础 使用混合云模式,结合了多个云服务提供商,全球多个数据中心,如果一个数据中心出错,马上转到另一个,开通了 Uber服务的城市,会被分配到物理距离最近的数据中心,并且每个城市的数据都会备份到一个异地数据中心,所有的数据中心都是运行态的,没有单独作为备份的数据中心 在存储方面,以一个 Postgres 数据库起步 Kafka 集群,然后被多处消费,例如 Hadoop、文件存储系统、实时处理服务等等 日志的搜索和可视化使用了 ELK(Elasticsearch, Logstash, Kibana) 服务发现和路由 Uber 使用SOA架构,在其复杂的网络环境中,各个服务之间必须可以互相沟通,通过结合使用 HAProxy 和 Hyperbahn 来解决这个问题 Hyperbahn 是 Uber 开源的一套服务发现和路由系统, 的技术构成比较复杂,有开源工具,有自研系统,也开源了一些自己的东西 内容整理自Uber官网发布的文章,原文内容更多,地址 https://eng.uber.com/tech-stack-part-one

    53550

    警方披露Uber撞人案细节,解密Uber自动驾驶系统

    据称,Uber 在撞上该行人时,正处在自动驾驶状态。 事故初步调查结果表明,Uber 的自动驾驶汽车在限速 35 英里的地区,但它以 38 英里的时速超速行驶,在事故发生前并没有任何减速刹车的迹象。 ▌解密 Uber 自动驾驶系统 “意外进入行驶路径”的事情几乎是自动驾驶汽车工程师首先考虑的突发事件。 特斯拉自动驾驶系统Autopilot主要依赖雷达 根据 Uber 部署的雷达数量不同,其提供的距离像可能存在巨大差异。Uber 很可能在汽车前后部署了多个雷达,以实现 360 度无死角覆盖。 因此像 Waymo 和 Uber 这样的公司开始依赖“机器学习”系统,通过分析大量的路面数据来让系统自动模拟学习车辆的行为。

    47150

    Uber系统架构设计

    Uber 一开始是单体架构,后来逐渐演化为面向服务的架构。Uber 最早只为旧金山提供服务,他们称之为 UberBlack。 在单一代码库中添加新功能、修复 bug、解决技术债务变得非常困难,这也是为什么 Uber 后来采用面向服务的架构的原因,这也促使 Uber 工程团队重构了新的 Uber 应用。 据 Uber 称,激励有助于满足供给需求,通过提高价格,当需求增加时,路上会有更多的出租车。 Uber 维护了一个备份数据中心,交换机已经准备好将所有数据都路由到备份数据中心,唯一的问题是正在进行的行程的数据可能没有备份。 ---- DISCO — Uber 系统的基础 供给服务(在司机端操作) 请求服务(在乘客端操作) 调度优化(或称 DISCO,Dispatch optimization)是 Uber 系统的一部分,用于基于位置数据匹配需求和供给

    10810

    硅谷,职业Uber司机正在兴起

    Uber进入中国北上广之后,车队规模太小导致在广州番禺这样的偏远地段很难叫到车,这又偏偏是人们需要用Uber这一服务的时候,山景城的荒凉甚过广州番禺或者北京大兴,预约一辆Uber X,候车时间一般在10 这段时间我坐过大约10来次UBer,均是低配的Uber X,车型大都为Toyota Camry或同级。 这是接我的一位Uber司机,来自巴基斯坦 按照Uber要求,Uber汽车需在前窗显眼位置贴上Uber提供的标识,以便乘客发现。 Uber确实通过互联网真正颠覆了出租车行业,与出租车行业的博弈一直存在,美国甚至上演过出租车司机集体罢工抗议Uber的事件,一些地方政府已经开始阻止Uber,譬如Las Vegas,就无法叫到Uber, 还有一些Uber司机以前就是做出租车司机的,现在转投Uber行业。因为自己给自己做事,而不是给出租车公司打工——被他们所忽视的是,现在是为Uber打工,Uber正在成为世界上最大的用车服务公司。

    38040

    Uber的大数据之道

    下面这一篇就来自于Uber数据架构组,他们负责人Chandar说:Spark 已经是”必备神器了”。 旧架构下,Uber依赖于Kafka的数据流将大量的日志数据传输到AWS的S3上,然后使用EMR来处理这些数据。然后再从EMR导入到可以被内部用户以及各个城市使用的关系型数据库中。

    16320

    Uber 的 Docker Mysql 应用

    背景介绍 Uber的MySQL集群规模很大,超过1000个集群,共有4000多个数据库服务器。 Docker虽好,但Uber也给出了一点建议: 在规模不够大时,不要轻易使用Docker,因为使用Docker之后,你需要处理更多的事情,例如 镜像的构建管理、容器的监控、Docker升级、日志处理、网络规划 ……,所以,规模较小时,使用 Puppet、Ansible 这类的工具就够用了,例如Uber的情况,MySQL集群数量在16个以下时,用 Puppet 管理就比较轻松。 小结 通过以上内容,我们可以对Uber的MySQL Docker方案有个大概了解,主要由以下4部分构成: 无状态的MySQL容器 整体集群拓扑结构的配置文件 agents,每台主机上的工作者,负责本机上容器的创建 内容整理自Uber官方博客,原文地址:https://eng.uber.com/dockerizing-mysql

    63790

    关于Uber选择MySQL的思考

    在数据库圈子,大家都知道2016年 Uber 干出来一件大事件,把 PostgreSQL 切换到了 MySQL,当时社区里一阵喧哗。这里想带着大家思考一下选择的背后。 在该事件中,Uber 提出来迁移的一个重要原因是:在大量更新的业务场景下 PostgreSQL 的 IO 方面有过多的开销(主要是从存储结构上说明),对于使用 SSD 或是 PCI-E 卡的设备基本无法容忍写放大 Uber 针对这些需求也和其它互联网厂家一样,尝试过Cassandra, Riak,MongoDB,也想过自研,但最终选择了MySQL 作为存储层。 这里反问一下: MySQL 能满足上面的需求吗? 例如: SchemaLess 存储支持 写缓冲能力,较快的故障切换 较好的扩容能力 大家的印象里第一条 Schemaless 都可以把MySQL秒了,但从文章里看 Uber 技术负责人:Jakob Thomsen 也正是这两个特性,正好满足 Uber 的需求,基于 NoSQL 接口存储,底层数据保障使用 MySQL 的 Replication 复制(MySQL Group Replication 马上也 GA 了

    39150

    Uber LaneGCN-训练数据准备

    Uber LaneGCN的开源代码的训练数据使用了Argoverse Motion Forecasting数据集。 本文主要记录Uber LaneGCN是如何处理轨迹数据和高精地图数据的。 return nbrs Multi-Scale计算是通过邻接矩阵的乘法实现的,以前驱(pre)为例,它的Single Scale的邻接矩阵是: image.png 参考资料 本文所有的代码均来自Uber https://github.com/uber-research/LaneGCN - END -

    32810

    golang 源码分析:uber-goratelimit

    https://github.com/uber-go/ratelimit 是一个漏桶限流器的实现, rl := ratelimit.New(100) // per second prev := time.Now 对于这种情况,uber-go 对 Leaky Bucket 做了一些改良,引入了最大松弛量 (maxSlack) 的概念。

    16410

    丰田5亿美元投资Uber:要打造世上最强大车联网“Uber网络”!

    报道称,此次投资对Uber的估值为720亿美元。 据称,丰田和优步正在合作开发自动驾驶汽车技术,此前,优步在这一领域的进展一直不顺。 参考链接: https://www.businessinsider.com/toyota-to-invest-500m-in-uber-at-72b-valuation-report-2018-8

    28420

    Uber微部署的工程实践

    因此,不断扩大的工程师团队阻碍了Uber人工服务的进一步扩展,有时甚至还会导致其长时间宕机。 如何才能确保每天的稳定部署?为此,Uber开发了微部署(Micro Deploy,简称μDeploy)。 它是Uber的内部部署系统,其构建、更新和回滚服务都是基于Uber进行。 每日部署进程 代码在经过审核、接受和全部单项测试之后,被收入知识库,从而进入预生产阶段,这时Uber工程师就会使用到微部署。 从工程师编写代码,到该代码被运用到Uber生产系统当中,中间几乎没有过渡阶段。自Uber推出首代μDeploy以来,其发展就从未减缓。 下面列举出一些类似Uber的基础设施系统,他们在构建部署系统时所需的几大要素: 服务架构一致性:对Uber来说,微部署是适用于各类服务的集成构建系统。是支持Tornado的Python? Uber工程师亦遍布数个国家和大洲的12个工作室。99%的Uber软件支持μDeploy。微部署在任何场合下赋予工程师的所有权都高速、自主,并且是端对端的。

    41750

    系统设计:Uber滴滴后端服务

    需求 设计Uber后端,让我们设计一个像优步这样的共享乘车服务,将需要乘车的乘客与有车的司机连接起来。类似服务:Lyft、滴滴、Via、Sidecar等。 Uber使其客户能够为出租车司机预订服务。优步司机用他们的私家车载着顾客四处转悠。客户和司机都使用优步应用程序通过智能手机相互交流。 2.系统的要求和目标 让我们从构建一个更简单的Uber版本开始。 当客户在手机上打开Uber应用程序时,他们会查询服务器以查找附近的司机。在服务器端,在将驱动程序列表返回给客户之前,我们将向客户订阅这些驱动程序的所有更新。 正如我们上面所建议的,当客户第一次打开Uber应用时,他们会订阅附近的司机,当新司机进入客户正在查看的区域时会发生什么?要动态添加新的客户/驱动订阅,我们需要跟踪客户关注的区域。

    2.4K94

    定了,Uber将在Uber Eats,自动驾驶和其他部门裁员约350人

    Uber首席执行官Dara Khosrowshahi在在10月15日的一封电子邮件中对员工说,Uber刚刚裁员了组织内各个团队的约350名员工,这是该公司今年初开始的裁员的第三阶段也是最后一个阶段。 受影响的人员包括来自Uber Eats,绩效营销,Advanced Technologies Group和HR的员工,以及全球平台部门的各个团队。同时还要求一些员工重新选择工作地点。 这是在是在Uber裁员其产品和工程团队的435名员工一个月后,以及Uber从其营销团队裁掉约400名员工不到三个月之后的第三次裁员。 到今天为止,Uber的大多数部门都受到裁员的影响。 在2019年第二季度,Uber亏损超过50亿美元,是迄今为止最大的季度收入损失,尽管其部分亏损是由于该公司在5月份进行首次公开募股后基于股票的员工薪酬支出所致。 Uber将于11月4日公布其第三季度收益。该公司目前的股价为每股31.26美元,远低于其45美元的发行价。

    21430

    优步(Uber)准备将“优步美食”( Uber Eats)印度业务出售给Zomato(Apps)

    image.png 三名知情人士告诉科技博客TechCrunch,优步(Uber)与当地竞争对手Zomato就在印度销售外卖服务“优步美食”(Uber Eats)的谈判已进入后期阶段,这家美国叫车服务巨头正寻求削减其全球支出 其中一位消息人士称,该交易目前对Uber Eats印度业务的估值约为4亿美元。 如果交易成功,这将标志着这家美国巨头一年来与Zomato和Prosus ventures支持的Swiggy就出售Uber Eats的印度业务进行了多次谈判的努力画上句号。 尽管这家叫车服务巨头为赢得客户提供了大量折扣,但Uber Eats从未对Zomato和斯威基构成真正的威胁,这两家公司每天都要处理100多万份订单。 此外,最近几个季度,Uber Eats遇到了更多麻烦,两名关键高管——Bhavik Rathod (Uber Eats的印度和东南亚主管)和Deepak Reddy (Uber Eats的印度中心运营主管

    31310

    Uber首席架构师聊架构

    微服务模式的利弊 微服务模式允许使用不同的开发语言,例如一些服务使用 Node.js,一些使用 Python,一些使用 Go,另一些使用 Java,Uber就是这样,并还有 Scala 使用微服务,可以让每个团队自己掌握他们的发布周期 Go 的团队做一遍 再比如,在某个平台上经过奋战解决了某些bug,同样的,其他平台可能还需要战斗一遍 对于多语言混合使用的代价预估不足,超出了预期 在新员工的工作效率方面,微服务起到了很好的效果,由于Uber 的高速发展,大量新员工加入,正是因为使用了微服务,降低了系统理解的难度,使新员工可以快速进入工作状态 Uber的大体架构 Uber在全世界建立了很多数据中心,就是为了让用户与数据的距离更近,还可以提高系统的可用性 高度重视系统的质量,所以失败验证是个非常重要的工作,所有的系统都被设计为可验证的 失败验证基于 Netflix 的 Simian Army 系统,Uber在其上进行了调整,使其更适合自己 Simian 在内部进行大量验证的同时,还在全世界建立起了一个大规模手机测试团队,让大家以用户的角度来使用,进行黑箱测试 以上内容整理自 Uber首席架构师 Matt Ranney 在 2016 QCon 大会的访谈

    45770

    Uber:面向领域的微服务架构

    随着Uber发展,我们目前拥有了大约2200个关键的微服务,并且也亲身经历了这些权衡。在过去的两年里,Uber一直在试图降低微服务的复杂性的同时仍然保持着微服务架构的优势。 Uber的措施 域 Uber域代表一个或多个与逻辑功能分组绑定的微服务的集合。设计域时常见的问题是“域应该有多大?”有些域可以包含数十个服务,有些域只能包含单个服务。 事实上,这种向下迁移是意料之中的,Uber的许多核心业务平台一开始都是针对骑手或司机的功能,随着我们开发出更多的业务线,它们也有了更多的依赖性,就会变得越来越通用(比如Uber Eats或Uber Freight 在Uber内部,我们建立了以下五个层次。 基础设施层。提供任何工程项目都可以使用的功能。这是Uber对诸如存储或网络等重大工程问题的处理。 业务层。 效益 Uber几乎每个主要领域都在一定程度上受到了DOMA的影响。在过去的一年里,我们主要关注Uber的业务层,它为我们的各个业务线提供了通用的逻辑。

    7520

    Uber 大规模运行 Apache Pinot实践

    本文介绍了 Pinot 在 Uber 的应用情况。 1 引言 Uber 有一个复杂的“市场”,由乘客、司机、食客、餐厅等组成。在全球范围内运营该市场需要实时的情报和决策。 Uber 内部的不同用例可以分为以下几个大类: 仪表板 分析应用程序 近实时探索 仪表板 Uber 的许多工程团队使用 Ponot 为各自的产品构建定制的仪表板。 例如,实时识别 Uber 乘客分组的地理热点对于良好的用户体验至关重要。同样,立即识别出司机取消或遗弃的 Uber Eats 购物车,可以快速采取纠正措施(以消息 / 奖励的形式)。 模式服务 这是 Uber 使用的所有模式的集中存储库。在 Uber 内部,Pinot 大量使用这一点作为所有 Kafaka 模式的真相来源。 4 Uber 的贡献 Uber 的 Pinot 团队在提高整体可靠性和查询灵活性方面有四大贡献。 自助加载服务 在 Pinot 平台成立之初,加载新用例是一个非常手工的过程。

    17410

    Uber动态定价中蕴含的算法

    这种现象并不难解释,因为在Uber这个市场里的参与者,都是独立个体,可以被认作是“理性人”,所以他们的行为可以准确地被市场规律描述。 Uber动态定价模型中的供求关系也是非常直观的。 动态定价大比拼:Uber vs.酒店,机票,租车 在之前很多行业都比较成熟的在使用动态定价,比如酒店,机票,和租车行,高峰期也和Uber类似,比如节假日。 唯一不大一样的是,像酒店,机票,他们的供给是固定的无法提高,而Uber不是。对酒店来说,供给是刚性的,无法临时造所房子出来,而Uber的司机供给弹性则大的多,可以收工回家,也可以继续服务。 最挑战的环节:您附近无车可用 关于Uber的定价媒体舆论也吵得纷纷扬扬,使得Uber不得不重新考虑其加价条款。越来越多的用户抱怨在很多地方都无车可用,丝毫不实用,也无可靠性。 这时Uber更倾向于让更多的用户能够叫到车先。与其让用户无车可用,让部分用户对定价持有异议似乎更容易接受。 不理解Uber的动态定价的用户,其实是没有理解Uber作为一个市场平台的本质。

    692101

    扫码关注腾讯云开发者

    领取腾讯云代金券