应用部署策略
所属分类 architecture
浏览量 1521
灰度发布机制
重建部署:版本A下线后版本B上线 ,服务的宕机时间依赖于应用下线和启动耗时。
滚动部署(滚动更新或者增量发布):版本B缓慢更新替代版本A
蓝绿部署:版本B并行与版本A发布,然后流量切换到版本B , 避免版本冲突问题,整个应用状态统一一次切换
金丝雀部署:版本B向一部分用户发布,然后完全放开 ,通常流量按比例分配
A/B部署布:版本B只向特定条件的用户发布
影子部署:版本B接受真实的流量请求,但是不产生响应
对于一些涉及核心业务的遗留系统的升级改造,为了确保万无一失,可使用影子部署,IT运维采用比较复杂的流量复制、回放和比对技术实现。
在升级新数据库是非常有用,使用影子流量来监控负载下的系统性能。
recreate
rolling update ( ramped)
blue / green
canary
A/B testing
shadow
考虑因素
宕机时间 资源占用 发布效率 回滚机制 流量控制 切换
滚动
rolling update
适用于有状态 譬如 mysql es 等存储
金丝雀部署
用于缺少足够测试,或者缺少可靠测试,或者对新版本的稳定性缺乏信心的场景
矿井中的金丝雀(canary in a coal mine ) 17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。
空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。
A/B测试
可在金丝雀部署方式上添加额外功能来实现
广泛用于测试特定功能的切换
流量分配策略
浏览器cookie
查询参数
地理位置
技术参数:浏览器版本、屏幕尺寸、操作系统等
语言
优点:
多个版本并行运行
完全控制流量分布
缺点:
需要智能负载均衡
对于给定的会话,很难定位问题,分布式跟踪是必须的
需求和预算
发布到开发或者模拟环境时,重建或者滚动部署是一个好选择。
当发布到生产环境时,滚动部署或者蓝绿部署通常是一个好选择,但是新平台的主流程测试是必须的。
蓝绿部署和影子部署对预算有更高的要求,因为需要双倍资源。
如果应用缺乏测试或者对软件的功能和稳定性影响缺乏信心,可以使用金丝雀部署或者AB测试或者影子发布。
如果业务需要根据地理位置、语言、操作系统或者浏览器特征等这样参数来给一些特定的用户测试,那么可以采用AB测试技术。
上一篇
下一篇
硬盘读写速度测试
lsof命令介绍
linux网络测速iperf
aerospike write-block-size 参数说明
kubernetes核心概念
为何Hashtable ConcurrentHashmap不允许key 和 value为null