基于 Mesh 的统一路由在海外业务的实践

简介:本文主要介绍我们最近在利用 Service Mesh 架构解决海外业务问题中一些实践和价值探索。我们在海外业务引入 Mesh 架构过程中,充分利用 Istio 的基于 yaml 来描述和定义路由的抽象能力,制定了企业流量治理标准,并将集团海外业务发展多年的多种路由模块统一成使用 Mesh 的统一路由框架,且在今年双十一支撑了全量的海外业务。也希望通过我们的经验介绍,可以给其他还在探索如何落地 Mesh 的同仁一些参考。

作者 | 深简、天千

背景

Service Mesh 从 2016 年被提出来到现在,无论是应用探索,还是技术演进,都已经有了长足的发展,国内也有多家互联网大厂进行了 Mesh 化的落地实践。阿里巴巴做为早期在 Mesh 领域投入的厂家之一,在集团内部经历过技术验证,价值探索,规模落地,技术红利释放等阶段,期间解决了不少和阿里集团规模化相关的难题挑战,也见证了这一技术带来的革新变化:一方面阿里巴巴的服务和节点规模特别大,istio + envoy 方案难以支持如此大规模的服务,因为我们在性能优化上做了很多工作;另外在技术支撑体系上,阿里巴巴很多基础实施都是基于 Java 技术栈的,为了接入阿里巴巴相对较完善的技术体系,我们也花了很大的精力用 C++和 Golang 重写了很多内部的组件;在价值探索方面,我们在短期价值和长期价值上和业务方做了很多平衡和取舍。

本文主要介绍我们最近在利用 Service Mesh 架构解决海外业务问题中一些实践和价值探索。我们在海外业务引入 Mesh 架构过程中,充分利用 Istio 的基于 yaml 来描述和定义路由的抽象能力,制定了企业流量治理标准,并将集团海外业务发展多年的多种路由模块统一成使用 Mesh 的统一路由框架,且在今年双十一支撑了全量的海外业务。也希望通过我们的经验介绍,可以给其他还在探索如何落地 Mesh 的同仁一些参考。

海外业务的路由复杂性

在阿里巴巴集团,海外业务对于路由的要求远比国内业务更为复杂,因此海外业务团队基于现有微服务框架定制了很多路由能力,每一种路由能力都独立实现了一个模块,比如切流、容灾、演练、灰度等各种维度的流量调度,这样形成了很多独立的模块,使用方式也各不相同,如有的是通过配置调度,有的是修改代码调度等。维护这些模块的成本很高,路由方式不够灵活且粒度较大,基于这样的一个大背景我们开始在海外业务引入 Mesh,通过 Mesh 化的统一路由来解决这些业务痛点。

通过对业务抽象我们归纳出海外业务路由的三个基本过程:流量打标、集群归组、条件路由,可以简单描述为符合某些条件的流量,路由到对应集群下的某个组。这样问题本质就变成了如何划分集群节点组以及怎么识别符合条件的流量。对应到 Isito 就是 Virtual Service 和 Destination Rule。前者可以根据请求中的一些 header、上下文等条件来选择一个预先定义好的分组,而后者则是根据机器的 label 来划分组。路由模型有了,接下来就是将海外业务的各种路由模块映射到 Virtual Service 和 Destination Rule。但事实上的路由比我们预期的还要复杂,除了需要支持路由叠加,还需要有各种条件的 Fallback,最终就像一个大漏斗一样,每一个路由模块都要在上一个路由模块的基础上再根据自己的条件过滤出一批符合要求的节点。因此我们在 Istio 的基础上进行了改进,提出了 RouteChain 和 RouteGroup 的概念,一组 Virtual Service 和 Destination Rule 是一个 RouteGroup,用来定义一类路由,多个 RouteGroup 通过 RouteChain 进行任意编排形成一个大漏斗(如下图)。

在标准 Istio 实现上,Destination Rule 实际上是通过在控制平面根据一些 label 划分出一个组,然后给这个组创建一个集群再下发给 Envoy。如果一个集群要划分多个组,而且每个组之间会有一些相交那么实际上会导致下发给 Envoy 的节点膨胀,例如一个节点属于三个组,那么这个节点在 Envoy 内部会保存三份。在阿里巴巴内部节点数的规模一般都很大,叠加 Istio 这种归组方式就会导致 Envoy 内存膨胀,因此我们在内部也针对这种情况做了一个优化,将整个 Destination Rule 归组的逻辑进行了下沉,由 Envoy 在集群内部自己来完成归组。整套方案和 Envoy 社区的 Subset LoadBalancer 机制很类似,节点只存放一份,每一个归组实际上只是一组指向节点的指针。通过这样的方式最后我们成功将海外业务的所有路由都成功映射到我们的这套统一路由的方案中。

分层构建统一流量调度

