McDonald's 利用 GitHub Actions 优化 CI 流程
最近,麦当劳讨论了如何利用 GitHub Actions 来提高代码的可读性和可维护性,并减少代码重复。他们的目标包括建立简化的持续集成(CI)流程、提高开发者的生产力,以及实现管道的可观测性和监控。
麦当劳的高级解决方案架构师 Michael Gorelik 和软件工程师 III Achintya Pillai 在麦当劳技术博客中详细介绍了他们的经验。他们提到,建立了一个称为“黄金路径”的统一框架,以促进持续集成的各个阶段,包括代码质量、安全措施、打包和标记。此外,该框架还确保了所有应用程序的质量标准一致,并推动了整个组织中部署工件的标准化命名约定。
麦当劳的工程团队管理着一个广泛的技术生态系统,其中包括用多种语言编写的微服务和不同的云原生服务。他们利用 GitHub 的可重用工作流和自定义操作来简化跨应用程序的持续集成流程。
为了减少管道中的代码重复,团队按应用程序语言类型组织了 CI 工作流,并利用 GitHub Actions 的可重用工作流创建了一个中央 CI 代码库。这些中央工作流包括构建、质量和安全扫描、工件创建和标记等阶段。这种结构简化了维护、更新和代码重用,确保了应用程序开发的标准化。此外,团队还使用容器来存储所需的实用工具和库,从而简化工作流执行,减少安全风险和执行时间。
麦当劳的工程团队计划将“黄金路径”方法扩展到所有应用程序的 CI 流程中。为了实现中央化的可重用工作流和操作,每个应用程序都集成了一个简单的 CI 调用文件,使工程师能够引用“黄金路径”工作流进行 CI 阶段,并确保符合所需标准。
今年早些时候,GitHub Actions 引入了新的 M1 macOS 运行器,该运行器在 VM 上运行 Actions 工作流,配备了 3 个 vCPU、7 GB RAM 和 14 GB 存储,展示了 Actions 的最新 Mac 硬件能力。此外,Tech 社区在 HackerNews 上讨论了 GitHub Actions 的计算时间成本,特别是关于 Mac 定价的问题。
麦当劳工程团队使用 GitHub Actions 进行 CI 的目标是为工程师提供集中控制和个体自主性之间的平衡。这种方法为关键步骤建立了中央“黄金路径”,同时允许开发者独立添加新阶段,保持敏捷性而不影响其他操作。
最后,在可观测性方面,团队通过采用可重用工作流建立了集中监控解决方案。这些解决方案帮助 DevOps 和应用团队定期监控管道性能,并确定未来改进的领域。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。