软件|如何实现微服务的规模部署与批量发布?( 三 )
它的原理如下 。
1)Calico 将所有的 Node 主机变成了路由器 , 并将该 Node 主机上存在的所有网段信息都汇报给路由反射器(核心交换机) , 包括该主机上运行的 Pod 网络;
本文插图
图 4.21 通过 BGP 网络解决 K8S 集群内、外网络访问问题
2)配置核心交换机以路由反射器(Route Reflector)的角色与其他节点建立 BGP 邻居关系;
3)K8S 集群外的主机只要能连接到核心交换机 , 就可以获取抵达所有 Pod 地址的路由信息 。
2蓝绿发布
蓝绿发布是一种历史悠久的服务端应用发布模式 , 不仅适用于分布式应用或服务 , 而且也适用于大量的单体应用 , 它能有效缩短发布导致的业务中断时间 , 并且能够在发布版本出现问题时快速回退 。
蓝绿发布的核心思想是新旧两套服务共存 。 新系统的发布由于不涉及旧系统 , 自然不需要使用蓝绿发布 , 所以直接发布就行了 , 只有存量服务的升级才需要使用蓝绿发布 。 所以 , 准确地说 , 蓝绿发布主要应用于服务的升级 。
图 4.22 是蓝绿发布的示意图 , 蓝绿发布包含如下几个步骤 。
1)部署开始前 , 线上只有旧版本(蓝集群)的服务在运行 。
2)在线上部署服务的新版本(绿集群) , 并在线上进行充分测试 。
本文插图
图 4.22 蓝绿发布示意图
3)调整路由及负载均衡策略 , 将流量统一切换到新版本(绿集群) , 但旧服务(蓝集群)不下线 。 此时两套集群并存 , 只是旧集群没有流量 , 一旦新版本服务出现异常 , 通过调整路由及负载均衡策略 , 快速切换回旧版本(蓝集群) 。
4)新版本(绿集群)线上稳定运行无异常后 , 将旧版本服务(蓝集群)下线 , 发布结束 。
采用蓝绿发布模式 , 由于新旧两套服务集群并存 , 所以一旦发布过程出现异常 , 回滚速度会比较快 , 只要切流量即可 。 但这种发布模式在发布过程中 , 需要额外占用一套线上资源 。
3灰度发布
灰度发布是专门针对分布式、多节点的应用或服务的发布方式 , 和蓝绿发布不同 , 它不需要额外的资源 。 它利用现有服务集群 , 通过分批替换的方式将风险控制在可接受范围内 , 以减少发布后的质量风险 。
灰度发布目前也是互联网企业的主流发布模式 。 这些企业一般都构建了完善的灰度发布平台 , 利用该平台 , 运维人员可以在服务集群中设定发布批次 , 并同步将用户(流量)进行划分 , 根据功能、兼容性、并发和性能选定发布批次对应的用户(流量)范围 , 分批平滑发布 , 逐渐扩大范围 , 同时将选定的线上用户路由到新版本上 , 实时收集用户反馈来验证发布效果 , 以决定是继续发布还是回滚 。 图 4.23 就是典型的灰度发布过程 , 服务节点和用户流量同步进行阶梯切换 。
本文插图
图 4.23 典型的灰度发布过程
在灰度发布的用户选择上 , 除了考虑集群的负载 , 还可以根据实际需要灵活切分 , 一般会优先使用用户区域、用户级别、用户设备等属性 。 所有选择都通过灰度发布平台控制 , 灰度发布平台同时要和监控系统紧密结合 , 以对较长时段的发布过程进行全程监控 。
金丝雀测试
在灰度发布中 , 第一批(或前 N 批)发布的服务节点及被切流到该节点上的用户流量具有特殊意义 , 它们往往扮演了“先行者”的角色 , 大部分异常都能在第一批发布中被发现 。 由于第一批(前 N 批)发布的范围非常小(一般不超过 1%) , 影响范围有限 , 因此又把第一批(前 N 批)发布单独称为“金丝雀测试” 。
推荐阅读
- 模型|REVIT技巧!如何创建能量模型,实现能量优化
- 技术编程|如何利用数据库进行世界史研究
- 区块链|欧科云链任煜男做客西安广电电台节目,解读区块链如何赋能实体产业
- 苹果笔记本|如何让macbook合上时工作?解决苹果电脑合盖自动休眠问题-macw
- |如何分析“会员数据”,强化门店的竞争力?
- 数据|翼方健数解码隐私安全计算 实现数据“可用不可见”
- 拍照摄影|如何拍出赞爆朋友圈的自拍照?网红小姐姐公开拍照神器
- IOS系统|苹果免签封装如何实现?苹果免签封装会不会掉签?
- 帧数|帧数提升70% NV黑科技DLSS如何开启
- 拍照摄影|即将进入大学的新生想入手一台相机,该如何选?
