专栏首页TestQA必知必会 - 你可能想了解的上线部署策略

必知必会 - 你可能想了解的上线部署策略

引用自原文:https://www.cnblogs.com/apanly/p/8784096.html

最近由于需要开发测试环境管理工具,研究了下k8s的设计概念,过程中接触到了蓝绿部署、金丝雀部署、滚动部署等名词。

好奇心的驱使就顺手查阅了下,而这篇博主的文章就写的比较的详细,所以把文章摘要出来了。有需要详解更多详情的朋友可以通过点击原文查看。

传统发布

所谓的传统发布,就是那种在凌晨先停止全部服务,再进行全部服务升级,再启动全部服务的发布方式。

优点:简单成本低 缺点:服务会中断,发布/回退时间长

001

金丝雀发布

在传统发布流程的基础之上的一种改进发布方式。特点是先停止一台服务进行升级,上线后观察一段时间,没有问题后再把剩余的服务全部一次性升级完成。那第一个升级的服务就是“金丝雀”。

优点:发布过程、发布异常对用户影响范围小 缺点:仍然会中断服务,发布/回退周期依然很长

002

“金丝雀”的由来是以前旷工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。

滚动更新

是在金丝雀部署模式上的一种改进,它的特点是持续滚动的进行单台服务更新,第一台服务更新的方式就是金丝雀部署。

优点:用户影响小,体验比较平滑 缺点:发布/回退时间长,需要发布工具支持。比如:k8s

003

蓝绿部署

一种适用于双服务器组发布的场景,它的特点是线上运行一组服务,线下再重新搭建一组升级的服务,最后通过一次性的流量切换到完成发布操作。

优点:升级切换/回退速度快 缺点:全量切换、用户影响范围大、需要双倍机器资源

004

由于是双服务器组,两组服务各不相同;一组为蓝组,则另一组为绿组,故称蓝绿部署。

金丝雀+蓝绿部署

一种结合金丝雀和蓝绿部署优点的部署方式。它的特点是先部署一台金丝雀,发布成功后,再通过蓝绿部署全量切换。

优点:降低全量发布风险、保障全量回退的速度 缺点:需要双倍机器资源

005

双倍资源 + 滚动部署

一种滚动部署的改进方式,它的特点是通过双倍资源来滚动部署,在保障发布过程平缓的情况下,保留全量回退的速度。

优点:发布平缓、回退快速 缺点:需要发布工具支持、需要双倍机器资源

006

其它发布模式

功能开关发布

这是一种在程序内部设置一个服务开关,通过外部配置中心的服务开关标识来打开和关闭服务。

优点:服务功能切换/回退快、实现方式简单 缺点:代码内容有冗余、全量切换升级失败影响大、对低版本不兼容

A/B测试发布

一种允许线上同时存在多个版本服务的发布方式。其目的是为了验证新版本服务的有效性,通过线上真实用户流量来评估新版本是否成功。通常会应用在效果类、产品类的服务发布上。

优点:使用真实流量来验证、对用户影响小、可以进行特定人群测试 缺点:发布和数据收集平台复杂

影子测试发布

一种用于老版本服务重构的验收发布方式。它的特点是重构前后新老版本功能一致,希望通过模拟线上真实数据来验证新版本的正确性。

具体方式为:新老版本在线下各自部署相同的数据后台;再通过拉取线上日志进行回放,来模拟线上真实请求;最后对比新老版本的返回结果和数据库更新。如果都保持一致,则表示新版功能上没有问题。

本文分享自微信公众号 - TestQA(testqna),作者:编程浪子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 性能监控平台搭建 - Grafana安装与简易使用指南

    Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

    上帝De助手
  • Python日志logging模块使用详解

    每个语言都会有自己的日志模块,Python也不例外。通常情况下当需要使用到日志的时候, 一般都是匆匆查找下资料,按照步骤进行下配置就是完事了,不太会去总结日志模...

    上帝De助手
  • 性能监控平台搭建 -- 集成Locust性能数据

    这是之前介绍过的性能监控平台的整体架构图,想要了解其它部分的搭建,可以查看相关文章《Telegraf安装与简易使用指南》、《InfluxDB安装与简易使用指南》...

    上帝De助手
  • 有了 Jenkins,为啥还需要一个独立的部署系统?

    DevOps时代
  • 持续部署Microservices的实践和准则

    当我们讨论Microservices架构时,我们通常会和Monolithic架构(单体架构 )进行比较。 ? 在Monolithic架构中,一个简单的应用会随着...

    ThoughtWorks
  • 一步步实施 DevOps (五)

    本章节重点谈自动化部署,每个人对自动化部署都有自己的理解,每个企业对自动化部署的需求也不同。

    netkiller
  • 一步步实施 DevOps (五)

    本章节重点谈自动化部署,每个人对自动化部署都有自己的理解,每个企业对自动化部署的需求也不同。

    netkiller
  • 持续发布的三种反模式及解决方案

    在接触的很多的企业中,持续部署实践依然还有很多不足,基本上部署靠人,更别谈自动化了。我一直强调持续部署是IT交付的核心能力,直接关联到研发/测试和运维多个团队,...

    用户1593318
  • CMU科学家们带一群机器人开房,并收集了28,000种不同的姿势

    来自卡耐基梅隆大学 (CMU) 的四个科学家,在一篇论文里说,他们带着一群机器人去住Airbnb了。

    量子位
  • 机器人2020及未来展望

    在刚刚过去的2019年科技发展中,机器人、人工智能、自动驾驶、无人机、区块链等已经成为了众人皆知的亮点,现在让我们在2019年以及之前的历史发展中们展望2020...

    机器人网

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动