企业构建平台工程的路径与方案

简介: 探讨企业如何构建自己的平台工程。

今年以来平台工程成为研发效能领域的热词,有文章讲DevOps已死,平台工程才是未来,也有文章讲平台工程是DevOps的下一阶段。那么什么是平台工程,怎么在企业内落地平台工程,云效负责人陈鑫在2023云栖大会上,结合云效过去在阿里内部十多年的经验和在各大企业的实践,给出了非常详细的解答。

神秀.jpg

1. 企业平台工程的构建路径

开发者面临的挑战核心是庞杂的技术与工具带来的认知复杂度,降低认知复杂度是打破DevOps落地瓶颈、提升软件交付效率的首要目标。

因此企业平台工程建设的核心,就是建立开发者友好的抽象层。这个抽象层次是开发者容易理解的概念与对象,并且是一以贯之的,不与下层技术栈强耦合,比如应用、环境、研发流程等等。这些不管是在虚拟机时代还是在云原生时代并没有颠覆性变化。因此基于抽象层次建立的平台可以有效屏蔽下层各种工具平台的概念复杂性。

其次良好的抽象应该具备广泛的适配性,不管是传统稳态复杂系统研发,还是微服务持续交付,不管是传统虚拟机技术,还是云原生技术,不管是私有IDC,还是多云服务商,都可以进行良好的集成。更进一步需要做到关注点分离,运维团队定义下层所需的工具、技术栈和基础设施,而开发者完全不需要理解其中的细节。

神秀文章配图2.001.jpeg

建立上图所示的平台工具体系,是平台工程落地的第一步,也是最重要的一步。

神秀文章配图2.002.jpeg

其次还需要第二步,产品化思维。什么是产品化思维?它是一种通过用户思维、数据思维,不断发现、分析问题,并且用标准化方法将解决方案产品化的思维模式。其核心是重视用户体验,重视本质思考,重视产品设计。很多企业在建立平台工程时会忽略这一点,糟糕的产品设计与体验,会让开发者苦不堪言,甚至在复杂场景下出现效率的倒退。

当我们用产品化思维构建平台后,自然会考虑产品的模块化,可组装、可配置能力,这种产品化能力可以让平台适配企业各团队不同的场景与习惯。比如A团队喜欢主干研发模式,B团队习惯于分支研发,A团队负责私有化输出软件希望月度版本制模式,而B团队维护在线SaaS服务希望持续交付模式。平台都可以允许用户自由配置。

第三步是解决团队的共同挑战。在企业统一管控原则下,为开发者提供最大的自由度,推动各团队在一个平台下工作,可以有效消除团队间的协同壁垒,让团队人员流动,技术交流,系统集成的复杂度大大降低。

总结下来我建议企业以下面四个步骤去构建平台工程。

神秀文章配图2.003.jpeg

第一步:定义适合企业特点的统一概念模型,屏蔽下层复杂概念,让开发者聚焦软件交付过程。

第二步:以产品化思维去定义产品蓝图,规划产品模块,遵守可组合、可配置、集中化原则,打造统一平台。

第三步:在统一概念模型和产品蓝图定义的基础上去整合下层工具能力,打造面向开发者的统一入口。

第四步:持续不断的收集开发者反馈,重视用户体验,不断地改进平台设计,提高效率、可靠性和安全性。

上面这四步讲起来比较简单,但是落地过程却充满着困难和阻塞。

神秀文章配图2.004.jpeg

首先最大的挑战是文化问题,不管是敏捷文化、DevOps文化,还是平台工程,基础都是透明、共识、共享、合作。失去了这个前提,就算引入一个现成的优秀平台,也无法改变软件研发效率的现状。当然最近几年,我们欣喜地看到,中国的大部分企业,不管是中小互联网,还是大型国央企,都在积极拥抱这种变化,新一代的企业领导多数将文化变革放在首位。

其次是组织问题,需要逐步建立以产品为导向的组织和对平台工程团队的持续投入,这与我们前面讲的产品化思维是紧密相关的。

