CI/CD

CI/CD

December 13, 2022
devops

Github Action #

灰度发布 #

将应用的变更增量推送给用户,避免一次性全量推送带来问题

灰度规则:根据性别,年龄,注册时间,手机号等特定的标识区分用户,推送不同的版本

服务端渲染 #

准备多个版本模板,客户端塞 cookie 标识用户,从灰度规则里判断当前用户应该返回哪个版本的

前后端分离 #

浏览器发请求,根据用户标识获取对应资源版本号

获取对应版本的资源后,再去渲染应用

缺点:较差的用户体验

优点:分散服务器的压力

架构层面 #

接口也需要做灰度

额外部署一个小规模的灰度集群,并通过流量控制,引入部分流量到灰度集群

蓝绿发布 #

理论上,灰度发布的需求都可以用蓝绿发布解决,而且可以更好地解决。

但是我们不能完全用蓝绿发布替代灰度发布,因为应用蓝绿发布期间两个集群同时在线,占用平时两倍的服务器资源,成本很高,而灰度发布只需要很小一部分服务器资源就可以验证大部分问题。

特性分支 #