热部署
2020-10-26 19:21:52 0 举报
热部署
作者其他创作
大纲/内容
蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。
3 成功
1.回滚时人工jenkins操作回滚
灰度发布
灰
server
马来新平台热部署计划 - 滚动发布拓展
取出一个或多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有服务都更新。
步
金丝雀
失败
jenkins手动回退
1.启动高版本server
基本流程
jenkins
拉取代码拉取基础镜像构建服务容器
定义
结果
new
A2
A3
build
4.失败回滚,再切回低版本
金丝雀发布
5.成功则删除旧版本或者保留
滚动发布
注册中心
优点
要求
1 推送A5
功能A B
功能A B C D
停止A1
内部用户
解决
A6
4 停止钩子事件
k8s Scheduler
order server
所有用户
骤
3.伸缩机制通过k8s实现
2.暂停若干时间后,再去真正删除A1服务,保证其它服务中已经不在缓存A1服务信息。暂停时间由jenkins传入,可根据不通环境,不同服务,不同场景设置,灵活运用。e't't'y'we'w
选择环境选择代码分支选择旧服务停留时间 5分钟
1.回滚难度较大,部署中断时不好处理2.服务兼容性要求高3.服务动态伸缩时带来的版本分辨问题4.老版本不能立即停止,需要处理完请求
5.逐步升级到其它服务器,并引流
A1
1.服务,db,接口兼容性
功能A B C
休眠
v1 server1
蓝绿发布
A5
v1 server2
2.将流量切换到高版本server
缺点
版本演进
不需双份的服务器资源
3.进行功能测试
2.金丝雀服务器发布版本
5.验证
A7
4.preview环境增加部署成功性
1.停止金丝雀服务器,流量迁走
v2 server1
1.基础设置资源至少双份2.新旧版本的兼容性要求更高,甚至多版本兼容3.微服务体系,单靠AB环境切换难实现部分灰度4.灰度策略无固定模式,流程实现难度大
蓝绿部署无需停机,并且风险较小新老版本同时在线,只要老版本不删除,可随时回滚
1.基础设置资源需要双份,如服务器的资源2.新旧版本的接口,数据库兼容性3.数据库回滚难度较大4.微服务体系,少量服务的发布也变得沉重
3.停掉旧版本服务
下线
4.成功,则运行一段时间
v2 server2
1.新功能发生问题,只影响少量用户,可调整至稳定。2.随着功能稳定,平滑调整用户量,直至灰度不在。3.条件允许,灰度可持续多版本灰度
1.添加新版本服务
稳定用户
push
1.将该服务从注册中心移除
5 停止服务
3.服务器资源适当扩大
功能A
proxy
2.服务器资源适当扩大
后期计划:优化滚动发布细节步骤,与灰度发布结合
2.旧版本服务断流运行一段时间
活跃用户
4.每一个实例依次替换
功能由Beta到稳定,由黑到白,能够平滑过渡的一种发布方式。动态调整不同的权重来进行新老版本的验证
2启动
3.引入部分流量,进行功能测试
2.采用休眠机制实现新老版本共存
0 条评论
回复 删除
下一页