DevOps 制品管理——软件“工业革命”的里程碑式改革
制品管理,其实并不是一个崭新的概念。
早在工业革命时期,制造业就创造性地通过将制品管理标准化,完整串联起从原料仓储、半成品管理、成品运输到配送交付最后一公里的工作流与信息流。标准化管理的生产模式,大幅度提升了工业制造整体的生产质量与交付效能,延续至今日,形成了现代化的科学生产体系与生产追溯系统。
现如今,当企业纷纷谈论起 IT 研运转型,提升数字业务的研发质效,但由于 IT 组织先天的场景独特化、工作非标化以及业务复杂化,导致企业在打造 DevOps 工艺体系时,容易忽略或者没能清晰认知到,要全面实现企业级 IT 研运体系转型,也需要推动软件制品的标准化管理。
今天,作为嘉为科技的 DevOps 首席咨询师,非常高兴能跟大家进行关于“DevOps 之制品管理最佳实践”的课题分享。接下来,就让我们通过三部曲来详细剖析今日的课题,去深挖在软件研发的“工业革命”——DevOps 转型里,制品管理会有哪些难题,怎么通过制品管理打造企业唯一可信源,以及国内大厂腾讯的制品管理最佳实践。
以下内容整理自:嘉为科技 DevOps 首席咨询师 汪珺 于 嘉为蓝鲸 2022 研运一体创新峰会的精彩分享——《DevOps 之制品管理最佳实践》。欢迎感兴趣的读者点击文末链接,查看演讲回放和下载演讲 PPT。
01 软件研发的“工业革命”
提及软件研发的“工业革命”,自 2016 年以来,随着 DevOps 建设在国内的逐步深化,企业都可以放心无碍地去构建 CI、CD 甚至 CO 工艺。
但是随着 DevOps 技术应用的逐渐加深,期间大量的软件制品被源源不断地生产出来。这里面既有不同语言产生的制品类型,诸如 Java 语言的 Maven、JavaScript 语言的 NPM 和 Python 语言的 Pypi 等,也有基于 IT 技术应用产生的制品类型,诸如 Docker、Helm、RPM 和 Nuget 等。
它们诞生自数字业务研发生命周期的每个环节里,它们存在于产品、研发、测试和运维的各个团队中,它们既可以是无数开发共研共享的重要组件,它们也可以成为企业宝贵的私有资产。
在 IT 组织未具规模化或未转型 DevOps 前,各开发测试团队可能会通过分散式地建设 Nexus 和 Harbor 等开源制品管理技术栈,甚至是 SVN 和 FTP 来管理和传输制品。
因为此时的开发业务简单,制品的类型不多,交付给运维的频率也不快,由于制品管理而导致生产事故发生的概率并不高。而且工具开源免费,对企业而言也不会产生额外的购买预算。
因此在业务发展的初始阶段,在很多 IT 管理者看来,制品管理似乎并不存在成本代价和风险管理的概念。
但随着 IT 规模的扩充和业务的扩张,开源制品库的缺陷也随之暴露出来,造成了开发组织内部、开发与运维之间、以及运维总分部在制品使用上的大量摩擦,源源不断地产生了软件开发过程的“车祸现场”。
归结下来,造成软件开发“撞车”的原因,主要是当今国内制品管理存在三大难点:
第一大点在于,技术管理的混乱性
前面已经提及,在软件开发过程中存在着不同类型的制品,而不同的制品类型,需要不同的底层管理技术。
单靠企业内各开发团队去自主建设,既会重复建设造成资源上浪费,又会在研发资产流动上形成各种数据壁垒,这对企业整体而言就是一种慢性消耗。
同时,开源制品库只是单纯的效率工具,对企业管理而言它缺乏必须的管控能力。在实际开发场景里,PMO 或者开发管理者会发现,开源制品库既缺乏项目隔离和成员权限等组织级管理能力,也缺少仓库管理和版本管理等精细化管理能力。
此外,制品库作为连接开发和运维的重要技术中转站,背后是开发维护的技术栈与运维维护的技术栈之间错综复杂的交互关联,而这种错综复杂的关系极其容易导致开发和运维的“各自为政”。一旦进行 DevOps 转型或者组织扩张,随着软件迭代升级速度的加快和研发运维工作交集的加深,拉错包发布等生产风险将呈指数级上升。
第二大点在于,CICD 工作流的紊乱性
如同现代制造业,产品从生产制造一直到交付客户手上,中间要历经非常多的环节,这是一个完整的工作流。
而在现有软件研发的 CICD 工作流上,一旦缺乏成熟的制品管理技术在背后作支撑,就会导致 CI 工作流与 CD 工作流之间,形成业务上的隔断与流动上的紊乱。
万一软件发布出现问题,企业缺乏可溯源的血缘关系图谱,就会无法快速追踪该软件包相关的开发是谁、测试是谁、安全负责人是谁,以及运维是谁。生产链路无法追溯,责任归属难以辨别。
同时,在中大型企业内部,软件版本、制品数量以及发布环境的规模也是日益膨胀,这就要求企业要根据业务发展需求,提前做好版本管理、制品清理和多节点同步分发等制品管理能力,保障好 CICD 工作的高效流动性。
第三大点在于,开源治理和可信合规的新要求
前面有提到,企业级制品管理需要建立起 CICD 工作流的血缘关系图谱,才能在企业内形成有效的研发资产溯源机制。但在实际业务研发的过程中,安全隐患并不是只存在于企业内部的工作流。
危险,往往从开发决定引用外部依赖就存在了。
2021 年年末,几乎所有 Java 应用都会使用的 maven 制品(Log4j2 组件)被曝严重漏洞,此次事件直接导致大量国内服务器遭国外黑客操纵,被列为最高级别漏洞,这是实打实带给国内企业的一次深刻教训。
扪心自问,万一在此次事故中,影响波及到了自身企业的业务安全,我们能否迅速地排除哪些制品和业务存在问题、立马停止所有问题制品使用、准确指挥开发运维解决危机,并在日后建立起开源制品的合规使用机制,转危为安,赢得战役,给老板交付满意的答卷?
02 打造企业唯一可信源
针对前面提及的国内企业制品管理三大难点,我们在此倡议,企业应尽早打造企业唯一可信源,确保数字业务交付的安全合规、过程可控与高效协同。我们也为各位提供一个可供参考的建设方案:
第一步,开源治理
建立企业内唯一可信源,各类依赖制品统一管理,集中进行安全扫描。
精细化项目/权限管理,可对接企业内账号体系。
自研制品统一归档存储,支持企业内资产共享。
集群方式部署,支持横向扩展, 灵活应对高并发上传下载。
第二步,CI 优化
交付物的元数据作为质量关卡,对接审批系统,规范化审核流程。
可自动进行安全扫描,确保制品安全。
对接 CI 工具,实现制品自动晋级。
第三步,CD 优化
元数据信息、质量报告可随制品进行自动同步。
自动同步分发给多个数据中心。
对接 CD 工具,实现持续发布。
在这里,我们也想向各位分享两个嘉为蓝鲸建设的制品管理典型案例,为各位建设企业唯一可信源提供参考:
在案例一中,一所国内知名的大型金融企业出于对业务发展和业务安全的考虑,找到嘉为蓝鲸,提出想要为自身打造企业唯一可信源。
针对该金融客户重点提出的:因研发团队/项目多导致制品管理混乱难题,以及基于业务安全性出发导致研发和投产环境间制品同步难问题。嘉为蓝鲸因地制宜,打造了最适合金融客户的制品管理解决方案:
搭建唯一可信源:
通过企业私服的搭建,让企业内所有开发团队都只能使用经检验合规的组件,规范了企业内 100+研发项目、250+制品仓库、50w+制品数量和 50TB+制品容量的制品使用。
制品摆渡机制:
通过专门为金融客户设置的制品摆渡方案,在保障生产安全性的同时,突破网络隔离和物理障碍,实现制品的自动晋级与快速同步,保障生产上线的时效性与安全性。
在案例二中,国内某大型运营商出于对全国多生产中心的应用发布自动化建设考虑,希望嘉为蓝鲸能同步规范优化全国多节点下的制品统管场景。
针对该运营商客户重点提出的:因外包研发测试团队居多导致外包团队与企业运维总部间制品管理混乱难题,以及基于全国多节点应用发布场景下部署包统一性保障难题。嘉为蓝鲸对症下药,不仅为该客户打造了基于蓝鲸的统一发布自动化平台,保障了 150+应用,16000+的应用发布任务,在此之上还打造了最适合运营商客户的唯一可信源建设方案:
制品自动晋级:
通过结合嘉为蓝鲸 CCI 持续集成服务,实现所有研发团队在研发过程中制品的自动化晋级与规范化管理。利用 CI 流水线自动在制品内写入元数据,便于后期运维总部可根据制品元数据快速溯源制品完整生产链路,保障众多外包研发团队所提供制品的合规性与可控性。
多节点同步机制:
通过专门为多投产环境企业客户所打造的制品同步分发服务,统一了集团内 15+投产环境下,200+制品仓库、1w+制品数量和 13TB+制品容量的制品使用,成功抵御了多外包研发团队以及集团多地生产中心的技术栈紊乱风险,保障了错综复杂关联关系下的制品一致性。
03 腾讯共研的殷实硕果
通过上述的制品管理最佳实践以及两个实际客户案例分享,相信大家对于打造企业唯一可信源已经有了更深刻的认知与更多的了解,那嘉为蓝鲸又是如何通过硬实力满足众多企业制品管理需求的呢?
这是由于嘉为蓝鲸 CPack 制品管理平台,是多年来嘉为蓝鲸与腾讯技术共研,通过国产技术体系所打造的制品库。CPack 不仅目前已经在腾讯内部得到了 100w+制品仓库、3 亿+制品数量和 10PB+制品容量的大规模实践数据,同时也在积极响应国家信创号召,完成了与众多国产技术栈的兼容适配,诸如飞腾和鲲鹏服务器,银河麒麟和统信操作系统,以及海光 CPU 等等。
在制品管理能力上,CPack 不仅支持 Generic、Docker、Maven 等 10+常见制品库类型,而且为企业提供仓库代理、版本管理、制品溯源、安全扫描、同步分发和权限控制等一系列制品管理能力,实现对制品全生命周期的多维度管控。
对于企业开源治理和合规可信需求,CPack 提供一整套适用于企业级制品管理的安全扫描解决方案,实现“制品安全一手掌控”、“开源许可一键获知”和“组件漏洞一个不落”。
针对企业内制品库与 CICD 工作流的集成难题,CPack 既支持独立部署,与企业原有的 Jenkins 和 Ansible 等 CICD 技术栈实现良好融合,也通过深度集成 CCI 持续集成平台和 ADA 应用发布中心等嘉为蓝鲸 CICD 技术栈,支持企业对包括 CICD 工艺在内的一体化技术升级,降低企业工艺集成难度的同时,为企业业务发展打造更强大的技术支撑体系。
未来,嘉为蓝鲸 CPack 制品管理平台将持续深耕和不断改进,力求更好地服务于国内企业唯一可信源的建设需求,为国内企业研发运维业务数字化转型提供强大的制品管理技术保障。
如果您的企业对制品库、建设企业唯一可信源感兴趣,欢迎联系我们,我们将为您提供专业的产品试用和产品演示等服务。
查看回放及下载 PPT 请关注公众号:嘉为蓝鲸
评论