对于业务方来说,始终关注的是路由功能和场景,例如灰度场景、切流场景等;而 Mesh 底层提供的是一个个路由原子能力,可以将一个集群按照机器分组、按照地域、按照环境等等分组,可以根据请求中的 header、上下文等信息进行路由到某个分组。这两者之间存在一个 gap:如何使用 Mesh 提供的路由原子能力,构建出有业务语义的调度场景。为此我们和业务方一起实施了基于分层的统一流量调度方案,整个方案分成了三层:最底层是提供原子路由能力的 Mesh 化底座,包括 RouteGroup、RouteChain 等基本的原子路由能力;中间一层则是具有平台属性的产品能力,封装了 Mesh 提供的底层原子能力,针对业务场景提供定制化的标准模型,可以定义路由策略,编排路由组合等;最上面一层则是具有业务属性的一个个流量调度场景。整个统一流量调度的架构如下:

通过这套统一流量调度方案使得整个海外的路由都收敛到一个平台上,并且后续新增路由场景都可以做到不需要代码变更就可以完成,切流的粒度也可以做到服务粒度。相比于之前只能做到应用维度,粒度更细,效率更高。

路由可视化

除了价值探索之外,我们在 Mesh 化过程中也解决了许多工程实践问题,例如Mesh路由过程可视化就是其中一个例子。在引入 Mesh 之前,业务方的路由问题都是由各个功能团队解决,而 Mesh 化之后,所以路由维护的责任都转移到了 Mesh 团队,这样 Mesh 团队答疑和问题排查的工作量变得很大,再加上海外业务路由可叠加与自由编排的属性,如何确保路由配置符合预期也是一件非常耗时的事。为了解决这个问题,我们开发了路由仿真平台,通过该平台可以对线上流量进行镜像、解析和回放并生成选路过程记录,最终再返回给路由平台,通过这样的一个闭环仿真过程,内部经过了哪些 RouteGroup,匹配到了哪个路由分组,最后选择了哪台机器都在一个选路图上呈现,路由过程直接图形化。

例如有如下路由请求:

通过仿真平台模拟,可以得到与线上选路完全一致的路由执行图,选路过程和结果都一目了然,效果如下:

结束语

通过落地业务增量价值,与业务方共同探索和解决 Mesh 化进程中的各种问题,从而共同成长,这给规模化落地 Service Mesh 提供了可行的推广路径。目前我们已经围绕 Service Mesh 构建了完善的产品体系,除了支持阿里集团内部大量电商业务,也在开源和云上进行了多项能力输出;未来,我们会持续在价值探索、落地路径、流量治理标准、高性能服务网格等方面持续投入,并及时将阿里巴巴在 Mesh 领域所积累的经验与业界共享,在构建这一面向未来的新技术的道路上,期待看到 Service Mesh 百花齐放的盛况。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国RISC-V机遇与变革下,赛昉科技发布两款高性能新品

8月23日,专注于RISC-V芯片研发的赛昉科技举办2022新产品发布会,发布两款重磅新品:全球首款量产高性能RISC-V多媒体处理器——昉惊鸿7110(JH7110),和全球性能最高的量产RISC-V单板计算机——昉星光 2&#x…

小米电商 Apache Dubbo-go 微服务实践

简介:2021 年是小米中国区电商部门变动调整较大的一年,小米中国区早期电商、服务体系建立在 Go 语言构建的微服务体系之上,由内部自研的 Go 语言微服务框架 koala 支撑起数以千计的微服务应用。随着业务的发展,新零售体系的成立以…

RocketMQ 端云一体化设计与实践

简介:本文首先介绍了端云消息场景一体化的背景,然后重点分析了终端消息场景特点,以及终端消息场景支撑模型,最后对架构和存储内核进行了阐述。我们期望基于 RocketMQ 统一内核一体化支持终端和服务端不同场景的消息接入目标&#…

计算机死机的时候,它在干什么?

作者 | 轩辕之风来源 | 编程技术宇宙今天花几分钟跟大家分享一个很有意思又能涨知识的问题:电脑死机的时候到底在干什么?电脑死机,应该每个接触计算机的小伙伴都经历过吧。尤其是早些年,电脑配置还没现在这么高的时候,…

交付铁三角的故事之兵戎相见

简介:大家好,交付铁三角带着全新的故事来啦!一直被应用交付难题所困扰的他们这次又遇到了新的难题,售前大佬的一句客户资源规划缘何让开发铁子暴怒,交付小锤的劝架为何致使自己的交付团队陷入这场漩涡之中,…

一位“老程序员”的反思:C、Python、Java 不可兼得,专心学好一门编程语言就行!...

摘要:大多数程序员在其职业生涯中,接触到的编程语言不止一种,但主要掌握并运用的多数只有一门。那么在数量繁多、适用领域各不相同的编程语言中,哪一门更适合你来学习呢?“老程序员”Eleanor Berger 总结了这些年来他对…

高效使用Java构建工具|Maven篇|云效工程师指北

