常用的发布方式总结

1 蛮力发布

顾名思义,这种方式简单而粗暴!直接将新的版本覆盖掉老的版本。其优点就是简单而且成本较低,但缺点同样很明显,就是发布过程中通常会导致服务中断进而导致用户受到影响,这种方式比较适应于开发环境或者测试环境或者是公司内部系统这种对可用性要求不高的场景,有些小的公司资源稀缺(服务器资源,基础设施等)的时候也会采用这种方式。

2 金丝雀发布(灰度发布)

金丝雀发布是灰度发布的一种。灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。即在发布过程中一部分用户继续使用老版本,一部分用户使用新版本,不断地扩大新版本的访问流量。最终实现老版本到新版本的过度。由于金丝雀对瓦斯极其敏感,因此以前旷工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。

3滚动发布

滚动发布是在金丝雀发布基础上进行改进的一种发布方式。相比于金丝雀发布,先发金丝雀,然后全发的方式,滚动发布则是整个发布过程中按批次进行发布。每个批次拉入后都可作为金丝雀进行验证这样流量逐步放大直至结束。

4蓝绿部署

蓝绿部署,是采用两个分开的集群对软件版本进行升级的一种方式。它的部署模型中包括一个蓝色集群 Group1 和一个绿色集群 Group2,在没有新版本上线的情况下,两个集群上运行的版本是一致的,同时对外提供服务。

,蓝绿部署的流程是:

  • 从负载均衡器列表中删除集群Group1,让集群 Group2 单独提供服务。
  • 在集群 Group1 上部署新版本。
  • 集群 Group1 升级完毕后,把负载均衡列表全部指向 Group1,并删除集群 Group2 ,由 Group1 单独提供服务。
  • 在集群 Group2 上部署完新版本后,再把它添加回负载均衡列表中

5红黑发布

与蓝绿部署类似,红黑部署也是通过两个集群完成软件版本的升级。当前提供服务的所有机器都运行在红色集群 Group1 中,当需要发布新版本的时候,具体流程是这样的:

  • 先申请一个黑色集群 Group2 ,在 Group2 上部署新版本的服务;
  • 等到 Group2 升级完成后,我们一次性地把负载均衡全部指向 Group2 ;
  • 把 Group1 集群从负载均衡列表中删除,并释放集群 Group1 中所有机器。这

这样就完成了一个版本的升级。可以看到,与蓝绿部署相比,红黑部署获得了两个收益:一是,简化了流程;二是,避免了在升级的过程中,由于只有一半的服务器提供服务,而可能导致的系统过载问题。但同样也存在全量升级对用户的影响问题,也带来了一个新的问题,就是发布过程中需要两倍的服务器资源。

6功能开关

这种发布方式是利用代码中的功能开关来控制发布逻辑,是一种相对比较低成本和简单的发布方式。研发人员可以灵活定制和自助完成的发布方式。这种方式通常依赖于一个配置中心系统,当然如果没有,可以使用简单的配置文件。

应用上线后,开关先不打开,只待一声令下,可以全量打开开关,也可以按照某种维度(公司ID,用户ID等)分批打开开关进行流量验证,如果有问题,则随时关闭开关。
这种方式的优势在于升级切换和回退速度非常快,而且相对于复杂的发布工具,成本较为低廉。但是也有很大的不足之处,就是开关本身也是代码,而且是与业务无关的代码,对代码的侵入性较高,也必须定期清理老版本的逻辑,使得维护成本增加。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值