DevOps - 从渐进式交付说起(含实践 Demo)

KiCad 7网络类功能详解与PCB设计优化 网络类(Net Class)是EDA工具中管理电路网络分组的核心技术,通过将具有相同电气特性的网络归类,实现设计规则批量应用和信号完整性保障。其工作原理是基于网络标签的逻辑分组,在KiCad等开源EDA工具中,网络类技术可显著提升复杂PCB设计的效率与可靠性。从工程实践角度看,网络类特别适用于高速数字电路、混合信号系统等场景,能有效解决信号干扰、电源完整性等典型问题。KiCad 7作为主流开源EDA工具,其增强的网络类功能支持通配符匹配、规则继承等高级特性,配合颜色标注和批量操作,可使PCB布局效率提升40 阅读详情

作者:CODING - 王炜

1. 开篇

如果让你主导一款千万、甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于:

商业战略的变化带来新的产品诉求,而产品的任何改动哪怕仅是界面调整,都将面临无数存量用户的挑战

这时候,作为产品负责人,你会选择稳定压倒一切?还是自我革新,继续追求用户和市场的价值呢?笔者通过对 Facebook、Twitter 等互联网巨头的调研,试图窥探他们在瞬息万变的市场中仍然保持“稳定”迭代的秘密 - 渐进式交付

通过本篇文章,你将收获:

  1. 什么是渐进式交付,为什么 DevOps 能够天然与其结合
  2. 为什么渐进式交付能赋予大规模组织下的产品持续交付及稳定迭代的能力
  3. 小项目,大项目同样适用的实践经验

2. 什么是渐进式交付

移动互联网时代的爆发,诞生了一大批巨型互联网企业和项目,部分大型项目的技术复杂程度和组织复杂程度甚至不亚于传统的工业项目,为了实现对这些项目的管理和迭代,我们试图将目光投向已经完成工业革命的传统工业寻找答案。

而“渐进式交付”一词最早起源于大型、复杂的工业化项目,比如:铁路、汽车和军事产业、新基建的 5G 网络产业等等。

它和 DevOps 的目标一致,试图将复杂的工程化项目进行分阶段拆解,通过持续进行小型迭代闭环,降低交付成本和节约交付时间

可查询的资料显示,“渐进式交付”流行于互联网产品是在近两年 Kubernetes 以及云原生大规模使用之后。这两项技术的出现,为“渐进式交付”在互联网的应用提供了基础设施和实现方法。

DevOps 是“渐进式交付”的实现手段,而其中的“流水线”为“渐进式交付”提供了实现途径

在产品的迭代过程,可以将“渐进式交付”的具体行为附着在“流水线”中,将整条交付“流水线”看做是产品迭代的一个过程和一次“渐进式交付”周期。

说了这么多“渐进式交付”的理论基础,在实践中又是以哪些技术方法落地呢?

  1. A/B 测试
  2. 金丝雀 / 灰度发布

以 Facebook 为例,每次发布重大功能,都会经历一次典型的“渐进式交付”过程:

  1. 迭代发布
  2. 公司全员 A/B 测试
  3. 特定用户 A/B 测试
  4. 灰度发布
  5. 全量发布

这种渐进式交付的好处是,对于新迭代正式推向市场前提供了灰度用户的数据支撑,帮助决策者充分了解用户倾向和市场诉求。

在“渐进式交付”的过程中,A/B 测试环节以及灰度发布环节都可以根据用户数据和市场反馈决定是否进入全量发布,这种方式既能够保证迭代敏捷进行,又能够保证迭代的用户和市场安全性。

2.1 A/B 测试

例如通过对用户画像中地理位置和性别组合条件进行 A/B 测试,使其访问新版本,而其他的用户则继续访问旧版。一段时间后,研究用户行为数据和用户体验报告,决定功能是否继续进入下一个发布环节。

2.2 金丝雀 / 灰度发布

使用特定分流技术使流量由新老版本共同承担,如典型的“MurmurHash”算法

3. 技术价值和商业价值

从原理上来看,这些技术并不是多么新的技术,比如 A/B 测试,我们用最原始的方式:业务代码增加逻辑判断条件也可实现,但为什么没有大规模运用呢?

原因很简单:纯业务代码的实现依赖于技术开发,需求方无法自主控制 A/B 测试的环境和条件,这种过度依赖于技术开发并不能带来规模化的运用。

我们需要的是一种完全脱离业务代码的实现方式,最好能以自动化/半自动化实现,并且尽量能把这个动作加入到已有的内部流程内

现在,有了云原生和 Kubernetes 的支持,结合 DevOps 的流水线,自动化的渐进式交付成为了可能。

我们参考 Facebook 的发布方式,设计了这个 Pipeline Demo

