云原生持续交付的4大原则-下(二)|学习笔记

简介: 快速学习云原生持续交付的4大原则-下(二)

开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计云原生持续交付的4大原则-下(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/82/detail/1279


云原生持续交付的4大原则-下(二)

2、低成本、高效地部署发布

image.png

怎么样可以低成本高效的,先说怎么样不行,也就是它的反模式是什么?

对于哪些常见的一些问题,其实很多人可能都见到过这样一些问题,最常见的就是说延迟集成,这个很常见,就是可能一个月集上一次或一个月批量提交一把。

第二种就是累积负债,就是这个主干,上面一直不稳定,有很多的问题,永远测不通过,那这个就是累计负债。第三个就是无测试自动化,就是整个的测试完全靠手工来保证,或者说有测试自动化,但是它不稳定,没法依赖。

这个时候就完全靠人去判断,说这个测试是否可以。第四个是返工,就是经常因为一些质量的问题或者缺陷或者什么导致这个发布活动经常要反复,其实记得之前学校问过大家发布成功率怎么样,很多人发布重率很高。但是事实情况下其实都知道的发布是这一次,其实有好多次返工,用那个 bug 来一把再来一把。

所以这个中间就是一个很多很多的返工,然后这个中间带来了大量的一个时间浪费。还有一个就是一个耗时的活动,很多时候需要人工去查代码,去做每一阶段的审批,去看每一阶段的质量情况,这些都是会耗费大量的时间,从而导致整个发布比较低效的。而且耗时的活动里其实是很常见的一种,当软件完成了某一项工作之后,进入了一个状态,要进入到下一个状态的时候,是靠人工的方式来去判断,再转移状态迁移的,那么这个时候耗时就很长了。

因为你反馈等待的时间会过长,所以它导致在整个发布的时候,整个项目的状态难做的很高效,所以常见就是有的时候开玩笑说,反馈基本上靠吼,测试基本上靠手,或者说其他的一些做很久。一种不对,就很难做到回归和保证整个发布的一致性里面很难做到这一点。

 image.png

如上图两个应用的发布统计,上面是 a 应用,下面是 b 应用,每一个点表示一次发布。纵轴是它这次发布所耗的时间,可以看到用 LOGO 二的那个坐标,上面的很大,像最上面有三天了,面十几个小时大概几分钟这样子。在y轴上它表示的是在哪一天发布的,纵轴表示时长,横轴表示时间点,每一个点表示一次发布,绿色的点表示发布成功,红色的点表示失败,这是真实的两个应用。

将两个应用对比一下,两个应用都不太好。看第一个应用的情况是什么呢?它发布的频率非常的低,它一个月就发那么几次,一两次。但是它成功率还好,就是发布的成功率还比较高。第二个就是它的发布频率是比较高的,可能几天就有一次发布,但是它的失败率实在是非常的高,它失败的次数远远大于它成功的次数。所以其实两个各有它的问题,这两个应用,整个发布时间都比较长。经常是要超过一个白天,需要24小时往上的,其实可以知道,如果发布超过了8小时,意味着在一天中搞不定了,就需要加班,发布这个是比较高危的一个事情,很多公司的发布的时候需要盯盘的,不可能说还没发完,就先回去睡觉了,这个是一般做不到的。那这种情况下看如果它发布需要耗时超过一天,假设一个组两个人轮流,也需要12个小时。

举一个例子,有很多企业,把他们的集成时间放在周二,然后发布时间放在周四,因为默认发布一定要加班的,而且周四发布不上去周五还要发。

如果放在周五的发布,那周六肯定要加班了。其实很多情况下,虽然发在周四,但可以发现绝大部分的情况下,发到周五晚上,甚至到周六才能够发上去,其实发到周日的其实也不少。所以从这两张图看看,发现像 a 应用一样,它频率很低,好久才会发一次,然后另外一个,两个都是体现出这一点,就是时间很长,成功的就一定要很久。然后像b应用易出错。

还有一个就是确实有相应的一些风险。因为这个时间很长,又很容易出错的话,很难做到按需发布,保证那个发布上先点能够做好。可以观察一下b应用,会发现如果它挨着时间点,连续有多次红点再加一个绿点的话,往往意味着连续发布出问题,要紧急的去修复,然后再去重新发布。所以这个时候就意味着这个软件其实是很有可能在紧急修复和出故障中间出现风险的,那怎么能够让这个发布频率变得更高,时间更短,然后更不容易出错,没什么风险。这是愿景,希望就是任何时候发上去都是好的,都是绿的,也就是能够持续快速,高质量,放心大胆的能够发布上去,那么这个时候就要提到的就是一个集成和发布的一个能力了,那么这里虽然这里叫快速集成能力,其实发布也是部署类似的。

 image.png

这里其实是要注意到2点,第一个就是减小批量,第二个就是保持顺畅。

集成的一个批量的,一个集成的粒度跟资源利用率和周期时间是有相关性的,可以看到小批量它的周期时间是比较短的。大批量它的周期时间一般来说会比较长,从资源利用率看,其实它们都相对比较接近,不会有太大的一些问题。通过减少批量可以让周期时间尽可能的变短,时间短了,基本上频率就会做的多了。频率做的多,时间又快,然后反馈又快,那对于这一个应用的修复或者相应的一些问题响应,就会变得更快,这是第一点,要做到减少批量。

那么第二个就是保持顺畅,举一个简单例子,正在录像,然后开车,大家各行其道,但突然之间有一条车道追尾了,那这个时候第一要做的是什么?还继续放车过去?肯定不是。首先要做的就是阻止进入,然后让有问题的,先把这个问题解决掉之后,然后才能把右边的顺畅起来,这里头有两个比较重要的点,怎么来去做。

 image.png

第一个减少剂量,刚才已经提到过了,是说从需求的粒度和代码的粒度看,要明确可发布单元和可测试单元尽可能的少。然后可构建和单侧单元代码尽可能的小。但保持顺畅的角度,基本上有很多的实践。比如第一点全面自动化,测试能够做到自动化,构建的速度能够自动化,部署能够自动化,整个流程串起来能够自动化状态迁移,能够做到自动化。

第二点管理异常,什么叫异常?就是发布过程当中的车辆的追尾,持续的挂在那里,这个时候应该把这个异常情况先修复掉,再让这个道顺起来。发布的流水线出现问题时,这个时候就应该先停下来,先不要提交,先不要确定,不要触发集成发生。然后先把这个问题先解决,就是先让主干变好,因为如果主干都是有问题的主干,那接下来所有的工作都是有问题的。所以要先保证把这个主干修复掉,然后剩下的集成再去做。

在以前有一些企业里的工作的时候,会做到这一点,一旦遇到出现问题的时候,谁提交代码的,谁就负责去解决掉问题,如果半小时或者说给一个限定的时间内没有完成处理。那么系统会自动的把它的代码摘掉,让后面的人能够继续的做相应的一些集成,这里是管理相一些异常。

第三个减少依赖,如果本身集成或者发布过程当中,对外部有特别多的依赖,这个时候也会相应的阻塞,因为依赖会导致要去做相应等待。第四质量内建,上游的质量好了,才能保证下游的更快,比如上游不去做相应一些问题,那下游肯定阻塞。

举个例子,有一篇文章叫《扁鹊见蔡桓公》,扁鹊说自己的医术在他三兄弟当中是最差的,他二哥医术比他好,但是他大哥最好,为什么?扁鹊治的是快要死的人,他二哥是人刚生病,就能把病人治好。大哥是未病已治病,人家都不知道他生过病,就已经治好了。这里一个思维方式就是凡事应该尽早的去做,去上游找问题,保证早一点让下游变得更好一点。这里是一个质量内建的一个,第五及时反馈也是一样的。有了问题之后能够及时准确的反馈到具体的人类一个地方。有时候有一个反模式,垃圾式反馈,但凡用了这套系统和提交代码,会有很多的邮件或者很多的钉钉信息发送到。这个时候一般来说用户的做法是它忽略,过滤到垃圾箱。一旦规则给这个反馈建立了一个规则,那基本上就不会再去看了,那么最后一个就是复用。很多过程尽量去复用它,有一些过程就比如做完了之后就不用去重复再找,所以以上是保持顺畅的几个参考点。

从四个角度要持续部署,第一个准确、可预期的部署结果,第二个部署过程不影响线上服务,第三个有可持续部署的软件增量,第四个低成本、高效地部署发布,整个发布做到按需部署发布最理想的情况是什么时候想发就可以发。

相关文章
|
17天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
31225 108
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
7天前
|
应用服务中间件 API 网络安全
3分钟汉化OpenClaw,使用Docker快速部署启动OpenClaw(Clawdbot)教程
2026年全新推出的OpenClaw汉化版,是基于Claude API开发的智能对话系统本土化优化版本,解决了原版英文界面的使用壁垒,实现了界面、文档、指令的全中文适配。该版本采用Docker容器化部署方案,开箱即用,支持Linux、macOS、Windows全平台运行,适配个人、企业、生产等多种使用场景,同时具备灵活的配置选项和强大的扩展能力。本文将从项目简介、部署前准备、快速部署、详细配置、问题排查、监控维护等方面,提供完整的部署与使用指南,文中包含实操代码命令,确保不同技术水平的用户都能快速落地使用。
4518 1
|
13天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6509 17
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
12天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4564 9
|
14天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5525 19
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
14天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
6042 5
|
16天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7692 17
|
10天前
|
人工智能 JavaScript 安全
Claude Code 安装指南
Claude Code 是 Anthropic 推出的本地 AI 编程助手,支持 Mac/Linux/WSL/Windows 多平台一键安装(Shell/PowerShell/Homebrew/NPM),提供 CLI 交互、代码生成、审查、Git 提交等能力,并内置丰富斜杠命令与自动更新机制。
3789 0