云原生时代,企业如何选取研发模式,并通过云效流水线落地

简介: 云原生是近几年IT圈最火热的词汇之一,几乎每一个云计算产品都会或多或少跟云原生发生关联。那到底什么是云原生?它对企业的项目研发又有什么样的影响跟要求?云原生这个大的时代背景下,企业又应如何落地相应研发模式来提高研发效率,提升企业竞争力呢。容器是云原生变革的根本,其他的东西都是基于这个基础所引申和集成起来的。云原生时代的软件研发要求:快、稳和省。研发模式选择取决于是持续发布的方式还是版本制发布的方式。通过分支模式和工具平台,可以从繁琐的手工工作中解放出来,让我们研发协同的效率更高。

云原生是近几年IT圈最火热的词汇之一,几乎每一个云计算产品都会或多或少跟云原生发生关联。那到底什么是云原生?它对企业的项目研发又有什么样的影响跟要求?云原生这个大的时代背景下,企业又应如何落地相应研发模式来提高研发效率,提升企业竞争力呢。

容器是云原生变革的根本,其他的东西都是基于这个基础所引申和集成起来的。

云原生时代的软件研发要求:快、稳和省。

研发模式选择取决于是持续发布的方式还是版本制发布的方式。

通过分支模式和工具平台,可以从繁琐的手工工作中解放出来,让我们研发协同的效率更高。

云原生变革的根本

image-20210127154910625.png

2019年Pivotal官网给的定义,云原生关注4点,包括:DevOps,持续交付,容器以及微服务,这里我们只把容器凸显出来。因为其他三个并不是云原生所特有的,我们本来就在做这样的一些事,这里唯一的区别就是容器。容器就像集装箱,它成了一个标准,成了这几年云原生研发的一个底座,基于这个底座,再集成持续交付、微服务和DevOps等实践,就组成了我们通常所说的云原生。

云原生时代软件开发的特点

image-20210127154936787.png

随着云计算的发展,越来越多的企业开始上云,企业上云的第一个前提条件就是能够基于云上的这些服务提供更好的业务需求的响应能力,需要更快。其次,因为现在企业很多基础设施也在云上,比如说一些金融类的服务也慢慢上云了,这要求服务要非常的稳,不能出现问题,不管是安全问题,还是稳定性问题。第三,有这两个基本条件之后,企业希望投入的成本能足够的低,成本可能包括两方面,一方面是物理上的,硬件上的设施投入,比如ECS等,另外一个是我的人力成本,不管开发也好,运维也好,在这上面投入的人力成本要尽可能的低,所以总结下来就是三个字,快、稳和省。

接下来,我们看一个企业的实际场景问题,为什么团队变大了,发布却变得更困难了。

这是个很典型的问题,尤其当一个团队,从十几个人快速发展到一百多个人的时候,是非常明显的。原来一周可以发个一两次,但是到了100多人的时候,可能一个月才能发一次,这背后的原因,就是协作变复杂了。有一个研究报告提到,有效的研发时间,在整个项目周期中可能是不到20%的,大量的时间都是在做各种协同的事情,本次分享我们主要去讲怎么去解决这类问题。

协同问题,严重影响研发效率,如何为研发团队设计合适的研发模式

image-20210127154956784.png

我们从大家的发布形态去看怎么去设计合适的研发模式。比如我给银行做项目半年或者三个月给他一个版本,那个版本是明确的,发布什么东西很明确,这个时候认为它是版本制发布的方式,如果是另外一种,比如只是一个在线的服务,这个服务我不关心历史版本,只要最新的服务ok就行了,我们认为它是一个持续发布的方式。

持续发布的研发模式

image-20210127155028046.png

持续发布的特点是分支只合并一次,即从feature分支合并到master,它以一个特性或者需求为单位,开发完、验证完就可以发布,所以这个时候发布的粒度是一个feature。

当代码在feature分支上做提交后,会自动的做一些单元测试和扫描,然后做构建,然后部署到测试环境,在上面做一些自动化测试,之后可能会做一些人工的验证,然后部署到UAT环境,做一些验收和审核。如果审核通过了,就合并到主干,然后部署到生产环境,整个过程非常清晰顺畅。

版本制发布研发模式

image-20210127155044570.png

版本制发布方式特点是分支合并两次。

image-20210127155123391.png

从上图可以看出,这里面有一个feature branch,一个master,一个release branch。master就是主干,主干是长期的分支,存放最新的发布过的、可用的代码;feature branch是特性开发的分支,每做一个特性开发的时候,会拉一个feature branch,在上面进行开发和自测。

要做发布的时候,会拉一个release branch, release branch也是临时的分支,之后,所有符合条件的feature branch就会合并到release branch,在release branch上做集成验证和测试,验证通过了,并且通过验收之后,会合并到主干,然后部署到生产环境,这个就是版本制的方式。这里有两次代码合并的过程,第一次合并是从feature branch合并到release branch,第二次是从release branch合并到master。

