前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >麦当劳的 DevOps 范儿:Ninja平台工程实践揭秘

麦当劳的 DevOps 范儿:Ninja平台工程实践揭秘

作者头像
DevOps时代
发布2024-04-18 17:23:07
1440
发布2024-04-18 17:23:07
举报

数字化是麦当劳中国发展的核心驱动力之一。

传统企业的数字化并非一蹴而就,也不是单单引进云原生、微服务这些新兴的概念和工具就可以做到,而是一个持续的吸收、消化和改造的过程。这个过程中更为考验 IT 团队的,是如何让这些新概念、新工具去更好更快地适应和支撑一家企业中不断增长的业务需求。

截至 2023 年 9 月,麦当劳在中国内地有 5500 家餐厅,每年服务顾客超过 10 亿人次。在数字化转型的各个重要节点中,一个友好、灵活、高效、可靠的工程平台的建设与落地,能够为麦当劳驶入转型快车道提供极为坚实的数字化底座。

对于麦当劳而言,建成这样一个数字化平台是势在必行的。因为它不仅仅是黏合开发和运维团队敏捷协作的“DevOps”平台工具,更是麦当劳整个公司业务和 IT 相关角色之间长久建立起 DevOps 文化的重要数字化载体,是麦当劳的 DevOps 文化真正遍地开花、结出硕果的基建保证。

1、穿过阵痛期,麦当劳走向自建数字化平台之路

“数字化是麦当劳中国发展的核心驱动力之一。”早在多年前,麦当劳就做出了数字化发展路线的判断,很早就在内部组建了一支自己的 IT 队伍。从大数据平台的洞察,到数字化的用餐体验,从拥有超过 2.6 亿会员的全渠道会员体系,到技术赋能带来运营效能提升,背后都有着 IT 队伍不懈探索、精益求精的身影。

2020 年,麦当劳中国首个 IT 战略研发中心落地南京,为麦当劳数字化发展又增添了一道强劲助力。中心的研发方向涵盖了很多前沿领域,比如餐饮新零售、智能终端平台、智能餐厅设备、大数据平台及人工智能等等。

落实到业务应用上,研发中心致力于持续为麦中提供本土化的信息系统综合解决方案,包括互联网运营产品、营销工具、餐厅开店工具、效率诊断工具等,不断用数字化技术来提升餐厅的效率和顾客的体验。然而,在数字化转型过程中,尤其是早期阶段,许多企业都会经历阵痛期,麦当劳也不例外。

麦当劳在转型初期,IT 团队的任务重心偏甲方的角色更多一些,技术的落地需要依赖 IT 供应商去实施和部署。而很多时候,乙方交付的技术栈多种多样,部署上则并非完全的私有化部署,维护方面也基本是由乙方负责。在这种甲方 PM 式管理的模式下,麦当劳对于 IT 工具的要求自然也不会太高。

但随着麦当劳 IT 能力的“in-house”自研模式深入,数字化转型对业务研发中“质、效、稳”的要求变得愈来愈高。要攻破这个技术堡垒,在内部搭建起提供更强能力、满足更高要求的工具流程体系,是影响麦当劳此举能否顺利实施的关键一招。

然而,内部自建、自研、自测这样一整套辐射面极广的流程体系并非易事。一方面,IT 团队的资源有限,另一面,则是在转型中积累多年的“惯性”与顽疾,亟待梳理和解决。

譬如,微服务规范和架构没有统一的标准和规范,微服务目录管理混乱;跨团队依赖时上线节奏难以把控;上线流程缺失严格的质量关卡和审核环节;技术栈和工具繁多,没有形成自动化工具的使用规范和统一面板,不能在团队中弥合信息差、沟通成本高;堆人、手工的任务偏多;专家经验没有很好的复用等等。

譬如,微服务规范和架构没有统一的标准和规范,微服务目录管理混乱;跨团队依赖时上线节奏难以把控;上线流程缺失严格的质量关卡和审核环节;技术栈和工具繁多,没有形成自动化工具的使用规范和统一面板,不能在团队中弥合信息差、沟通成本高;堆人、手工的任务偏多;专家经验没有很好的复用等等。

