DoorDash 使用 CockroachDB 创建微服务配置管理平台

DoorDash 创建配置管理平台以支持业务增长

DoorDash 开发了一个配置管理平台,旨在帮助其物流团队管理日益增长的业务偏好和配置值。该平台采用了 CockroachDB 作为持久化存储,并简化了架构,相比之前的解决方案更具灵活性和可扩展性。新平台支持实验、改进配置值的生命周期管理,并提供了更大的灵活性。

物流团队的配置管理挑战

DoorDash 的物流团队负责多个功能领域,并管理着大量配置,以调整平台在不同垂直领域和零售地点的业务方面。过去,更新配置值需要将这些更改提交到源代码库,并依赖复杂的架构将更改传播到 DoorDash 庞大的微服务平台中的许多服务。

旧架构的局限性

旧架构存在诸多挑战和限制,主要包括:

  • 需要更新庞大的文件,通常只有单行更改,容易导致无意中的更新。
  • 审计和版本控制困难。
  • 添加新偏好耗时较长。
  • 配置值传播流程复杂,难以确定配置更改的时间和来源。

新架构的改进

DoorDash 的软件工程师 Saurabh Gupta 和 Reid Arwood 解释了公司为何需要替换现有的配置管理解决方案。他们指出,旧系统无法跟上 DoorDash 在新垂直领域的增长,且配置偏好未采用标准格式,导致维护和更新这些文件既困难又风险高,多次因错误配置导致服务中断。

新架构采用了更灵活的数据模型,数据存储在 CockroachDB 中,支持多层次的版本控制和审计(如商店、业务等)。配置值通过管理 UI 应用程序进行更新和批准。新解决方案支持基于失效的配置自动回滚、基于时间的偏好、用于实验的临时配置类型、自动化验证以及自动批准/拒绝等功能。

实施新架构的增量方法

团队采用了增量方法来交付新架构,通过升级 CockroachDB 集群节点的实例类型和优化应用程序代码(包括查询和线程池优化),将检索配置值的延迟优化到约 10 毫秒(99% 百分位)。

未来计划

随着更多用例迁移到新架构,开发人员计划将该解决方案扩展到每秒处理 10,000 个请求,提高其可靠性和大文件处理能力,优化数据模型以支持更多灵活性,并使其更加开发者友好。

DoorDash 的其他技术改进

InfoQ 最近报道了 DoorDash 其他改进微服务平台的举措,包括使用服务网格和基于单元的架构来降低基础设施成本,以及重新设计缓存层以提高性能和可扩展性。

阅读 41
0 条评论