加速应用上云的最后一公里

简介: 让应用交付过程可看见、规范可落实、经验可传承

木烟-文中配图.jpg

一次曲折的发布

我们说代码编写完成只是一个业务需求的开始,如何将一个需求快速发布上线、投入生产才是我们的最终目的。我们先从一个案例开始。

从前,有个开发同学叫小周,他的一次发布是这样的:

木烟-配图.001.jpeg

首先他要在代码平台手动创建代码分支提交代码,然后要编译构建,有可能是本地构建,也有可能是使用某个构建工具,构建好之后部署测试环境,需要先申请测试机器,然后去机器上执行某个脚本才能启动服务。

环境准备好之后才可以交给测试进行一轮、二轮测试验收,这一过程要重复很多次,每一次都要走好几步。验收通过后,发布上线还需要申请发布单,让运维同学帮忙去做发布。

这一整个研发过程花费很长时间,需要和很多个角色相互协作,而且需要在很多个平台之间来回跳转,比如代码平台、构建平台、资源平台、运维平台。

期间存在资源分散、流程混乱、结果不可预期等等问题,整个过程难以追踪,难以管理。通常一次发布需要持续一天,糟糕的时候一周甚至两周只能发布一次,严重影响研发效率。小周不禁感慨,发布难,难于上青天!

问题这么多,怎么办?

云效提供一站式应用交付平台,帮你加速应用研发流程,加速应用上云。

使用云效后,小周同学的一次发布是这样的:

1、收到业务需求,直接进入目标应用,创建应用变更自动拉取代码分支;

木烟-配图.002.jpeg

2、代码提交后自动触发流水线部署开发测试环境;

木烟-配图.003.jpeg

3、部署成功后自动通知测试同学进行测试验收;

木烟-配图.004.jpeg

4、验收完毕,小周同学可以一键点击发布生产,不需要填写申请单,也不需要找运维。

木烟-配图.005.jpeg

使用云效只需简单几步即可完成一次应用发布上线,整个流程更加简单、更加透明、更加顺滑。

那云效是怎么做到的呢

1、以应用为中心

木烟-配图.006.jpeg

首先云效以应用为中心来组织应用资产。通过应用来聚合应用的源代码、CI/CD流程、构建好的包,如maven包、npm包、docker镜像等等;以应用来聚合基础设施资源,包括线上线下环境的,比如企业自建的机房、在某个云厂商的采购的云主机或者k8s集群。让所有资源都以同一个维度、聚合在同一个平台集中管理。
此外,应用还为开发、测试、运维等多角色提供统一协作切面,所有同学都可以在一个应用视图完成主要工作事宜。
所有资源所有角色都使用同一个平台,减少各角色在多个平台来回跳转,减少流程割裂,打破了各角色职能壁垒。通过这种方式为企业提供一站式应用交付平台。

2、应⽤架构统⼀编排、终态定义

小周刚入职时,他负责一个应用的某一个模块,有一天服务启动失败了。他的师兄告诉他,你要先改一下这个配置,然后再修改那个参数,再执行脚本部署才行。

一个应用有好几套环境就有好几份配置和脚本,而且好几个人负责同一个应用,经常配置打架,来回改那么几次就完全乱了。每一次的部署结果都不一样,都不可预期,拉起服务就真的只能靠”人品”了。

云效以终态编排的方式统一应用的部署架构,改变了原来过程式、步骤式的部署方式,以声明式的方式来定义应用服务,同时支持k8s和主机部署,能够很好的支持应用云原生化转型过程的架构迁移。

木烟-配图.007.jpeg

针对多环境差异,云效支持编排占位符,支持将多个环境差异化的配置抽取成变量,实现一套编排多环境差异化部署能力,消除部署过程中的不一致风险,减少环境配置维护成本。

此外云效的应用编排还可以用白屏化、可视化的方式进行,配合应用编排模板,帮助用户快速上手,让小白用户也可以轻松编排并发布自己的应用,降低使用门槛。