自建这样一套真正能够赋能数字化转型的 IT 底座,绝非一朝一夕之功,需要从上到下、长时间的投入和探索。麦当劳将之概括为三个阶段:在顶层设计阶段拉齐团队认知、实施阶段从无到有、打磨阶段从有到好。

首先就是要解决拉齐团队认知的问题——这个平台到底包含什么,到底囊括了什么,到底它要解决什么问题,这是一个拉齐大家认知的过程,这是第一个阶段。“仅这个工程就花费了两三个月甚至更长的时间探讨出一致的原型。”麦当劳 IT 团队说。

第二个阶段是“从无到有”把这个平台实现出来,将原来零散的、为了解决眼前需求但使用起来存在各种问题的工具,串联统一为一个标准规范的 DevOps 平台;第三个阶段就是“从有到好”的阶段,也就是怎么更好的解决问题、甚至是怎么样在研发同学意识到某个问题存在之前,或者说在他们感知到这个痛点之前,先于他们把这样一个工具或功能实现出来,去解决掉暂时还没有暴露出来的问题。

2、从 DevOps 到工程平台,让工具为业务而服务

“让先进的工具去适应麦当劳,而不是反过来。” 在麦当劳看来,缺少统一高效的工具,是早期在纯甲方的投入下积累的问题,也是麦当劳想要满足更快更稳的交付需求,必须挣脱的枷锁。

历时两年,麦当劳 DevOps 团队经过多番探索,在云原生技术基础上,引进了“平台工程”的理念,自研出一套包含项目管理、应用中心、交付中心、监控中心、质量中心、API 治理中心,运维中心、效能中心等功能的一站式研发自助平台,并将其命名为“Ninja”平台,希望让这套工具成为一个敏捷的、抗压的、团队协作且精准提供支持能力的平台,一把全方位支撑起麦当劳高质量、高效率产出的研发利器。

据麦当劳 IT 团队介绍,DevOps 平台集成了 jira、gitlab、tekton、argo、docker、kubernetes、rancher、harbor 等业内主流的 30+第三方工具,以 CI/CD 流水线和精益看板为基础,串联需求规划-任务协作-代码开发-版本测试-构建-部署-监控的端到端交付流程,是运用敏捷的方法、完成跨团队协作工作及流程自动化的一种客户价值驱动的交付解决方案。

通过这样一个全方位的、一站式的工程平台,让麦当劳取得了高质量的敏捷交付、多维数据监控和分析、准确统计及高效管理的效果。

一个直观例子是,现在麦当劳 IT 团队可以做到一键自助式执行构建和部署,可视化和可编排,一次配置,多次执行,有效减少系统变更从提交到部署至生产环境的时间,快速响应业务变化。

目前,该平台的交付流水线已经可以提供 7*24 小时自动化发布服务,已经接入了 97%的微服务,支持云及 IDC 多集群部署,每日交付数百次。

3、如何打造既快又稳且好的工程平台?

围绕“质、效、稳”建设的一站式 DevOps 平台,就不得不提及敏捷交付、质量保障、系统稳定性支持这三个方面。通过不懈的探索和打磨,麦当劳团队给出了自己的答案。

首先是敏捷交付。通过工具和流程的规范标准化,软件开发团队可以更快地构建、测试和交付新功能,以响应客户需求和市场变化。通过这样一套统一的一站式的 DevOps 平台,团队之间的协同变得更加一致,项目的可见性和可控性也大大提升,同时由于专家经验的标准化、工具化,得以让团队成员减少了重复操作,甚至可以一键自助完成创建。

之前的较长交付窗口的项目交付如今变成了每个敏捷团队每两周就可以一个版本的生产敏捷交付,500 多个微服务,CI/CD 随时 7*24h 进行,部署上线非常灵活。

