硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

灰度发布在 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:111946

评论

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

redigo连接池的源码分析

胡译胡说

Go redis 源码 源码分析 连接池

华为云分布式缓存服务DCS,它与开源Redis有哪些差异,快来一探究竟!

轶天下事

销售易史彦泽:六个点复盘中国 SaaS 的2023

B Impact

揭秘提升远程团队协作效率的秘密武器:这款在线白板工具不容错过!

彭宏豪95

远程办公 在线白板 办公软件 在线协同 在线协作

华为云应用中间件DCS系列 | Redis实现(视频直播)消息弹幕

YG科技

一次RPC请求过程

1412

c++ 开源 RPC workflow srpc

OpenTiny Vue 支持 Vue2.7 啦!

Kagol

开源 Vue 前端 UI组件库

开箱即用!教你如何正确使用华为云CodeArts Defect!

云计算 软件开发 华为云 缺陷管理

1024程序员节获奖名单公示~恭喜各位上榜同学

Openlab_cosmoplat

1024程序员节

WorkPlus平台级定制,让您完全掌控业务与生态

BeeWorks

Java性能优化权威指南-读书笔记(一)

xfgg

Java

华为云应用中间件DCS系列 | Redis实现(电商网站)秒杀抢购示例

YG科技

华为云OneAccess应用身份管理服务,认证授权双保驾,身份管理的选择关键

轶天下事

BDD模式的自动化测试初体验

QE_LAB

自动化测试 BDD 测试自动化工具

JNPF:让应用开发更简单、快捷

树上有只程序猿

开发平台 低代码平台 JNPF

Python 面向对象编程:类、对象、初始化和方法详解

小万哥

Python 程序员 软件 后端 开发

Linux cd命令:切换目录

芯动大师

恭喜!华为云通过中国信通院《API全生命周期管理能力评估》

YG科技

华为云应用中间件系列,Redis实现(电商游戏应用)排行榜示例

YG科技

华为云发布CodeArts Link研发工具集成服务,无缝联接生态释放创新潜力

轶天下事

全域Serverless+AI,华为云加速大模型应用开发

轶天下事

敏捷专题:下一代的飞机交付

DevOps和数字孪生

数字孪生 航空航天 仿真模拟

私有化部署的理想选择,WorkPlus成为企业微信、钉钉的完美替代方案

BeeWorks

WorkPlus打造安全专属的移动数字化航空母舰,助力企业全面掌控业务和生态

BeeWorks

鲨海狂潮,存力崛起

脑极体

存力

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