呐,这玩意儿呢,其实吧,差别都是细节之处,随手总结一下吧。
蓝绿部署
蓝绿蓝绿,理解起来就是,现网生产环境的服务为绿色系统,蓝色系统呢,是完整复刻现网生产环境(包括数据)并使用了新版本的分身。
这么做的意义在于,蓝色系统中可以随时根据测试反馈进行代码修正并以完全和公网服务一致的情况下得到验证。当发布后,蓝色系统接入现网提供完整服务,如果有什么问题,则可以立刻切回绿色系统,一段时间的验证无误,则蓝绿系统身份对调进行下个版本的测试,或者直接释放掉旧的绿色系统。
听起来挺简单的是吧,但实际使用这玩意儿限制很多,如果原始系统非常庞大,数据环境复杂,做分身系统的成本和复杂度根本没办法落实这种部署方式,所以啊,知道就得了,实际使用也就是微小集群能搞,而涉及数据还要完整复刻又是个复杂的事情。
金丝雀发布|灰度发布
俩名字其实是一个意思,为什么叫金丝雀呢?其实是因为这货极易受有毒气体的侵害,贼敏感,早期矿井没检测毒气的设备,矿工带只金丝雀,鸟凉的时候,人还没事,可以及时发现问题。
到生产环境呢,使用起来大概这么个意思:10台设备的集群,抽1台做金丝雀上新版本,然后呢,流量按比例或者指定用户接入,看报障看运行状态,如果运行良好,再逐个增加金丝雀,或者干脆一把梭把剩下的设备都干到新版。
上段提到的流量按比例或指定用户接入,有个专有名词,叫做:流量分控。这玩意儿在我早期做的PHP的灰度发布系统中利用一致性哈希算法原理实现过。
AB测试
这玩意儿其实不算是部署发布的策略,更多的是用来对比效果,最常见的就是,设计相同功能呢,有两种路径,然后UI有两种,你说哪种用户更喜欢?鬼知道~
那鬼知道你不能画符烧纸招魂啊,你得搞些人能分析的数据,怎么搞?引入AB测试,通过技术手段,让一部分用户体验A版本的UI,另一部分体验B版本的UI,然后使用数据就有了,哪个留存高,转化高,只需要一段时间的数据积累,就可以一目了然。
当然,你应该发现,AB测试和金丝雀发布这样的情况,都涉及到了流量分控,这个一般会交易负载均衡通过一定策略实现。
那,基本上介绍就是这样了,懒得放图了,有兴趣了解的可以看参考资料。
参考资料
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。