其次是保证稳定性的方法。要想要系统更稳健的运行,就需要较早地去发现问题、甚至早于问题发生前就预判识别出来并做好预案,同时还要更及时、更快地去找到原因、更快地修复,以及修复之后如何改进和监控。

举例来讲,麦当劳 IT 团队告诉记者:麦当劳会经常会有一些大促活动,投射到技术侧就意味着扩容的频次会很多。以前扩容的时候基本是线上提个并不具体明确的扩容需求,其余过程,比如扩什么服务、怎么扩,都是双方在线下沟通完成的。

这就对整个系统稳定性建设等场景下数据采集时,就会造成管理上的“黑洞”,缺少历史数据的参考。基于这个问题,DevOps 团队提供了一个自助式的自动扩缩容工具,让有经验的 Tech Leader 和运维人员来对该项目进行专业的合理性评审,避免了不必要的浪费,此外还会定期产出统计报表,供不同的团队参考和借鉴。

最后是保证质量的方法。可以说,交付质量是影响业务成败的关键。DevOps 平台通过集成单元测试、自动化功能测试、性能测试、安全扫描等流程,能够有效地减少故障率、提高软件质量和稳定性。

在此过程中,麦当劳也形成了独有的质量评判指标。质量好坏的评价,是需要多个指标、多个维度综合去评判的,麦当劳团队具体的做法也值得借鉴。首先通过相关部门讨论的形式界定好真正需要的指标维度,然后由质量委员会探讨出一个标准,并计算出相应的公式,然后再由这几个值来去得到一个质量打分情况,此外,也会根据线上的运行情况来评判它的稳定性。

DevOps 平台还提出了一个服务成熟度的指标,从服务的架构、安全、流程、编码、测试、运维以及线上的可用性情况等维度来进行考量。这些指标可以有效地帮助工程师做好“自检”,发现并修复系统中潜在的问题。这些指标中,有一些是需要工程师去人工判断难以自动衡量的,而还有一些是可以自动化采集的,自动化的这部分就会形成系统的健康度指标。

此外,对于应用中心,微服务的整个创建流程是完全线上化的,有一套完整的标准、管控和架构上审批流程。它里面必须经过 module 负责人、TL、架构师的审批,从而保证微服务的透明性,避免微服务的滥建而导致的系统膨胀。

而交付卡口也有三类:首先是安全卡口,一旦有高危漏洞,禁止发布;其次是上线时间卡口。DevOps 平台对各个微服务进行等级的划分,比如点餐链路属于 P0 级,一些后台的服务属于 P1 级,一些内部系统属于 P2 级等,P0 级的微服务的发布时间需要避开点餐高峰期;最后是质量卡口,未来 DevOps 平台会对研发过程进行规范检查的卡口,来更进一步地推动标准的落地。

而对于质量中心,可以说功能也非常丰富。首先,麦当劳各个业务条线都配有自己的敏捷团队,质量中心为此定制化各自的敏捷流程的迭代进度面板和质量报告,并且把提测通过率等质量相关的数据都集成在迭代过程中。

4、走向成熟,在实践中完善能力

“我们的目标不是建设一个传统的 DevOps 平台,而是一个能够体现平台工程(Platform Engineering)理念的一站式平台。”

因此,工程平台一定要在项目管理、应用研发、应用交付、质量监控、安全、运维等方方面面都做到足够成熟,才能覆盖和支撑起整个公司业务和各 IT 相关角色的需求。为此,麦当劳 IT 团队精益求精,经过多个版本地打磨和迭代,让工程平台的各模块功能更上一层楼。

具体来讲,应用中心是平台的主战场,也是使用最多的模块。目前它已经支持 Java、Node.js、Python、Golang 等各种主流语言和技术框架编译构建,提供微服务从创建到下线的全流程管理,聚合展示微服务的 catalog 以及 profile,支持流水线可视化的灵活配置。

