当前位置: 金丝雀 >> 金丝雀的习性 >> 什么是金丝雀发布和蓝绿发布,你真的搞懂了
金丝雀发布(CanaryRlas)和蓝绿发布(Blu-GrnDploymnt)都是软件持续交付/部署领域中的两种流行的发布策略。
金丝雀发布是指在生产环境中逐步推出新版本应用程序,只在一小部分用户或流量中使用该版本,并根据反馈逐步扩大规模,最终完全替换旧版本。金丝雀发布允许快速检测新版本与旧版本之间是否存在兼容性问题、性能问题或其他问题,并减轻了在实施全新发布时可能遭受的损失。
蓝绿发布是一种与金丝雀发布类似的策略,但是在新版本应用程序推出之前,先在一个完全独立的环境中进行测试并准备好一个完整但不向外公开的备份环境。当新版本准备好并经过测试之后,将新环境与旧环境进行切换,让新环境提供服务。如果在切换后出现问题,可以立即将流量切换回旧环境中,从而减少影响范围和恢复时间。
在Kubrnts中实现金丝雀发布和蓝绿发布可以使用Ingrss、Srvic、Dploymnt、RplicaSt等组件进行实现。具体步骤分为以下几个:
创建两个或多个Dploymnt或者StatfulSt资源(例如,"app"和"app-canary")来分别表示旧版本和新版本。
部署Ingrss控制器,这样您就可以将请求通过不同的URL路径或主机名路由到不同版本的应用程序。
创建一个Srvic资源来公开这些Dploymnt或StatfulSt,并将它们对应到Ingrss。
根据金丝雀或蓝绿发布策略,渐进地或完全地将流量路由到新版本的Dploymnt或StatfulSt。根据反馈不断调整版本比例或应用程序性能,并逐步将所有流量切换到新版本中。
除了以上的Kubrnts资源,还可以使用Istio等服务网格技术来实现更高级的发布策略,例如基于流量管理和负载均衡的A/B测试、分阶段分布发布等。