写点什么

麦当劳使用 GitHub Actions 和可重用工作流简化 CI 管道

  • 2024-04-04
    北京
  • 本文字数:1080 字

    阅读完需:约 4 分钟

麦当劳使用 GitHub Actions 和可重用工作流简化 CI 管道

最近,麦当劳分享了如何利用 GitHub Actions 来提升代码可读性和可维护性,并减少代码重复。他们的目标包括简化持续集成流程、提高开发者生产力,以及实现管道的可观察性和监控。


麦当劳高级解决方案架构师 Michael Gorelik 和软件工程师 Achintya Pillai 在麦当劳技术博客上详细阐述了他们的经历。他们谈到了为持续集成阶段建立一致的框架——被称为“黄金路径”,包括代码质量、安全措施、打包和标记。此外,框架还有助于在所有应用程序中维护统一的质量标准,并促进整个组织采用部署工件的标准化命名约定。


麦当劳的工程团队涉足广泛的技术领域,其中有许多使用不同语言编写的微服务,并使用了不同的云原生服务。他们利用 GitHub 的可重用工作流和自定义操作来简化跨应用程序的持续集成 (CI) 流程。


来源:Reduce, reuse, recycle: McDonald’s reusable workflows


为了减少代码重复,他们根据应用程序语言类型来组织 CI 工作流,利用 GitHub Actions 的可重用工作流创建了一个中心 CI 代码库。这些中心工作流包括构建、质量和安全扫描、工件创建和标记等阶段。这种结构简化了维护、更新和代码重用,确保了应用程序开发的标准化。此外,他们使用容器存储所需的工具和库,实现了工作流的简化执行,并降低了安全风险,缩短了执行时间。


麦当劳的工程团队试图将这种黄金路径方法扩展到其应用程序所有的 CI 流程中。为了实现集中式的可重用工作流和操作,每个应用程序都集成了一个简单的 CI 调用文件,让工程师能够在每个 CI 阶段引用黄金路径工作流,并确保符合所需的标准。


今年早些时候,GitHub Actions 引入了一个新的 M1 macOS 运行器 ,并引起了关注。这个新的运行器通过一个配置了 3 个 vCPU、7 GB RAM 和 14 GB 存储空间的虚拟机来运行 Actions 工作流,展示最新的 Mac 硬件对 Actions 的支持。我们偶然看到了一个有趣的 HackerNews 帖子,其中提到了 Alex Ellis 的一个使用 GitHub Actions 的实验。帖子包含了来自技术社区的评论,其中一位 HackerNews 用户 ranting-moth 抱怨说 GitHub Actions 的计算费用非常高,特别是关于 Mac 定价的部分。


麦当劳工程团队还希望通过使用 GitHub Actions 进行持续集成 (CI) 来为工程师提供一种集中控制和个人自治相结合的混合模式。这种方法建立了关键步骤的中心“黄金路径”,同时又让开发人员能够独立添加新的阶段,在保持灵活性的同时不影响其他操作。


在可观察性方面,他们通过采用可重用的工作流构建了集中式的监控解决方案。这些解决方案协助 DevOps 和应用程序团队定期监控其管道性能,并确定未来需要改进的地方。


查看英文原文https://www.infoq.com/news/2024/03/mcdonalds-ci-github-actions/


声明:本文为 InfoQ 翻译,未经许可禁止转载。


2024-04-04 08:007797
用户头像

发布了 494 篇内容, 共 374.6 次阅读, 收获喜欢 571 次。

关注

评论

发布
暂无评论
发现更多内容

ShutdownHook原理

捉虫大师

Java

Git 常用命令速查

箭上有毒

4月日更

40 图|硬核解析用 Mac M1 玩转 SpringCloud

悟空聊架构

开源 Mac SpringCloud m1 passjava

基于NIO高性能、可扩展网络应用库:xSocket

风翱

4月日更 xSocket

内容平台与热点挖掘思考

程序员架构进阶

28天写作 4月日更 领域思考 内容平台

关于读书的随想

小天同学

读书 4月日更

打通本地部署和公有云,混合云架构让“鱼”和“熊掌”兼得(一)

UCloud技术

混合云

【得物技术】得物分布式UI自动化实践

得物技术

测试 UI 质量 自动化测试 得物技术

大学生调研:在选择工作时,最看重什么?

石云升

28天写作 4月日更 1 周年盛典

噱头or契机:多端协同游戏的草蛇灰线

脑极体

大数据-数据处理分类篇

进击的梦清

大数据 批处理 流式计算框架

微信读书又更新,吃灰已久的Pencil又能拿出来遛一遛了。

彭宏豪95

效率工具 读书 阅读 4月日更 微信读书

高效获取信息的几点经验

彭宏豪95

效率 信息 阅读 4月日更

掉坑了!GROUP_CONCAT函数引发的线上问题

AI乔治

Java MySQL 架构 GROUPING运算符

读书有用吗

孙苏勇

读书

太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏

沐风

ansible

苹果(Apple Watch)手表使用必知必会19条

Flychen

苹果手表 IWatch Apple Watch

Flink的Checkpoint持久化存储方案

五分钟学大数据

flink 4月日更

HZFE 快报002 / 比特币7年来首次跌破50天均线

HZFEStudio

大前端 金融科技 科技互联网 资讯

一次用户故事拆分分享

Bruce Talk

敏捷 Agile 用户故事 User Story

产品训练营第三周作业

innovator琳

产品

ceph-csi源码分析(2)-组件启动参数分析

良凯尔

Kubernetes 源码分析 Ceph CSI

深入汇编指令理解Java关键字volatile

AI乔治

Java 架构 volatile Java内存模型

Java最前沿技术——ZGC

AI乔治

Java 架构 jdk ZGC JVM

浅析 Linux 中的 I/O 管理

赖猫

Linux

Golang 反射

escray

学习 极客时间 Go 语言 4月日更

ceph-csi源码分析(1)-组件介绍与部署yaml分析

良凯尔

Kubernetes 源码分析 Ceph CSI

当区块链遇到工业互联网,浪潮云洲链正在那里

云计算

网络协议学习笔记 Day2

穿过生命散发芬芳

网络协议 4月日更

如何利用 Google 开源工具 Ko 在 kubernetes 建并部署 Go 应用

公众号:云原生Serverless

Kubernetes 云原生

Python OOP-2

若尘

面向对象 oop 面向对象编程 Python编程

麦当劳使用 GitHub Actions 和可重用工作流简化 CI 管道_后端_Aditya Kulkarni_InfoQ精选文章