Scaling of Uber's API gateway
摘要
作为上一篇文章的回顾,Uber的API网关提供了一个接口,并作为我们所有后端服务的单一访问点,将功能和数据暴露给移动和第三方合作伙伴。像API网关这样的系统的两个主要组成部分是配置管理和运行时。运行时组件负责验证、授权、转换和路由请求到适当的下游服务,并将响应传回给移动。配置管理组件负责管理开发人员的工作流程,以便轻松配置他们在网关上的端点。这包括确保配置的端点是向后兼容的,并且在运行期间没有功能退步。Uber的所有后端工程师每天都依赖这个组件来开发、测试并向互联网发布他们的端点。
这样一个系统的可靠性和效率是极其重要的。你可以想象,拥有一个可靠和高效的网关平台直接有助于乘客的体验(尤其是运行时组件)和开发者的体验(配置管理组件上的任何问题都会对功能开发速度产生负面影响)。虽然运行时组件的可靠性和效率极为关键,因为它们直接贡献于Uber的顶线,但配置管理的可靠性和效率也极为关键,直接关系到Uber的底线。
当一个平台被大量的工程师用来开发端点时,自然会产生争论点,这会拖慢人们的速度,最终降低整个公司的整体开发速度。在这篇文章中,我们将谈论我们如何扩大这个平台的规模,使其每天被Uber的数百名工程师使用。我们将深入探讨我们的配置管理组件的代码构建方面,我们在推出时面临的挑战,以及我们如何解决这些问题。
欢迎在评论区写下你对这篇文章的看法。