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

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

木烟-文中配图.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
|
API Apache 数据库
Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
Flink CDC 于 2023 年 12 月 7 日重磅推出了其全新的 3.0 版本 ~
110415 8
 Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
|
Prometheus 监控 安全
SpringBoot Actuator未授权访问漏洞的解决方法
SpringBoot Actuator未授权访问漏洞的解决方法Actuator 是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
32329 0
|
9月前
|
弹性计算 人工智能 运维
阿里云国际站HuaSaint:高额返点助力企业低成本全球化布
在全球数字化浪潮中,企业亟需低成本实现业务全球化。阿里云国际站依托全球25个地域、80多个可用区的布局,提供超200种云产品,涵盖计算、数据库、AI等服务。通过官方授权代理商HuaSaint,企业可享受15%-30%成本节省、专属折扣及返点优惠,同时获得云架构设计、迁移部署等增值服务。HuaSaint作为“云管家”,提供从需求分析到运维管理的全程支持,助力企业高效完成全球化部署,专注核心业务发展,在竞争中抢占先机。
302 6
|
人工智能 JavaScript 测试技术
如何在云效中使用DeepSeek等大模型实现AI智能评审
本文介绍了一种基于云效平台和DeepSeek的AI智能代码评审解决方案。通过云效代码管理Codeup、流水线Flow和DeepSeek大模型,企业可快速实现自动化代码评审。具体步骤包括:创建云效组织并获取API令牌、配置百炼APIKey、开发自定义Flow步骤调用大模型、创建示例代码库和流水线,并通过合并请求触发智能评审。最终,评审结果将自动回写到Codeup中,帮助开发者提升代码质量。
2242 11
如何在云效中使用DeepSeek等大模型实现AI智能评审
|
人工智能 JavaScript Java
从零开始教你打造一个MCP客户端
Anthropic开源了一套MCP协议,它为连接AI系统与数据源提供了一个通用的、开放的标准,用单一协议取代了碎片化的集成方式。本文教你从零打造一个MCP客户端。
7186 5
|
人工智能 安全 机器人
重磅发布的「AI视频通话」如何10分钟就实现?
2024年,OpenAI发布GPT-4o,支持文本、音频和图像的组合输入与输出,使交互更接近自然交流。传统语音助手需经历多阶段处理,容易出现延迟或误解,体验感差。本文介绍如何在阿里云上快速创建可视频通话的AI智能体,实现拟人化交互、精准感知、情绪捕捉等功能,提供高质量、低延时的音视频通话体验。通过简单的部署流程,用户可以轻松创建并体验这一先进的人机交互技术。点击“阅读原文”参与活动赢取惊喜礼物。
|
SQL 存储 API
Flink Materialized Table:构建流批一体 ETL
本文整理自阿里云智能集团 Apache Flink Committer 刘大龙老师在2024FFA流批一体论坛的分享,涵盖三部分内容:数据工程师用户故事、Materialized Table 构建流批一体 ETL 及 Demo。文章通过案例分析传统 Lambda 架构的挑战,介绍了 Materialized Table 如何简化流批处理,提供统一 API 和声明式 ETL,实现高效的数据处理和维护。最后展示了基于 Flink 和 Paimon 的实际演示,帮助用户更好地理解和应用这一技术。
961 7
Flink Materialized Table:构建流批一体 ETL
|
文字识别 数据处理 语音技术
这是我设想的智慧审讯室的系统解决方案
该系统融合了案件云、脑机接口云、情绪感知云及互联网,涵盖审讯室终端。通过人脸识别验证人员信息后启动设备,利用语音转文字、情绪和脑机接口记录数据,并与其他执法网交换信息。智能云平台根据需求提供服务,如证据展示、健康监测等。系统通过OCR识别、数据搜集与分析,支持警方审讯并推送相关信息到显示器,实现智慧化审讯。
|
新零售 架构师 Devops
如何衡量研发效能?阿里资深技术专家提出了5组指标
3月16日-17日,何勉老师将和阿里研发效能其他讲师一起在上海为我们分享《企业数字化转型面临的研发效能挑战—阿里DevOps体系和实践》课程,有关于阿里DevOps体系知识都可以从他们那里得到答案。
18625 116