它主要实现了:

  1. 提交代码后自动执行单元测试,并构建 Docker 镜像
  2. 将 Docker 镜像推送到私有制品库,自动触发流水线
  3. 执行 K8S Job Migrate 数据库(如果有改动),并部署新版到预发布环境
  4. 人工确认:发布生产环境前是否进行 A/B 测试
  5. A/B 测试通过后,设置灰度发布的比例,自动灰度发布
  6. 人工确认:是否全量发布生产环境
  7. 生产环境自动配置限流和熔断策略,保证生产稳定

最终实现的效果图:

1. 提交代码后自动构建镜像、单元测试、推送到镜像仓库并触发 CD 流水线。


2. 执行 K8S Job 对预发布
实战演练:基于Gitee与Argo生态链在K8s中构建端到端渐进式交付流水线 本文详细介绍了如何基于Gitee与Argo生态链(包括Argo CD和Argo Rollouts)在Kubernetes(K8s)中构建端到端渐进式交付流水线。通过实战演练,读者将学习到从环境搭建、GitOps核心流水线配置到高级渐进式交付的全流程实现,帮助团队实现安全、可控的DevOps自动化部署。 阅读详情

相关推荐

Devin实战:DevOps全流程安全部署与可持续运维

容器化应用的持续交付不仅是自动化部署,更是贯穿开发、构建、运行与维护全生命周期的安全治理与稳定性保障。其核心在于将安全左移至代码提交前、实现镜像构建即扫描、落实最小权限的Kubernetes运行时策略,并通过渐进式发布与智能回滚构建高可用交付闭环。Devin作为新型AI原生DevOps工具,深度整合Semgrep静态分析、Trivy镜像扫描、OPA策略引擎及Loki日志结构化等关键技术,在真实SaaS生产环境中验证了从依赖漏洞自动修复(如lodash < 4.17.21)、CVE精准拦截到灰度熔断与性能基线

weixin_31364787的博客 279

软件工程学入门:从危机到实践的现代开发全景图

本文全面解析软件工程学从危机到实践的现代开发全景图,涵盖软件危机根源、七大工程原理、方法学比较、生命周期模型选择及DevOps实践。通过真实案例展示如何运用结构化与面向对象方法,并推荐敏捷开发与持续交付的最佳实践,帮助开发者构建高效可靠的软件系统。

weixin_30955617的博客 516

云原生应用全自动化渐进式交付的gitops实践分享

2020QECon全球软件质量&效能大会,云原生工程质量中台专场郝树伟先生做的云原生应用全自动化渐进式交付的gitops实践分享报告的PPT文档,分享给大家!

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇) 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大。能引用K大的成果也是自己的荣幸,不便之处还请K大多多包涵,在此引用只是为方便自己日常学习,部分参数表里根据自身情况,增加了修改环节和相应参数。 垂直起降固定翼 中文教程-参数设置 垂直起降固定翼是由 多轴+...

u011322358的博客 2万+

STM32H743 SD卡读写避坑实录:CubeMX配置MDMA给FATFS,我的FreeRTOS项目踩了哪些雷?

本文详细解析了STM32H743在CubeMX配置中结合SDMMC、MDMA与FATFS的实战避坑指南,特别针对FreeRTOS环境下的SD卡读写问题提供了解决方案。从时钟配置到FATFS参数设置,再到DMA缓存维护和FreeRTOS集成技巧,帮助开发者高效解决数据损坏、DMA传输错误等常见问题,提升项目稳定性。

weixin_30878501的博客 493

医学图像中的小目标病灶检测难题:我的硕士研究总结与思考

医学图像中的小目标检测和分割,主要指在CT、MRI、超声等医学影像中识别和分割微小病灶或细小结构。这些小目标通常体积小、边界模糊、特征不明显,却往往是关键病灶,例如肺部小结节、脑微出血、乳腺微钙化等。

weixin_45638136的博客 2368

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

本文详细解析了富斯i6遥控器与STM32通过IBUS协议通信的实战指南,涵盖硬件准备、协议解析、驱动实现及常见问题解决。特别适合机器人及智能小车开发者,提供低成本、高可靠性的无线控制方案,助力快速实现多通道控制功能。

weixin_29193359的博客 440

JetLinks社区版VS企业版:手把手教你用PostgreSQL+Redis搭建物联网中台(Win7实测)

本文详细对比了JetLinks社区版与企业版的核心差异,并提供了在Windows 7系统上,使用PostgreSQL和Redis搭建物联网中台的完整部署教程。文章深入解析了从环境准备、后端服务构建到前端部署的每一步,为开发者在资源有限环境下构建高性价比物联网平台提供了清晰的实战指南。

w1x2y3的博客 305

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1169

Oracle 从入门到精通系列(入门篇)1.1-Oracle 数据库发展史

Oracle 从入门到精通系列(入门篇)1.1-Oracle 数据库发展史

LuciferLiu_DBA 2190

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: CODING DevOps 系列课程重磅来袭!
下一篇: 静态网站架构的演进和最佳实践
腾云 CODING
博客等级 码龄8年 203粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值