CI/CD
December 13, 2022
Github Action #
灰度发布 #
将应用的变更增量推送给用户,避免一次性全量推送带来问题
灰度规则:根据性别,年龄,注册时间,手机号等特定的标识区分用户,推送不同的版本
服务端渲染 #
准备多个版本模板,客户端塞 cookie 标识用户,从灰度规则里判断当前用户应该返回哪个版本的
前后端分离 #
浏览器发请求,根据用户标识获取对应资源版本号
获取对应版本的资源后,再去渲染应用
缺点:较差的用户体验
优点:分散服务器的压力
架构层面 #
接口也需要做灰度
额外部署一个小规模的灰度集群,并通过流量控制,引入部分流量到灰度集群
蓝绿发布 #
理论上,灰度发布的需求都可以用蓝绿发布解决,而且可以更好地解决。
但是我们不能完全用蓝绿发布替代灰度发布,因为应用蓝绿发布期间两个集群同时在线,占用平时两倍的服务器资源,成本很高,而灰度发布只需要很小一部分服务器资源就可以验证大部分问题。