灰度发布、蓝绿部署、金丝雀都是啥?以及在k8s中如何实现

概述

      滚动发布:
         一套环境,滚动更新,新旧版本共存
         缺点:出问题了,不确定是新版本的问题还是旧版的问题,最关键的是缺少流量控制

      蓝绿:粒度是环境级,以整套环境为单位切换流量
         两套一样的环境,流量分配:80%旧,20%新,然后逐步增加新环境流量
         缺点:耗费资源
         优点:随时切换,快速切回旧的稳定环境,也能扛住压力,因为原来的环境原封不动地留着

      金丝雀Canary:粒度是服务级,因服务为单位切换流量
         与蓝绿很像
         蓝绿是新服务全部部署到一套全新的环境中
         金丝雀,是部分服务部署,先部署几台机器,然后采用控制流量的方式,逐步验证

         然后一点点扩大范围,适用于迭代版本,而不是大版本变更,因为是部分更新,存在老组建访问新组件,因此必须兼容

         而蓝绿就不需要考虑这个问题


         金丝雀发布都是灰度发布的一种

      AB测试,关注的是效果,从中选出符合用户喜好的变更,而滚动、蓝绿、金丝雀发布都是发布策略关注的是有没有bug

      有赞灰度发布方案:https://tech.youzan.com/gray-deloyments-and-blue-green-deployments-practices-in-youzan/

沙箱环境与测试换环境区别?
沙箱环境和测试环境的关键区别主要体现在它们的目的和互动性质。
目的:
(1) 沙箱环境主要是为了给开发者提供一个可以自由实验的环境,在这个环境下,开发者可以尝试使用新的代码或框架,实验证明一些假设,或者复现一些不易在生产环境中出现的错误。
(2) 而测试环境则主要是用来验证软件产品在生产环境中的表现,包括验证新开发的功能是否正常,是否存在问题等。

互动性质:
(1) 在沙箱环境中,开发者可以进行大量的尝试和改动,因为这个环境是隔离的,不会影响到其他的环境或数据。
(2) 而在测试环境中,所有的改动都是需要被严格记录和控制的,因为这个环境是为了尽可能地模拟生产环境。

总的来说,沙箱环境是一个供开发者自由尝试和学习的地方,而测试环境则是一个严谨重现和预测生产环境行为的地方

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术