热部署
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 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 