优步的平台包括许多微服务,支持构成我们全球服务的所有功能的自包含的子应用程序。
帮助我们的微服务和谐的工作,我们建成了Cadence,我们的编排引擎。此工具路由请求,指导数据和调解各种微服务之间的通信,因此它们都可以无缝合作。建立支持优步的全球业务并提供我们的服务标准,它是可扩展的和容错的。像电脑的指挥一样,它坐标,没有遗漏的击败。
2017年,我们制作了一个开源项目的节奏,让其他需要高度可扩展的编排引擎的工程师使用并为其进行贡献。为了支持Cadence社区,我们最近举行了我们的西雅图办公室的活动优步工程师提供了关于其用途的演示。下面,我们突出了来自事件的介绍的四个视频:
节奏介绍
基于西雅图的优步工程师Maxim Fateev.呈现Cadence的基础知识。他描述了鉴于优步的异步微服务架构,“一个简单的代码成为回调的泥潭,”每个工程师的噩梦都是。幸运的是,他解释说,Cadence允许Uber工程师(和开源用户)带来直观,去基础通过提供自己的持久性,队列和定时器来划分生命。服务可以“谈论”彼此通过这个多租户中间件,它们组织了外部工作流程,使它们正常运行。Cadence确保每个微服务都获得它所需的所有数据(更多,没有,没有任何内容),保留每个动作的记录,并在工作流程之前捕获错误。这使其成为动态,复杂的工作流程的绝佳选择 - 一般来说,任何使用情况超出了简单请求的任何用例,从注册流程订购到机器学习管道的履行。
Cadence建筑
在这个演示文稿中,Cadence团队的工程师Samar Abbas通过Cadence的结构来散步观众。在保持旨在与微服务之间和微服务之间界面的引擎保持,Cadence本身在几层上运行:其前端,历史和匹配服务以及Cassandra后端。Samar描述了这些各种Cadence组件如何彼此相关的和支持。特别是,他详细介绍了前端通过如何呼叫到下一层,历史服务如何处理确定分片所有权的棘手任务,如何匹配服务调度任务以及Uber在Cassandra中配置了Uber的工程师的队列。聆听了解Cadence如何导航墓碑,范围ID等。
写一个节奏工作流程
Yimin Chen教授观众如何在Cadence中撰写工作流程。基本上,他解释说,工程师实施活动,结合形成工作流程,以及哪些节奏可以单位测试。此时,程序员已准备好呼叫工人,它执行工作流程,并进行基本错误处理。伊明详细介绍了这种相对简单的过程的每个步骤,描述了Cadence的创作实践背后的设计哲学。他还介绍了各种保障队的节奏;它的错误几乎在构图的每个阶段都返回帮助工程师完全了解他们的代码如何工作。何时运行Cadence工作流程时,工程师可以杀死并重新启动工人而不会导致任何问题。在这些方式中,Cadence不仅简化并改进了它管理的工作流程,还简化了它的工作流程,而且还可以使用它的工程师的工作流程。
探索优步吃用例
Mihnea Olteanu工程经理Mihneaea Olteanu可以快速了解Cadence工作流程如何使用优步使用。他展示了Cadence如何同步Uber中的八个标准步骤进行工作流程,并与其有助于操作的各种UIS一起显示Orchestration引擎的代码。
请更多关于Cadence的信息,请在此主题上查看我们的其他文章(并观察未来的更新!)。
有兴趣建立像Cadence这样的创新软件吗?在我们的团队中申请角色!






