我们如何在 2800 个微服务中运行迁移

主要观点:

  • 微服务架构虽有价值但存在挑战,如跨服务的大规模库更改。
  • 采用集中驱动的迁移方式可实现更新库、保持版本一致和低升级成本的高程度。
  • 以从弃用的 OpenTracing SDK 迁移到 OpenTelemetry SDK 为例,展示迁移策略和原则。
  • 迁移策略包括规划与对齐、包裹旧库、更新调用站点、包裹新库、大规模部署服务、通过配置控制推出和清理等步骤。
  • 集中驱动的迁移得益于一致的技术、单仓库、大规模部署和灵活的配置服务等基础技术选择和工具。
  • 过去去中心化迁移效果不佳,现在偏向集中驱动迁移,虽单团队付出较高成本,但总体效率提高且更易保持一致性。

关键信息:

  • 三种挑战:更新库、版本一致、低升级成本。
  • 迁移原则:集中驱动、无停机、渐进推出和快速回滚、80/20 自动化规则。
  • 迁移步骤:规划对齐(提案、架构审查)、包裹旧库、更新调用站点、包裹新库、大规模部署、控制推出、清理。
  • 基础技术选择:一致技术(Go 语言和旧库版本)、单仓库、大规模部署、灵活配置服务。

重要细节:

  • 迁移过程中通过包裹旧库可灵活选择实现,避免大量代码修改,还能添加自定义遥测库等。
  • 对于大量引用的函数/类型采用自动化工具处理,少数引用的采用手动处理。
  • 大规模部署服务通过批量作业实现,且通过自动化回滚检查和优先部署低风险服务来降低影响。
  • 控制推出通过配置系统实现快速启用/禁用新功能,可针对特定用户或请求比例。
  • 招聘信息:招聘后端工程师、资深工程师和工程经理。
阅读 11
0 条评论