3、测试环境一键创建、一键销毁

服务启动了,是一个好的开始。但我们在日常研发过程中经常会听到这样的声音:谁又动了我的环境?

有经验表明:测试和联调任务才是开发日常工作的主要部分,通常占据开发者⼯作时间的50%以上。

那么一个稳定、好用的测试环境就非常重要了,它能够极⼤提⾼开发者的⼯作效率和幸福感。

云效提供测试环境管理功能,帮助开发者高效自运维:

加速应用上云最后一公里-V4.0(1).001.jpeg

支持测试环境一键创建、一键销毁,无需人肉申请资源,测试资源按需使用,避免浪费;
联调过程中支持测试环境一键占用,锁定环境,我的环境我做主,保障测试环境稳定性,让独占稳定的测试环境成为可能。

4、多种部署策略、部署过程可观测可干预

测试完成后就到最后一步发布了,对于生产发布,云效支持滚动升级、分批发布、蓝绿发布等多种部署方式。

加速应用上云最后一公里-V4.0(1).002.jpeg

通常我们发布上线,会先发一个小的批次,进行灰度验证,验证没问题再逐步放大后续批次。云效支持精细化的分批策略设置,支持手动指定批次数量,精确定义分批过程。

此外整个部署过程可以实时查看部署进度,可以查看机器的执行日志。对于k8s部署,我们还支持查看pod关键事件、容器启动日志等,帮助快速发现问题、定位问题。遇到问题时可以一键暂停、一键回滚,保障发布过程的安全性,让开发自运维更可靠。

5、研发流程可视化、可管控

终于我们的发布流程走完了,小周入职半年后,这一套流程也已经非常熟悉了,这就是我们说的熟能生巧。
但个人效率高并不代表整个企业效率高。个人经验能发挥的作用范围,会随着个人的升迁、调动、离职而消失。只有将个人经验流程化,才能沉淀为组织资产,帮助企业提效。

云效支持自定义企业研发流程,将企业研发习惯、研发方式通过配置固化在平台上,这样小周就可以把自己的经验落实到平台上。

木烟-配图.010.jpeg

当公司有新人入职时,新人可以一眼看到研发流程,再也去问他的师兄了,也不需要去接手“祖传”的机器、“祖传”的脚本了。研发过程可以快速上手、快速执行,提升了整个企业研发运维活动的规范性、确定性。

此外我们日常研发过程经常还会遇到这样的问题,一段没有经过测试验证的代码发布到生产环境了,导致了线上故障。这是一种非常低级又常见的错误,那么有没有办法避免呢?

云效支持自定义变更规则,限制只有通过日常测试验收、通过集成测试验收的代码才能进入生产发布阶段,帮助企业守护研发质量。

木烟-配图.011.jpeg

此外云效还支持人工卡点、以及精细化的角色权限管控,让研发流程更安全、更可靠。

6、打通业务需求到发布的端到端流程

回顾我们整个过程,好像都没有提及到另外一个角色:产品。但其实产品同学无处不在,他每天都会来催你的需求,催你的进度。为什么要催呢?因为他不知道,所以要问。那能否有一个地方让产品同学实时看到进度呢?
云效将一次业务需求对应代码变化、配置改变或其他要素改变定义为一次变更,通过变更连接业务需求到发布,串联整个开发、测试、生产整个过程。

木烟-配图.012.jpeg

通过自动化规则实现一旦应用发布上线、应用变更完成、需求状态可以做到自动同步,让业务需求状态和研发进度一目了然。产品再也不用每天来催了。

木烟-配图.013.jpeg

总结

云效AppStack可以助力企业:将分散的资源转变为聚合的应用资产,将过程式操作转变为 终态声明式应用架构定义,将运维做发布 转变为开发高效自运维,将个人经验转变为平台固化的流程和标准,实现业务需求的全生命周期跟踪,让应用上云最后一公里更快、更顺滑!

木烟-配图.014.jpeg

