adidas平台工程师Ángel Barrera Sánchez谈GitOps在容器平台中的应用
adidas平台工程师Ángel Barrera Sánchez近期在adidas工程Medium账户上分享了他如何通过GitOps改进容器平台配置管理。这一系列文章详细介绍了adidas在容器平台中采用GitOps的策略,并计划进一步优化平台管理。
背景与挑战
尽管adidas并非传统意义上的科技公司或初创企业,但其技术基础设施支持了从实体店到在线平台以及产品设计团队的全球协作。adidas的云基础设施覆盖了中国、新加坡、欧洲和美洲,运行着大量临时服务器,全天候支持全球开发团队。
在初期,每个容器集群都有其专属的代码仓库,每个分支都有独立的配置管道。一个共享的配置仓库用于根据环境或地理因素覆盖配置。此外,内部系统集成的代码仓库通过中央仓库生成可部署的包。这种模式存在诸多挑战,例如更新一个组件可能需要在多个仓库中进行修改,流程繁琐且耗时。
GitOps的引入
adidas从“推送模式”转向“拉取模式”,即系统从配置仓库中获取配置。随着容器平台的全球扩展,adidas采用了分层配置策略:
- 全局配置:适用于所有集群的通用设置。
- 环境配置:针对开发、测试或生产等特定环境。
- 地理区域配置:例如在中国优化数据检索速度。
- 集群特定配置:优先级最高,覆盖其他配置。
技术实现
adidas使用Kustomize和Flux实现GitOps。这种分层结构允许灵活定制配置,支持全局、环境、区域或集群级别的更改。
改进与成果
通过这一策略,adidas显著简化了平台集群管理:
- 引入警报系统,提升平台稳定性。
- 通过配置的预执行“干运行”,团队能够提前了解潜在变化。
- 减少操作时间,通过合并配置到更少的仓库中,降低了手动操作的需求。
- 支持容器平台的扩展,尽管在创建新集群时仍需一些手动操作。
未来计划
adidas计划进一步优化平台管理,包括:
- 操作CLI:从集中点简化操作。
- 临时集群:支持从集群内部自动部署基础设施。
- 自动变更日志生成:在配置仓库中直接生成变更日志,便于跟踪平台演变。
总结
adidas的GitOps实践展示了其在技术管理上的创新。通过分层配置和自动化工具,团队提高了效率,减少了手动操作,并为未来的扩展奠定了基础。这一方法与Hazel Weakly在QCon San Francisco 2023上提出的平台建设理念不谋而合,强调了减少重复工作和对齐利益相关者优先级的重要性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。