简介:高效使用Java构建工具|Maven篇。众所周知,当前最主流的Java构建工具为Maven/Gradle/Bazel,针对每一个工具,我将分别从日常工作中常见的场景问题切入,例如依赖管理、构建加速、灵活开发、高效迁移等&am…

布局云与边缘之后,Akamai 为何加码安全领域

作者 | 宋慧 出品 | CSDN 云计算 随着云的深入和普及,云上的安全也变得愈加重要。CSDN 系列技术直播栏目《大咖来了》就曾重点讨论 云上安全的攻防之道 ,以及云原生的安全发展。 最近,发明 CDN 技术的资深技术厂商 Akamai,继增强…

Dubbo-go 服务代理模型

简介:HSF 是阿里集团 RPC/服务治理 领域的标杆,Go 语言又因为其高并发,云原生的特性,拥有广阔的发展前景和实践场景,服务代理模型只是一种落地场景,除此之外,还有更多的应用场景值得我们在研发的…

探索AI视觉技术新应用,夸克扫描王首推“离线模式”端侧AI算法提升隐私安全

手机扫描正在超越传统扫描仪,给大学生和职场人带来更高效、更便捷的信息服务体验。 在基于手机相机功能的搜索行为中,大学生的学习场景占比超过一半。 手机扫描的“离线模式”,让夸克成为第一个将扫描AI算法上端的App。 各大高校开学在即&…

作业帮云原生降本增效实践之路

简介:目前,作业帮已经和阿里云有一个关于 AEP 的 tair 方案的结合,在新的一年希望我们有更大规模的落地。文章里讲得比较多的是关于降本做的一些技术改进,其实在降本增效这里面还有很大一块工作量是运营,成本运营我们也…

基于 Serverless 打造如 Windows 体验的个人专属家庭网盘

简介:虽然现在市面上有些网盘产品, 如果免费试用,或多或少都存在一些问题, 可以参考文章《2020 国内还能用的网盘推荐》。本文旨在使用较低成本打造一个 “个人专享的、无任何限速的、如 Windows 体验的私有云盘”。 作者 | 西流…

Apsara Stack 技术百科 | 数字化业务系统安全工程

简介:数字化平台已经与我们生活紧密结合,其用户规模庞大,一旦系统出现故障,势必会造成一定生活的不便。比如疫情时代,健康码已经成为人们出门必备的条件,一旦提供健康码服务平台出现故障,出行将…

支撑百万级传感器的延时队列

文/升哲科技 刘鹏 摘要:本文主要描述升哲科技在打造物联智慧城市平台过程中关于如何实现延时队列服务的技术选型经验、延时队列服务的架构设计以及延时队列的底层细节实现原理。 背景 升哲科技是一家物联网与人工智能领域的国家高新技术企业、独角兽企业。 要打…

深度解析|基于 eBPF 的 Kubernetes 一站式可观测性系统

简介:阿里云 Kubernetes 可观测性是一套针对 Kubernetes 集群开发的一站式可观测性产品。基于 Kubernetes 集群下的指标、应用链路、日志和事件,阿里云 Kubernetes 可观测性旨在为 IT 开发运维人员提供整体的可观测性方案。 作者:李煌东、炎…

系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术

简介:已有的应用若想使用RDMA技术改造成本高,那么有没有一种技术是不做任何改造就可以享受RDMA带来的性能优势? 文/龙蜥社区高性能网络SIG 引言 Shared Memory Communication over RDMA (SMC-R) 是一种基于 RDMA 技术、兼容 socket 接口的内…

技术引领未来, IDC TechScape中国数据安全发展路线图首发

2022年8月26日,IDC 2022 CSO全球网络安全峰会(中国站)在上海隆重开幕,会上首次发布《IDC TechScape:中国数据安全发展路线图,2022》。报告认为,帮助用户构建全方位数据安全治理体系将成为大趋势…

DataV 3D 平面地图 2.0 焕新上线

简介:DataV3月,3D平面地图2.0现已上线~ 3D 平面地图 2.0 现已上线~ 让我们来看看更新了哪些功能吧! 01 交互升级,省市区自由下钻 自带行政区域数据,无需配置: 甚至,可以通过「蓝图编辑器」实…

PolarDB-X 发布 2.1.0 版本,Paxos 开源

简介:2022年4月1号,PolarDB-X 正式开源X-Paxos,基于原生MySQL存储节点,提供Paxos三副本共识协议,可以做到金融级数据库的高可用和容灾能力,做到RPO0的生产级别可用性,可以满足同城三机房、两地三…

828成首个B2B企业节,华为联合3万生态伙伴助力中小企业数字化转型

中小企业既是市场的主体,也是保就业的主力军。截至2021年末,中小企业在全国企业中数量占比已超过99%,并贡献了80%的就业机会。 为助力中小企业创新发展,8月28日,华为联合3万家生态伙伴,共同发起了全国首个…