商务网站规划与建设,淘宝指数查询,wordpress 使用,周口市建设局网站1.科学部署的意义
尽可能减少服务停机时间 控制新版本带来的质量风险
2.全量发布与增量发布 3.蓝绿发布
1.我有两个应用集群#xff0c;应用集群A与应用集群B#xff0c;这两个集群的版本都是v1.0#xff0c;现在使用蓝绿部署的方法进行升级上线 2.在网关中设置#xf…1.科学部署的意义
尽可能减少服务停机时间 控制新版本带来的质量风险
2.全量发布与增量发布 3.蓝绿发布
1.我有两个应用集群应用集群A与应用集群B这两个集群的版本都是v1.0现在使用蓝绿部署的方法进行升级上线 2.在网关中设置先断开应用集群A的连接 3.将应用集群A升级到V1.1 4.设置网关对应用集群A的连接 5.设置网关断开应用集群B的连接 6.升级应用集群B到v1.1 7.设置网关连接应用集群B
3.红黑发布
红黑发布针对的是一个集群 1.有一个应用集群Av1.0需要对其升级 2.搭建一个全新的应用集群B v1.1 3.设置网关连接应用集群B再断开应用集群A并释放应用集群A
5.蓝绿部署与红黑部署的对比
与蓝绿部署相比红黑部署可以充分利用了云计算的弹性伸缩优势从而获得了两个收益 1.简化了流程 2.避免了在升级的过程中 注意由于只有一半的服务器提供服务而可能导致的系统过载问题。
6.灰度发布
灰度发布也被叫作金丝雀发布。与蓝绿部署、红黑部署不同的是灰度发布属于增量发布方法。也就是说服务升级的过程中新旧版本会同时为用户提供服务。
6.1 灰度发布遇到的挑战
1.考虑数据库变更对旧版本的兼容性影响
例如某数据表有ab两个字段 程序猿小甲的SQL是 insert into t values(‘a’,’b’); 但v1.1版本中在数据表增加了c字段就版本运行就会报错 因此在考虑未来灰度发布的情况要求团队成员写SQL必须明确字段 insert into t(a,b) values(‘a’,’b’); TIPS:任何删除、更新字段信息的操作都要格外谨慎
对于新旧版本无法协同作业的情况 方案一 放弃灰度采用红黑方式全量发布 对于新旧版本无法协同作业的情况 方案二了解一下即可项目几乎不会考虑 可以考虑独立部署数据源进行迁移 为新旧版本分配独立的数据源 但新旧数据源之间数据同步会更考验架构师与DBA的智慧
3.灰度发布用户群的选择 不能直接采用类似于Nginx的权重Weight 会导致一个用户不同请求在新旧版本间反复横跳出现无法预期的Bug 解决方法利用Nginx Lua脚本化 基于IP或者UA等用户稳定特性然后Hash取模来决定访问新旧版本 Hash(192.168.31.102) % 10 7 #送给旧版本 Hash(192.168.31.108) % 10 9 #送给新版本
4.什么时候才可以提升分配比例 在发布过程中我们应该注意监测用户请求失败率、用户请求处理时长和异常出现数量这几个信息以保证快速发现问题并及时回滚。 在灰度发布的时候可以部署相对较小的集群让集群保持在高压力确认新版应用的性能情况之后再酌情进行扩容。 TIPS推荐了解下SkyWalking国产开源监控系统简单粗暴