本文档讲述基于Rainbond实现微服务常见的三种发布方式,滚动发布,蓝绿发布及灰度发布的原理、思路、及具体方式。ios
Rainbond平台无状态应用滚动更新与有状态应用滚动更新区别:web
**无状态应用:**滚动更新时,首先会生成新的实例,新的实例启动后在后台运行,平台会使用健康监测机制去监听端口,判断新实例内应用是否运行正常,一旦监听到应用运行正常,就会上线新的应用,销毁旧的应用,以此完成滚动发布的流程。app
**有状态应用:**若是是非集群化的应用,生成新的实例前,旧的实例会中止运行,待新的实例更新完毕,旧的实例会被废除,若是是集群化的应用,没必要担忧服务会中断,能够进行分批次更新。以保障服务的运行。微服务
Rainbond平台滚动发布实践测试
这里以无状态应用为例3d
蓝绿部署是不停老版本,部署新版本而后进行测试,确认OK,将流量切到新版本,而后老版本同时也升级到新版本。blog
基于权重使用平台网关功能的蓝绿发布实践文档
Web服务 | 域名 | 权重 |
---|---|---|
Web V1 | www.test.com | 100 |
Web V2 | www.test.com | 0 |
此时查看流量已经转移到Web V2,蓝绿发布已经完成。
灰度发布是指在黑与白之间,可以平滑过渡的一种发布方式。灰度发布能够保证总体系统的稳定,在初始灰度的时候就能够发现、调整问题,以保证其影响度。
基于权重的灰度发布实践
从流量的维度进行控制,好比开始先 10%流量切换到新版本,后续逐步增长这个权重,在正常的状况下直到旧版权重较少到 0;即完成了灰度发布。
依然经过 应用网关 -> 访问策略添加如下两个HTTP访问策略:
Web服务 | 域名 | 权重 |
---|---|---|
Web V1 | www.test.com | 90 |
Web V2 | www.test.com | 10 |
根据须要逐步减小Web V1权重,增长Web V2权重,直到Web V1权重减小到0便可。
关于Rainbond的应用A/B测试操做方案请参阅 A/B测试实践