后面两个问题的本质是成本问题,企业需要深刻认识到建立优秀平台所需专业人员的投入,以及持续性,不能是一锤子买卖,随着技术的不断迭代,平台不改进就很容易成为开发者效率的最大阻塞。

2. 云效助力企业构建平台工程

云效产品建立的初衷就是希望帮助广大企业快速的建立平台工程能力,并且依靠自身在阿里多年的实践经验和阿里云技术能力,让平台既高效率、低成本、又能够具备长期可持续性。

神秀文章配图2.005.jpeg

上图展示的是云效统一的概念模型。去年云效将过去10多年阿里巴巴工程效能方法和实践编制为《必致(BizDevOps)白皮书》,其中完整、准确的定义了平台工程领域具备普适性的标准概念模型。在这个模型上我针对各种企业的软件研发流程现状及个性化实践进行了推演,基本上都可以比较容易的映射上来。

其中最核心的是围绕应用,定义了一系列的数据对象,比如环境、代码、配置、编排等,以及两个重要的时标对象,变更与发布。时标对象是四色建模中的一个概念,可以通俗地理解为业务的核心单据。通过这些单据可以追溯整个业务流程。变更与发布是研发流程中重要的业务单据,代表着一次软件变更内容,并记录着整个变更过程。

拥有统一概念模型后,云效将在阿里多年积累、以及各企业落地DevOps过程中的实践经验,汇总成了以下七大方案,分别是敏态、稳态软件研发流程自动化方案、架构管理方案、资源管理方案、研发运维一体化方案、企业工具集成方案、全链路智能化方案、全链路效能洞察方案等,并基于这些方案构建了完整的平台产品能力。

神秀文章配图2.006.jpeg

2.1 研发流程自动化——敏稳双态流程

首先是敏稳双态流程自动化方案,其核心需要解决的是企业中核心系统版本制发布流程与单微服务持续交付流程的统一问题。

神秀文章配图2.007.jpeg

在单应用敏态持续交付模式下,通过变更承载软件变化的内容,通常是一个代码分支,并经过一个分阶段的研发流程完成各环境的部署验证工作,最终发布线上。

在系统稳态版本制模式下,用户可以设置多个应用,也就是多个微服务组合成一个系统。使用发布承载版本内容,例如各应用的代码变更、系统编排变化、环境变量变化等等,经过系统各阶段研发流程完成软件上线工作。在这个过程中各应用可以确保在环境上以版本维度同上同下,简化环境上软件管理复杂度。最终在软件上线后生成系统版本,建立软件基线,方便后续软件变更使用。

这种灵活可组合的模式,比较好地解决了复杂软件的交付流程标准化和统一化的问题,为企业建立统一平台打下基础。

2.2 研发流程自动化——多级可扩展

另外为了适配企业软件交付流程的个性化问题,云效也提供研发流程的多级可扩展策略。

神秀文章配图2.008.jpeg

在第一层可定义企业中标准的几类应用研发流程,例如标准发布流程、紧急发布流程、二方库发布流程等,这些流程重点承载软件交付阶段定义、各阶段分支、制品晋升规则、阶段准入规则等等。

第二层针对每一个阶段的流水线进行定义。通过触发源、组件、条件、变量等多种元素组合,自由进行流程编排,制定个性化研发流水线。

第三层是组件扩展,通过基于容器化的组件扩展机制,简单几步就可以完成企业内任意工具接入,实现any language、any platform的目标。当然云效原生已经提供了对阿里云PaaS、IaaS产品的全面适配,以及主流语言及开源软件的适配,可以做到开箱即用。

通过这三层扩展机制,较好的实现了平台工程所要求的可复用、可组合、可配置原则。

2.3 架构管理规范化

接下来介绍架构管理规范化方案。架构统一是研发管理者、架构师普遍关注的问题。统一架构可以有效的实现对团队内研发规范的收敛以及持续迭代,避免各自为政,各种不规范导致的系统风险。

