“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 网关。



公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-11-08 14:111619

评论

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

训练营第三周作业

大脸猫

极客大学架构师训练营

JVM真香系列:.java文件到.class文件

田维常

JVM

诈骗?通证项目方的危局

CECBC

区块链 法律

http请求中get和post方法的区别

测试人生路

HTTP post GET

字节跳动HR:3年从4000人招到10万人,我经历了什么

Java架构师迁哥

HTTP2协议及websocket协议总结

江龙

训练营第三周总结

大脸猫

极客大学架构师训练营

NPC Follow

katichar

互联网审判中区块链存证技术的应用进路

CECBC

互联网 电子存证

“十三五”收官,区块链赋能能源电力路在何方?

CECBC

区块链 电力 能源

低代码开发不靠谱?看低代码开发在物联网APP开发中的应用

华为云开发者联盟

技术 软件开发 代码

华为发布5GtoB核心网建设白皮书

华为云开发者联盟

5G 边缘技术

阿里P8对Thread核心源码讲解

Java架构师迁哥

架構師訓練營第 1 期 - 第 07 周作業

Panda

架構師訓練營第 1 期

架构师训练营 -week07-作业

大刘

极客大学架构师训练营

LeetCode题解:231. 2的幂,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

ViewportFrame demo

katichar

Redis最常见的16道面试题与详解

Java架构师迁哥

MySQL中特别实用的几种SQL语句送给大家

陈哈哈

SQL优化 实用SQl语句 高性能SQL

LeetCode题解:231. 2的幂,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

快快使用ModelArts,零基础小白也能玩转AI!

华为云开发者联盟

人工智能 开发者 开发

蚂蚁金融推迟上市:互联网金融是否要遭遇滑铁卢

石头IT视角

线上Java程序占用 CPU 过高,请说一下排查方法?

古时的风筝

Java JVM cpu 100%

字节跳动大神亲自总结SpringBoot手册,让你可以在简历上写精通SpringBoot!

Java架构追梦

Java 架构 面试 微服务 springboot

从技术到应用实践 揭秘京东区块链布局全景

京东科技开发者

区块链 区块链方案 供应链

啥是数据库范式

Simon

MySQL 数据库 数据库设计

25个小众的Java库

GuoYaxiang

Java 开发工具

我去!三面字节竟全败在Redis上,带薪摸鱼刷1949页进阶笔记

996小迁

Java redis 架构 面试 程序人生

隐私计算S2赛季 谁是真正的王者?

hellompc

学习 隐私计算

谈谈敏捷开发概念和迭代开发方案

Philips

敏捷开发 快速开发

“软件教父”花费20年,教你如何在应用层混迹的风生水起

小Q

Java 学习 架构 面试 应用

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