写点什么

灰度发布在 UCloud 大规模虚拟网络中的应用

  • 2018-11-08
  • 本文字数:1386 字

    阅读完需:约 5 分钟

灰度发布在UCloud大规模虚拟网络中的应用

ServiceMesh 实现控制面灰度

在控制面,早期灰度发布采用 APIGW 的方式实现。APIGW 通常仅部署在用户流量的入口,完全灰度发布就需要完整地部署两套系统。但在微服务化的时代,任何一个微服务发生变更都需要完整地部署两套系统,这不仅成本高且严重影响产品变更速度。ServiceMesh 以类似于将 APIGateway 部署到本地,同时提供集中化控制的方式,完美地解决了这些问题。


UCloud 的轻量级 ServiceMesh 平台基于 Istio,继续使用 Envoy 代理,修改 Pilot 在保留完整的 DSL 支持的基础上实现了脱离 K8S 运行。


因此网络团队对 Pilot 做了高度订制,从而更能满足自身的需求。



  • 订制方案一:按账号灰度。在 GRPC 或者 HTTP 请求中添加⾃自定义 Header x-ucloud-routeby,x-ucloud-routeby 采用 Cookie 的编码格式,在其中包含账户信息,配置 Envoy 根据该 Header 进行策略路由。

  • 订制方案二:采用显式代理而不是 IPTables 透明引流的方式和 Envoy 集成,支持 HTTP 1.0、HTTP 2.0 和 gRPC。在配置了 Envoy 的 Proxy Port 情况下,通过 Envoy 接入 ServiceMesh;如果配置域名且没有配置 Envoy 的 Proxy,则自动采用 ETCD gRPC naming and discovery 的方式; 如果配置 IP 地址和端口,则直连指定地址;



  • 订制方案三:采用 docker-compose 管理 container 实现 sidecar。新方案中仍然采用 container 的方式打包和部署微服务,但采用 Host 的网络方式简化了现存服务的网络通信方式。通过采用 docker-compose 管理 container 实现 sidecar,实现了一个简单的服务管理、版本管理、集群管理、路由策略管理层,为集群中的每台 Node(VM 或物理服务器)生成 docker-compose 配置文件,从而部署和管理每台 Node 的服务。

可编程交换机实现转发面灰度

在转发面灰度的方案选择上,团队采用了可编程交换机(基于 Barefoot Tofino 芯片)来实现灰度网关,替换普通交换机实现强灰度能力。


灰度网关最大提供 64 个 100G 的接口提供 6.4T 带宽,PPS 性能可达 4400 兆,延迟为 us 级别,能够很好支持网络宽带的高性能要求。灰度网关可以提供:一致性哈希 ECMP 的能力;可以基于任意定制字段(包括内层虚拟网络地址以及租户 ID)计算哈希;在计算哈希前优先应用灰度规则,可以根据任意字段定制灰度规则,最小粒度可以做到按 TCP 流来灰度。


转发面灰度示例

有了上述这些新工具,可以通过部署新的策略实现更加细粒的灰度发布,具体方案为:可编程交换机 BGP 宣告集群 VIP 引流,根据选择字段计算一致性哈希后将流量量分发给后端服务器,并按照选择字段(VNI、源地址、目的地址)配置灰度规则。


灰度步骤如下:


  • 按 VM 的粒度将流量量切换到灰度后端服务器;

  • 切换完成后立刻自动回归测试,根据路由表自动生成监测地址列表,并 Ping 检测网络互通性;

  • 测试通过则逐步增加灰度的 VM 地址;

  • 直到整个 VPC 的流量量全部切换到灰度后端服务器;

  • 再切换一个新的 VPC,直到所有分片内的 VPC 都切换到新的灰度后端服务器;

  • 完成灰度发布。


以上内容首次发表于 UCloud Tech Talk 活动,第二期将于 11 月 16 日在上海举办,报名以及更多信息请访问:https://www.bagevent.com/event/2007613


作者简介


徐亮,现任 UCloud 虚拟网络平台部负责人,公司首位 5 级技术专家。曾任职于上海贝尔、腾讯,有十几年电信与互联网行业研发管理经验。加入 UCloud 后主要负责包括可用区、VPC 在内的云平台虚拟网络架构工作,设计、开发过多个虚拟网络 DPDK 网关。



2018-11-08 14:111979

评论

发布
暂无评论
发现更多内容

Arthas sysprop(查看和修改JVM的系统属性)

刘大猫

JVM 监控 Arthas 监控工具 sysprop

楼宇大堂数字LED显示屏定制指南

Dylan

商业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

Centos或Linux编写一键式Shell脚本删除用户、组指导手册

刘大猫

人工智能 Linux centos Shell shell脚本

长连接网关技术专题(十二):大模型时代多模型AI网关的架构设计与实现

JackJiang

网络编程 IM 即时通讯IM

Dell UnityVSA 5.5 - 敏捷的软件定义存储

sysin

Unity

全面解析 Coco AI,一款开源、免费的智能搜索与知识库工具

极限实验室

直播 CocoAI

Arista EOS 4.34.0F - 适用于下一代数据中心和云网络的可扩展操作系统

sysin

Arista

模型并行之Embedding表

永荣带你玩转昇腾

PyTorch 实现FCN网络用于图像语义分割

永荣带你玩转昇腾

Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析

sysin

Arista

StarWind Virtual SAN (VSAN) 8.0.0 - 软件 SAN 解决方案

sysin

VSAN

必看!手把手教你玩转Dify的3大核心工具!

王磊

京东探索研究院大模型成果登上Nature

京东零售技术

Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理

sysin

Infoblox

C#线程池核心技术:从原理到高效调优的实用指南

量贩潮汐·WholesaleTide

C#

测试技艺 | AI 赋能 GUI 自动化测试的挑战

技艺的尾巴

人工智能 自动化测试 GUI

基于Pytorch 在昇腾上实现GCN图神经网络

永荣带你玩转昇腾

鸿蒙开发实现图片上传(上传用户头像)

星河特战队员

社交 DevEco Studio 鸿蒙开发 harmoyos

AppAgentx 开源AI手机操控使用分享

溪抱鱼

android AI 自动化测试

Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台

sysin

漏洞利用

Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统

sysin

Arista

Arista vEOS 4.30.10M - 虚拟化的数据中心和云网络可扩展操作系统

sysin

Arista

Fastrace:Rust 中分布式追踪的现代化方案

观测云

分布式链路追踪

香港通过《稳定币条例草案》,京东币链科技解读 「里程碑时刻」

TechubNews

京东稳定币 稳定币条例草案 香港稳定币草案

Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)

刘大猫

监控 Arthas 监控工具 heap heapdump

上线 3 天破 500 星,TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人丨社区来稿

声网

中文大模型幻觉测评:豆包大模型准确率全球第一,超越DeepSeek-R1、Gemini-2.5、GPT-4o

新消费日报

微软 Azure 发布 Voice Live API,自带音频处理可自选模型;空间语音翻译:保持环境中说话人方向和声音特征丨日报

声网

常用的CTR领域经典机器模型介绍

永荣带你玩转昇腾

灰度发布在UCloud大规模虚拟网络中的应用_软件工程_徐亮_InfoQ精选文章