知方号

知方号

几种常用发布方式 平滑发布、灰度发布、蓝绿发布<市场分析模式有哪几种>

发布方式 1.平滑发布

在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问;保障服务一直可以持续使用

在单机模式下,启动多端口。如有

upstream myapp{ server 服务1:8080; //app1 server 服务2:8080; //app2 }

用负载均衡ngnix合理分配各个通道。可以通过修改ngnix配置先停止服务1,

upstream myapp{ server 服务1:8080 down; //app1 server 服务2:8080; //app2 }

这样Ngnix会将请求都发给服务2.

当服务1发布启动成功后用同样的步骤将服务2升级。这就是简单的平滑发布

可以使用nginx的宕机检测直接将服务1停止升级

设置代理超时为1秒,以便在某个应用停止时及时切换到另一个应用:server { listen 80; server_name localhost; location /{ proxy_pass http://myapp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 1; proxy_read_timeout 1; proxy_send_timeout 1; }}

优点:

可以快速高效平滑的完成版本更新迭代

可以确认保障新版本服务能正常运行

出现问题不会影响全网用户,适合大规模应用发布

缺点:

发布和回滚周期较长

如果生产故障需要运行一段时间后出现,当全部进程升级成功后。没有版本可以及时回退。可能会导致生产不可以用。所以接下来介绍一下灰度发布

2.灰度发布(金丝雀发布)

灰度发布似于平滑发布。但又有不一样的地方。

什么叫灰度:发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 ;

这样发布可以快速将服务全部回滚回旧的服务。避免生产大规模服务宕机

灰度是用上面那种发布方式先升级一部分主机,确认一段时间运行后没问题再逐步全部修改。

优点:

可以快速高效平滑的完成部分主机的版本更新迭代

可以长时间确认保障新版本服务能正常运行

缺点:

全部版本更新缓慢,热版本无法快速马上上线

3.蓝绿发布

设置2个服务集群,一个为绿环境一个为蓝绿环境。绿环境为正常的生产环境,蓝绿环境为生产测试环境。当蓝绿测试通过后。可以将大部分应用的负载均衡、反向代理、路由指向蓝环境。如果运行良好,就可以删除绿环境使用的资源。如果运行出现了问题,可以通过负载均衡器指向快速回滚到绿色环境。

优点:升级切换和回退比发布回滚迅速 缺点:成本较高,需要部署两套环境。如果新版本中基础服务出现问题,会瞬间影响全网用户;如果新版本有问题也会影响全网用户

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。