神秀文章配图2.009.jpeg

云效基于应用模板策略,实现了对应用涉及到的资产和流程的全面管控。通常应用模板包含编排模板、研发流程模板、变量组、环境配置、功能服务配置等。支持初始化模式和继承模式,在继承模式下允许使用可编程语言配合可修改变量来改变部署编排与流程编排,当模板修改时也可以批量更新,确保所有应用统一升级。

2.4 环境与资源管理集约化

环境与资源管理方案需要解决的是测试环境管理相关问题。云效引入临时+主干环境策略,用户可针对不同的发布版本创建临时环境,与主干环境进行组合,完成软件测试。多个发布版本可并行开发,既节约了环境资源,又避免了多套固定环境带来的协调与冲突问题。

神秀文章配图2.010.jpeg

环境的全生命周期管理通过自动化流程来实现,无需主动干预,确保测试资源利用率最大化。

2.5 研发运维一体化

研发运维一体化方案目标是实现开发者90%的日常运维操作都由平台承载,无需理解和切换底层复杂PaaS、IaaS平台,从而提升开发者体验。

神秀文章配图2.011.jpeg

云效支持从应用自动化部署、应用环境监控、应用日志查看,再到环境集群整体监控四大维度的常见运维变更操作。目前已实现与ACK、ARMS、SLS等系统的集成,方便用户开箱即用。当然也支持按照企业自身基础设施情况进行自定义扩展。

2.6 企业内部工具集成方案

回顾前面章节讲的平台工程构建路径中的第三点,整合企业工具链。云效可以通过标准API、WebHook、自动化规则、流水线插件、应用市场等扩展能力,实现对企业自有工具链的全面集成。

神秀文章配图2.012.jpeg

这种集成方式是标准化的,有清晰边界,无侵入性,并且互相解耦的。有利于平台的长期发展演进。在实际落地过程中,云效会在统一登陆、立项、应用主数据、企业OA、安全扫描工具、测管平台、PaaS运维平台等方面做集成,实现开发者统一平台,统一体验的目标。

2.7 DevOps全链路智能化

最后介绍下AI时代必须要完成的DevOps全链路智能化。

神秀文章配图2.013.jpeg

云效将围绕通义大模型,全面优化DevOps工具链路。例如需求编写阶段、编码开发阶段、集成测试阶段、发布部署与运维阶段,以及效能管理阶段。

相信在未来,随着AI技术的全面发展,平台工程将迎来飞速发展期,软件研发模式和效率也会迎来颠覆性的变革。


云效,产研数字化同行者

云效是阿里云企业级一站式研发协同平台,源于阿里巴巴多年先进的管理理念和工程实践,提供从“需求->开发->测试->发布->运维”端到端的协同服务和研发工具,支持公共云、专有云、混合云多种部署形态。连续2次获IDC产品能力第一评估,获信通院BizDevOps、DevOps平台双重认证,服务金融、制造、电商、零售、汽车、物流、互联网等行业数十万客户,上百万开发者。通过BizDevOps、持续交付等不同解决方案,助力企业实现研发敏捷和组织敏捷。

云效案例-新.png