而交付中心提供上线审批功能,审批依据包括测试环境准入准出条件,测试通过率,上线 checklist 检查通过等情况,提供平滑发布配置,多种发布能力,提升交付环节可靠性。

接着,监控中心设计了一套基于麦中技术场景的监控底层数据模型,通过 API 调用和 MQ 消费等多种采集方式,对接多种监控数据源,比如 APM、Prometheus、Istio&Application Logging、Sentinel、WAF 等等,支持多维度(比如集群、微服务、机器/Pod、API 等)的内置指标(比如系统资源使用率,系统吞吐,各类延时等等)以及灵活的自定义采集指标,支持持久化存储 2000 亿+数据量。

同时,还能将专家经验标准化,工具化,降低 troubleshooting 门槛,提高解决问题效率。通过数据分析和监控工具,实时监测系统性能和异常,及时发现和解决问题,以确保软件系统的可靠性和高效性。

通过 API 治理中心建立 API 标准和规范,集成 CI/CD 流水线对 API 进行设计时治理,集成安全扫描工具,限流熔断组件,日志组件等组件对 API 进行安全检测,流量控制以及日志跟踪。质量中心通过通过集成单元测试、自动化测试、性能测试、安全扫描等流程,有效地减少故障率、提高软件质量和稳定性。通过可视化过程暴露瓶颈并促进改进、通过数据度量反馈形成闭环,为愿景、战略、业务、项目、团队、人员的目标统一奠定基础。

值得一提的是,在这些成熟的模块之上,麦当劳已经开始尝试一些非常前瞻的探索性尝试,以监控中心为例,在实时数据采集和监控方面,麦当劳分享了几个建设性的思考。

比如业务对于监控要求通常有两方面,一个是稳定,一个是要实时。实时性不够的监控是没有意义的。那么,如何提高监控的实时性呢?首先,越接近于数据的生产端,数据的实时性就会越高。其次,从计算及存储层面采用“存算分离,多颗粒度预聚合计算,内存计算与磁盘存储融合”等方式,以及在存储时通过定义对时序及指标友好的特定的数据结构,也可以帮助做到这一点。

5、麦当劳,让 DevOps 成为一种文化

数字化转型离不开先进的技术工具,但更难的是要让 DevOps 在企业内部成为一种文化。“打造一站式的工程平台,初衷就是让开发、运维、测试、业务相关人员,建立培养起敏捷协作的氛围,形成良好的产品研发规范,帮助他们做出更快更好的业务交付。”麦当劳 IT 团队告诉 36 氪。在赋能数字化转型旅程中,DevOps 文化让麦当劳收获的不止是一款款更具数字范儿的产品和应用,更是一家全员拥抱敏捷、打破界限、追求精益、高效协作的新型科技企业。

细观当下,这套凝结着麦当劳集体智慧的平台,俨然已经成为帮助内部开发者提效、赋能业务敏捷交付的 IT 利器;而谈及未来,麦当劳 DevOps 平台还有更多探索蓝图,比如如何从业务的视角更加简单方便地洞察到微服务体系的运行情况,再比如在建设中的混沌平台等,都会进一步成为“质、效、稳”的一体化研发流程体系建设中新的里程碑。

好技术离不开勤加实践,离不开在实践的过程中灵活运用和适应性改造。对于麦当劳而言,将 DevOps 平台工程从工具本身升华为工程师文化,是数字化转型道路上重要的历程,这样的历程使得麦当劳对数字化的理解更为深刻。融入 DNA 里的数字化文化,也让这样一家公司将科技能力变成一种本能,再将这种本能融入到每年超过 10 亿人次的服务里,给顾客带来更多美味与欢乐。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-18,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、穿过阵痛期,麦当劳走向自建数字化平台之路
  • 2、从 DevOps 到工程平台,让工具为业务而服务
  • 3、如何打造既快又稳且好的工程平台?
  • 4、走向成熟,在实践中完善能力
  • 5、麦当劳,让 DevOps 成为一种文化
相关产品与服务
CODING DevOps
CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com