极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:10
登录|注册

软件发布的九种方式

讲述:丁婵大小:2.36M时长:05:10
据多项调查表明,高效能组织和低效能组织在软件交付的效率上有数量级的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。下面为当今九种主流的发布方式,以及它们的优劣和适用性,希望对你有所帮助。
第一种,单服务器组蛮力发布。
此方式简单粗暴,先将老版本整体下线,再将新版本整体上线,以此完成发布。此方式简单成本低,但是发布期间服务中断业务受损,回退也慢。适用于测试环境发布或者初创公司夜间发布。
第二种,单服务器组金丝雀发布。
矿工开矿下矿洞前,先会放一只金丝雀进去试探否存在有毒气体,金丝雀发布由此得名,国内也称为灰度发布。此方式需要逐台服务器发布新版本,优势是如果有问题,影响范围也较小,随时可以中断发布,缺陷是发布速度较慢,自动化程度不够。此发布方式适用于缺乏足够自动化发布工具的场景。
第三种,单服务器组滚动式发布。
此方式是在金丝雀发布基础上的进一步优化改进,是一种自动化程度较高的发布方式,用户体验比较平滑,是目前成熟型技术组织所采用的主流发布方式。此方式弥补了金丝雀发布的缺陷,但是发布工具较为复杂,适用于具备复杂发布工具研发能力的团队使用。
第四种,双服务器组蓝绿发布。
随着云计算和虚拟化技术的成熟,特别是容器等轻量级虚拟化技术的引入,计算资源受限和申请缓慢问题已经逐步解决,可以做到弹性按需分配。为一次发布分配两组服务器,一组运行现有的老版本,一组运行待上线的新版本,再通过 LB 切换流量方式完成发布,这就是双服务器组发布方式。
双服务器组蓝绿发布是对蛮力发布的一种优化,升级切换和回退的速度很快,缺陷是全量切换出现问题时业务有损,且需要两倍机器资源。适用于云上环境的简单发布。
第五种,双服务器组金丝雀发布。
此方式是对蓝绿发布的一种简单优化,发布时先从绿组拉入 1 台金丝雀,待金丝雀验证通过再发全量。对比蓝绿发布,该发布方式的优势是有一个生产流量的金丝雀验证过程,可以减轻风险和影响面。
第六种,双服务器组滚动式发布。
此发布方式是对蓝绿和金丝雀发布的进一步优化,按批次增量滚动发布,提供更平滑的用户体验。用户体验影响小,升级切换和回退速度比单服务器组滚动发布要快,负载均衡切流量即可。不足是需要两倍机器资源,且发布工具很复杂。适用于用户体验要求高、且团队具备复杂发布工具研发能力的场景。
第七种,功能开关发布。
此发布方式是利用代码中的功能开关来控制发布逻辑,一般不需要复杂的发布工具和智能 LB 配合,是一种相对比较低成本和简单的发布方式。缺陷是对代码有侵入,代码逻辑复杂维护成本高。适用于已有配置中心,且不具备发布工具的场景。
第八种,A/B 测试发布。
A/B 测试原来主要用于产品功能的比对测试,收集用户反馈和对比数据做产品功能设计的决策。实际上,A/B 测试也可以作为一种新功能发布技术。此发布搭建复杂度相对高,有一定技术门槛,适用于核心关键业务,且具备 A/B 测试平台的场景。
第九种,影子测试发布。
对于一些涉及核心业务的遗留系统的升级改造,为了确保万无一失,有一种称为影子测试的大招,采用比较复杂的流量复制、回放和比对技术实现。此发布方式对用户体验完全无影响,还能复制线上真实流量进行对比测试,但是搭建复杂度很高,技术门槛高,数据库的导出复制是难点,而且外部依赖不能太多,否则测试部署成本很高,且比对测试更加复杂和不稳定。此发布方式适用于核心关键业务,且影子测试平台完善的场景。
以上便是软件发布的九种主流方式,根据公司业务和研发团队的现状,可以选择适合自己的发布方式。随着 DevOps 的发展,相信会有更丰富的发布方式出现。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 加菲猫
    单服务器的蛮力发布,金丝雀发布,滚动式发布;双服务或多服务器蓝绿发布,金丝雀发布,滚动式发布,以及功能开关发布、A/B测试发布、影子发布基本都是解决互联网下分布式架构、微服务架构下的精益开发、迭代开发发布问题
收起评论
显示
设置
留言
1
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部