目录
相关文章
|
运维 Cloud Native 安全
阿里平台工程的发展历程与关键实践
什么是平台工程,怎么在企业内落地平台工程,云效负责人陈鑫在2023云栖大会上,结合云效过去在阿里内部十多年的经验和在各大企业的实践,给出了非常详细的解答。
4360 3
|
关系型数据库 MySQL 数据库
n8n自动化工具部署与使用
n8n是一款开源的工作流自动化工具,类似于IFTTT。它的优点是开源、可以自托管、下载安装方便、易于使用,可以互联上百种服务。n8n基于节点能够将任何工具连接在一起,轻松部署不同类型的任务。它可以做很多事情,比如:从数据库中获取数据后下载为excel然后通过邮件发送给其他人。
11213 1
|
中间件 API 开发者
组装式架构重构未来平台研发模式
企业数字化转型如火如荼的进行中,快速响应市场需求变化,低成本进行数字化改造时每个企业追求的目标。而组装式架构可以完美解决B段客户对于软件平台的高质量要求。
组装式架构重构未来平台研发模式
|
10月前
|
运维 Devops 测试技术
云效DevOps:加速企业数字化转型的利器
云效DevOps是阿里巴巴推出的企业级一站式平台,覆盖需求管理到应用运维全生命周期。其核心价值包括全流程自动化、高效协同、质量保障与可视化度量。功能涵盖代码管理、持续集成、持续交付及应用运维,支持微服务架构、大规模团队协作等最佳实践。成功案例显示,云效显著提升企业软件交付效率与质量,助力数字化转型,未来将融合AI技术实现更智能的交付体验。
536 11
|
12月前
|
SQL 人工智能 搜索推荐
通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉
通义灵码又上新外挂啦,Project Rules来了。当模型生成代码不精准,试下通义灵码 Rules,对抗模型幻觉,硬控 AI 根据你的代码风格和偏好生成代码和回复。
1983 7
|
人工智能 前端开发 JavaScript
详解智能编码在前端研发的创新应用
接下来,人与智能体的交互将变得更为紧密,比如 N 年以后是否可以逐渐过渡。这个逐渐过渡的过程实际上是温和的,从依赖人类到依赖超大规模算力的转变,可能会取代我们的一些职责。这不仅仅是简单的叠加关系。对于AI和超大规模算力,这是否意味着我们可以大幅度提升软件质量,是否可以缩短研发周期并提高效率,还有创造出更优质的软件并持续发展,这无疑是肯定的。
837 25
|
人工智能 运维 Devops
基于云效落地平台工程企业级最佳实践
本文介绍了平台工程作为DevOps演进的必然方向,探讨了其建设过程中面临的挑战及解决方案。文中首先分析了平台工程与DevOps的关系,强调了其在提升价值交付和降低团队心智负担方面的作用。接着,通过云效作为基础设施,详细阐述了其如何帮助企业构建高效的研发平台,并分享了两个实际案例:一个是200人规模的互联网企业,另一个是2000人规模的金融行业企业。最后,展望了平台工程的未来发展方向,包括组件化开发、AI技术的应用以及智能化场景的融入。碧桂园生活服务集团也分享了其在平台工程领域的实践经验和未来思考,强调了标准化、自动化、可靠性和智能化四大原则的重要性。
389 10
|
存储 监控 安全
5款 Syslog集中系统日志常用工具对比推荐
集中管理Syslog有助于持续监控网络中的恶意活动,确保日志的搜索和分析更为便捷。常用工具包括Rsyslog、Syslog-ng、Logstash和Fluentd,它们各有优劣。Rsyslog通过多种协议确保日志传输的安全性;Syslog-ng支持高效收集和转发日志;Logstash能解析多源日志并索引;Fluentd将日志转换为JSON格式。卓豪EventLog Analyzer则提供一体化的日志管理,支持日志分析、报表生成、用户行为分析及实时告警,是全面的日志管理解决方案。
370 0
|
运维 安全 Cloud Native
解读平台工程,DevOps真的死了吗?不,它只是换了个马甲而已,依然是DevOps的延续
最近平台工程这个概念越来越火爆,Gartner 的预测,到 2026 年,80% 的软件工程组织将拥有平台工程团队,来提供内部服务、组件和应用程序交付工具,作为可重复使用的资源。本篇文章将带你走进平台工程,了解它的起源和解决的问题。
571 0
|
运维 Kubernetes Devops
平台工程:它是什么?谁来做?怎么做?
大家可能听说过平台工程,这是一个新术语,它为开发和 DevOps 领域中本已拥挤的角色集合增添了新内容。 在这篇文章中,我们将介绍平台工程、它与 DevOps 的区别以及为什么你可能考虑采用平台工程以及谁需要拥有平台工程的能力。