有开发同学反馈说,使用云效后,可以一边喝着咖啡、一边听着交响乐,一边做发布,发布再也不用排队啦;运维同学说,使用云效后,所有资源都能在一个平台管理,再也不用好几个平台来回跳了,真正是解放了双手,解放了生产力;产品说,使用云效后,需求进度一目了然,再也不用每天去催进度啦。

木烟-配图.015.jpeg

云效让应用交付可看见、可落实、可传承,让一切井井有条。

木烟-配图.016.jpeg

以上就是我的全部分享内容。如果你希望体验云效AppStack的能力,欢迎前往:devops.aliyun.com 进行体验。以上部分能力仍在内测中,我们将在后续陆续上线。

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
目录
相关文章
|
关系型数据库 MySQL API
|
7月前
|
弹性计算 人工智能 运维
阿里云国际站HuaSaint:高额返点助力企业低成本全球化布
在全球数字化浪潮中,企业亟需低成本实现业务全球化。阿里云国际站依托全球25个地域、80多个可用区的布局,提供超200种云产品,涵盖计算、数据库、AI等服务。通过官方授权代理商HuaSaint,企业可享受15%-30%成本节省、专属折扣及返点优惠,同时获得云架构设计、迁移部署等增值服务。HuaSaint作为“云管家”,提供从需求分析到运维管理的全程支持,助力企业高效完成全球化部署,专注核心业务发展,在竞争中抢占先机。
227 6
|
11月前
|
人工智能 JavaScript 测试技术
如何在云效中使用DeepSeek等大模型实现AI智能评审
本文介绍了一种基于云效平台和DeepSeek的AI智能代码评审解决方案。通过云效代码管理Codeup、流水线Flow和DeepSeek大模型,企业可快速实现自动化代码评审。具体步骤包括:创建云效组织并获取API令牌、配置百炼APIKey、开发自定义Flow步骤调用大模型、创建示例代码库和流水线,并通过合并请求触发智能评审。最终,评审结果将自动回写到Codeup中,帮助开发者提升代码质量。
1943 11
如何在云效中使用DeepSeek等大模型实现AI智能评审
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
安全 Devops 测试技术
深入了解阿里云云效DevOps:构建高效软件开发实践
阿里云云效DevOps,集成CI/CD与自动化测试,提升开发效率。支持持续集成确保代码质量,自动化测试加速交付,多环境及灰度发布保障安全可靠性。助团队构建高效开发实践,增强竞争力。
581 1
|
小程序 数据库
一分钟教你学会小程序云开发的数据库的增删改查
本文简要介绍了小程序云开发中数据库的增删改查操作。首先展示了查询代码,通过`wx.cloud.database().collection().get()`获取数据;接着演示添加数据,强调数据字段需与数据库匹配;然后说明删除数据需基于_id,通过`doc(id).remove()`执行;最后,更新数据同样依赖_id,使用`doc(id).update()`进行修改。
535 1
|
前端开发 Java 数据库连接
开源一个基于SpringBoot的咖啡商城系统
开源一个基于SpringBoot的咖啡商城系统
434 0
开源一个基于SpringBoot的咖啡商城系统
|
新零售 架构师 Devops
如何衡量研发效能?阿里资深技术专家提出了5组指标
3月16日-17日,何勉老师将和阿里研发效能其他讲师一起在上海为我们分享《企业数字化转型面临的研发效能挑战—阿里DevOps体系和实践》课程,有关于阿里DevOps体系知识都可以从他们那里得到答案。
18042 16
|
设计模式 搜索推荐 测试技术
电影推荐系统的设计与实现(论文+系统)_kaic
电影推荐系统的设计与实现(论文+系统)_kaic
|
供应链 流计算
飞鹤基于阿里云实时计算Flink构建数字化运营管理体系
飞鹤借助实时计算Flink等产品,构建数字化运营管理体系,建立实时预警机制,提前窥探风险,为供应链等业务决策提效。
1013 0