我想知道每种策略的含义以及它们在幕后的运作方式(即 Highlander、Red/Black、Rolling Push)。在官方网站上提供此信息将非常有用。
谢谢
那里有有用的信息可以帮助您解决问题,我会尽力在下面总结。
“有多种技术可以将新应用程序部署到生产环境中,因此选择正确的策略是一个重要的决定,要根据变化对系统和最终用户的影响来权衡选择。”
Version A
终止然后version B
推出。Version B
缓慢推出并替换version A
.Version B
与 一起释放version A
,然后流量切换到version B
。Version B
发布给一部分用户,然后进行全面推出。Version B
在特定条件下发布给一部分用户。Version B
同时接收真实世界的流量version A
,并且不影响响应。Spinnaker 将云原生部署策略视为一流的构造,处理底层编排,例如验证运行状况检查、禁用旧服务器组和启用新服务器组。
Spinnaker 支持的部署策略(在积极开发中):
汉兰达:这种部署策略恰如其分地以电影汉兰达命名,因为著名的台词“只能有一个”。使用这种策略,有一个负载均衡器面向单个集群。Highlander 在部署完成后销毁之前的集群。这是最简单的策略,当回滚速度不重要或需要降低基础设施成本时,它很有效。
红/黑:此部署策略也称为蓝/绿。红/黑策略使用负载均衡器和两个目标集群/服务器组(称为红/黑或蓝/绿)。负载均衡器将流量路由到活动(启用)集群/服务器组。然后,一个新的部署替换禁用的集群/服务器组中的服务器(w/K8s 提供程序 -> 副本集和 Pod)。当新启用的集群/服务器组准备就绪时,负载均衡器会将流量路由到该集群,而之前的集群将被禁用。当前禁用的集群/服务器组(以前启用的集群/服务器组)由 Spinnaker 保留,以防下一个 X 部署需要回滚(这是一个可配置的参数)。
滚动红/黑:是一种较慢的红/黑,具有更多可能的验证点。该过程与红/黑相同,但不同之处在于流量如何切换。上图说明了这种差异。蓝色是启用的集群。蓝色实例逐渐被绿色集群中的新实例替换,直到所有启用的实例都运行最新版本。推出可能以 20% 的增量进行,因此它可以是 80/20、60/40、40/60、20/80 或 100%。在部署完成之前,蓝/绿集群都会接收流量。
金丝雀:部署是一个过程,其中部分部署更改,然后在继续之前根据基线指标进行测试。此过程通过将爆炸半径限制在用户群的一小部分来降低更改在完全推出后导致问题的风险。配置金丝雀时设置基线指标。指标可能是错误计数或延迟。高于基线的错误计数或延迟峰值会杀死金丝雀,从而停止管道。
据我了解:
在我的公司,我们只定期使用 Highlander 和 Red/Black。