【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

麦当劳使用 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:007529
用户头像

发布了 313 篇内容, 共 196.3 次阅读, 收获喜欢 428 次。

关注

评论

发布
暂无评论

1-2月热点:度目发布煤矿电子封条解决方案,AI助力生产安全,推进煤矿智能化建设

百度大脑

项目管理中的三约束四职责五过程九领域

踏雪痕

项目管理 3月程序媛福利 3月月更 PMBOK

大画 Spark :: 网络(6)-Spark网络中的“四次握手”Executor注册到Driver的过程(硬核)

dclar

大数据 hadoop spark 源码 源代码

AI+Science系列(一) :飞桨加速CFD(计算流体力学)原理与实践

百度大脑

Linux之yum命令

入门小站

Linux

火狐浏览器如何设置代理?火狐浏览器代理服务器设置教程

喀拉峻

网络安全

突破地心引力!与KubeEdge一起迈向太空的云原生

华为云原生团队

开源 边缘计算 卫星定位 边缘技术 边缘云

洞见科技成为华东江苏大数据交易中心会员单位,创始人姚明获颁「年度数字经济卓越领袖奖」

洞见科技

数据中心 隐私计算 数据交易

行程码带星喜提八天(杂记篇)

松子(李博源)

游记 旅行

春天到了,连AI都开始瘦身……

白洞计划

Flutter 多选底部弹层实现详解

岛上码农

flutter ios 移动端开发 3月月更 安卓开发

大数据项目实施的成功与失败

松子(李博源)

数据中台 数据产品经理 数据治理 数据资产

Ubuntu 笔记本关闭合上盖子自动休眠

信号量

Linux ubuntu SSH 笔记本 盖子

Kubernetes 中的对象是如何删除的:Finalizers 字段介绍

Se7en

Nacos+OpenFegin正确调用服务的姿势!

王磊

springcloudAlibaba

iuap 助力长久汽车打造“业财一体数字智能化平台”

用友BIP

用友 用友iuap

STEPN游戏系统定制开发需

Geek_232be3

【图解数据结构】排序全面总结(上)

知心宝贝

数据结构 算法 排序算法 3月月更

WebAssembly技术_在Web端运行C与C++程序(ubuntu18.04)

DS小龙哥

webassembly 3月月更

在线JSON转XML工具

入门小站

工具

企业知识管理包括哪些内容?

小炮

知识管理 企业

Hoo研究院|2022年第一季度发生在区块链行业的投融大事件

区块链前沿News

虎符交易所 虎符研究院

Nydus 镜像加速插件迁入 Containerd 旗下

SOFAStack

“互联网+”

架构设计作业一

yang

智慧党建系统开发建设

a13823115807

自己动手写Docker系列 -- 5.2实现查看运行中的容器

Docker

在线Js,JavaScript压缩格式化工具

入门小站

工具

Jira API的六种传参方式

FunTester

性能测试 FunTester

祖传代码如何优化性能?

捉虫大师

性能优化

2022钉钉发布会|云钉低代码新模式、新能力、新机遇

一只大光圈

低代码 数字化 钉钉宜搭 宜搭

OpenHarmony 3.1 Beta版本关键特性解析——HAP包安装实现剖析

OpenHarmony开发者

OpenHarmony

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