云效流水线落地研发模式

image-20210127155141490.png

首先,我们会在云效上建立两条流水线,一条dev流水线,即开发流水线,一条release流水线,即发布流水线。开发流水线的话,它的触发源就是feature分支一次git push,之后自动的去做一些代码扫描、单元测试、构建或者是测试环境部署,也可以到上面去做自动化测试,云效流水线都是支持的。

开发流水线运行通过后,我们可以根据需要,将feature分支合入到release分支,此时就会触发我们的第二条流水线也就是release流水线运行。

release流水线的会在上面同样去做前面的那些动作,但是会额外有一些管理员的卡点,包括一些UI测试,SIT测试等等。验收通过后,会发布到UAT环境,并且做PO验收和运维审核,最后合并master,然后生成一个版本,并且部署到正式的环境中。这就是版本制发布的一个研发模式,它的特点跟刚刚比会多一次分支合并操作。

image-20210127155102936.png

云效流水线研发模式落地实践:https://thoughts.aliyun.com/sharespace/5e8c387c0aa435001a74f7ab/docs/5ec0b04f9e2b9b002352b07a

理念速递是由阿里云云效团队发起的,聚焦于研发项目协作与工程实践落地的访谈类活动。该活动会邀请以何勉、张刚、陈鑫、赵喜鸿为首的阿里云专家团参与其中,就当下开发者关注的热点话题,进行互动、分享。

【本期主持人:】

解浩(哑木),阿里云云效解决方案架构师

【本期嘉宾:】

张裕(子丑),阿里云工程实践专家,曾在诺基亚网络负责测试自动化和CICD工具平台开发,做过测试自动化教练,也在初创企业做过开发、运维负责人和测试架构师,推崇持续、快速、高质量的软件交付方式,目前专注于云原生和DevOps领域。

云效微信底部图.png

-END-

长按识别上图二维码进群,更多干货、优惠活动等你解锁

点击:了解更多云效

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
目录
相关文章
|
8月前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
8月前
|
人工智能 JavaScript Devops
云效 MCP Server:AI 驱动的研发协作新范式
云效MCP Server是阿里云云效平台推出的模型上下文协议(Model Context Protocol)标准化接口系统,作为AI助手与DevOps平台的核心桥梁。通过该协议,AI大模型可无缝集成云效DevOps平台,直接访问和操作包括项目管理、代码仓库、工作项等关键研发资产,实现智能化全生命周期管理。其功能涵盖代码仓库管理、代码评审、项目管理和组织管理等多个方面,支持如创建分支、合并请求、查询工作项等具体操作。用户可通过通义灵码内置的MCP市场安装云效MCP服务,并配置个人访问令牌完成集成。实际场景中,AI助手可自动分析需求、生成代码、创建功能分支并提交合并请求,极大提升研发效率。
|
4月前
|
运维 Kubernetes 测试技术
应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
通过在云效中创建 SAE 服务连接并关联集群,团队可将应用环境直接部署到 SAE,实现从代码提交、镜像构建到 SAE 部署的自动化流水线。该集成打通了研发与运维的壁垒,特别适用于应用数量多、团队规模大、交付节奏快的组织,助力企业实现敏捷、可靠的持续交付。
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
339 13
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
8月前
|
存储 人工智能 Cloud Native
【发布实录】云原生+AI,助力企业全球化业务创新
本文介绍了阿里云在云原生与AI结合领域的最新产品发布和技术创新。首先,通过弹性智能的一体化架构,阿里云为AI场景提供了开箱即用的云原生能力,助力企业出海。其次,详细解析了云原生如何助力AI应用构建,包括Function AI平台、GPU极速模式、MCP Server开发托管及AI网关等核心功能。
|
8月前
|
运维 Devops 测试技术
云效DevOps:加速企业数字化转型的利器
云效DevOps是阿里巴巴推出的企业级一站式平台,覆盖需求管理到应用运维全生命周期。其核心价值包括全流程自动化、高效协同、质量保障与可视化度量。功能涵盖代码管理、持续集成、持续交付及应用运维,支持微服务架构、大规模团队协作等最佳实践。成功案例显示,云效显著提升企业软件交付效率与质量,助力数字化转型,未来将融合AI技术实现更智能的交付体验。
474 11
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
存储 NoSQL Cloud Native
MongoDB云原生化:为企业开发注入高效动力
MongoDB云原生化为企业开发注入高效动力,分为三部分:1. 介绍阿里云和MongoDB的服务;2. 阿里云MongoDB解决自建模型痛点的功能,包括隔离性、海量数据处理、弹性能力及运维操作优化;3. 客户案例展示。通过云原生架构,MongoDB实现了灵活的扩展、高效的备份恢复和快速的回档能力,显著提升了企业的业务迭代速度和数据管理效率。典型客户如吉比特、莉莉丝、掌阅等受益于这些功能,实现了更稳定和高效的数据库服务。