蚂蚁金服缘何自研Service Mesh?

2018-06-13 10:58:00 作者:zhanggl 出处 : 比特网

  2018年,微服务方兴未艾,Service Mesh(服务网格)又快速崛起。有观点认为,2018年可被称之为“Service Mesh元年”,在未来两年中,Service Mesh将迎来爆发式增长,成为下一代的微服务架构。

  那么,Service Mesh到底是什么?自2016年被提出,为何不到两年就获得了如此高的人气?Service Mesh又能为企业解决哪些问题?在近日召开的GIAC全球互联网架构大会上,蚂蚁金服高级技术专家黄挺以蚂蚁金服的自身实践为例,深入解读了Service Mesh。

  蚂蚁金服高级技术专家黄挺

  解决蚂蚁金服三大难题

  “Service Mesh”最早由开发Linkerd的Buoyant公司提出,2016年9月第一次公开使用该名词。对于什么是Service Mesh,Linkerd首席执行官William Morgan曾经给出这样的解释:

  “服务网格是一个基础设施层,用于处理服务间通信原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传输。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。”

  这听起来还是有些抽象,黄挺用蚂蚁金服自身的例子,解读了Service Mesh的三个主要应用场景:

  其一,解决多语言通信的问题,用同一套基础设施解决不同的语言的通信问题。

  众所周知,SOFA 中间件(Scalable Open Financial Architecture)是蚂蚁金服自主研发的金融级分布式中间件,被蚂蚁金服广泛应用于支付、借贷、信用、基金、保险等全金融场景,支撑蚂蚁金服平稳度过历次“双11”、“双12”、“新春红包”等苛刻考验。

  如今SOFA包含丰富的组件,如SOFA Boot、微服务、数据访问代理、分布式事物、消息队列、分布式链路跟踪等,基本上包含了分布式架构所需的各种中间件。

  “然而有一个问题是,这些中间件都是用Java写的”,黄挺指出,当前蚂蚁金服技术栈大部分基于Java语言,包含2000+应用和20000+服务;但还有一部分应用是基于NodeJS、C++、Golang和Python语言,要把这些应用融入到SOFA体系,按照传统的方式,各种语言的客户端都需要再实现一遍,带来巨大的工作量,同时要承担大量风险。

  而通过Service Mesh中的Sidecar,服务注册中心、限流熔断、动态配置、故障注入等客户端可以和NodeJS、C++、Golang、Python等具体语言解绑,让基础中间件和具体的应用脱离关联,即“一次实现,搞定所有语言的客户端”,用一套基础设施解决不同语言的通信问题,大大节省了工作量。

  其二,解决遗留系统融入问题,让一些遗留系统更好的融入到云原生体系。

  很多传统企业,包括金融机构往往有着大量的遗留系统,随着传统企业云化的深入,这些遗留系统也需要转变为云原生应用。“一种方式是直接把系统代码重新做一遍,直接用云原生的方式再写一遍”,黄挺认为,这种方式虽然比较直接,但是也比较粗暴,有可能在迁移过程当中出现非常多的Bug。

  而有了Service Mesh之后,通过Sidecar,遗留系统不经改造,或是只需要很少的改造,可以非常方便的和云原生体系融合到一起。

  其三,解耦基础设施团队和应用研发团队,增强基础设施团队的交付能力和交付速度。

  近些年,蚂蚁金服的技术架构逐渐从单体应用向服务化架构演进。据黄挺介绍,在单体应用中,通常需要多个团队去改同一套代码,一起部署、一起发布,以及发现问题一起回滚,这个过程非常痛苦。

  “应用研发有时候无法很好的理解基础设施的东西,升级容易出现问题。基础设施团队有时候也无法很好地去了解应用研发。应用研发和基础设施团队耦合在一起发布、变更、升级,非常容易出现问题”,黄挺说。

  Service Mesh让蚂蚁金服找到了解决问题的方法,通过Service Mesh,应用研发和基础设施团队能够最大程度地解耦,做厚技术中台,让中间件可以更快的交付业务需要的能力。

  黄挺举例说,以前SOFARPC中新的能力需要半年甚至一年的时间才能逐步应用于蚂蚁金服核心系统,有了SOFA Mesh(蚂蚁金服自研的Service Mesh),蚂蚁金服可以在一个月的时间内将新的能力快速地提供给所有的业务系统,而不用一个个的去升级业务系统。

  蚂蚁金服SOFA Mesh自研路

  Service Mesh是一个很新的框架,2016年1月 15日,Linkerd 0.0.7版本发布,这是能够在Github上看到的第一个Service Mesh。如今,业界流行的Service Mesh框架已经包括Linkerd、Istio和Conduit等。

  据黄挺介绍,蚂蚁金服在考量业界主流Service Mesh框架的时候,有着两个明确的需求:其一,能否从蚂蚁金服当前的架构下渐进式地演进到Service Mesh架构之下;其二,在性能和稳定性上能否满足蚂蚁金服金融级以及高流量的要求。

  经过大规模的验证,当前业界主流的Service Mesh并不能很好地满足蚂蚁金服这两个需求。例如,Istio在性能上存有缺陷,无法满足蚂蚁金服高流量和高性能的需求;Linkerd架构不够开放,资源占用率较高;Conduit当前版本还不够成熟,并且基于非常新的RUST语言,精通的人较少。

  现有Service Mesh架构均不能满足需求,而蚂蚁金服在传统服务化架构上已经有十余年积累,这两个因素让蚂蚁金服选择自研Service Mesh——SOFA Mesh

  但“自研”并不代表一定要“从零开始”。“我们没有从零开始直接构建一个Service Mesh框架,而是借鉴了一些现有Service Mesh框架的优秀经验,同时尽量遵从整个Service Mesh社区的规范”,黄挺表示,例如,在Control Plane的Pilot以及Auth,SOFA Mesh直接选择了集成Istio的部分,并且进行了适当地增强。

  “SOFA Mesh一切的技术选择都是能够让蚂蚁金服稳定、高效、渐进式地演进到 Serivce Mesh 架构下,因此SOFA Mesh在技术上的选择更加务实,也希望能够和业界保持技术上的互通”,黄挺强调。

  尽管不是从零开始构建,但SOFA Mesh的开发过程也并不简单。

  黄挺回忆说,SOFA Mesh自研过程中最大的困难是第一次上线时候的进度压力,因为当时有着切实的业务需求:“当时的一个场景需要用C++去调用后端一个用SOFA写的Java系统,为了满足业务上的要求,我们集结了应用网络和中间件团队,组成了技术攻坚团队,最终花了差不多两个月的时间从零开始构建了SOFA Mesh Golang版本的Sidecar,并且对接到SOFA服务化体系下,最终保证了业务的正常上线,在性能以及稳定性上都满足了业务的需求。”

  经过蚂蚁金服业务场景的不断磨练,SOFA Mesh如今已经在蚂蚁金服多个场景中落地。据黄挺介绍,SOFA Mesh在蚂蚁金服内部更多的被应用于多语言支持,亦被应用于解决内部服务调用的安全以及在能力发布上的问题,此外也在规划解决异构体系的通信问题,在蚂蚁金服业务中发挥着越来越关键的作用。

  Mesh的未来——Xmesh

  作为一个新兴的技术框架,Service Mesh从2016年被提出来,去年迎来了蓬勃发展。不仅是蚂蚁金服,谷歌IBM华为等业界巨头已经参与到Service Mesh的研发之中,国内多家互联网和云计算企业也开始在Service Mesh进行验证和投入。

  黄挺认为,2018年,随着云原生理念的进一步地被传播,以及 Kubernetes 等容器编排平台被更多的公司所采纳,Service Mesh 也必将在今年有更好蓬勃地发展。

  “我们预计今年会有更多的公司在内部去实践Service Mesh,也非常期待在业界能够听到更多公司的Service Mesh的实践。从形态上,除了Service Mesh,也会逐步出现其他形式的Mesh,比如Message Mesh或者DB Mesh等等”,对于Service Mesh的未来,黄挺十分乐观。

  而对于蚂蚁金服来说,其自研的SOFA Mesh会继续在内部更多场景下落地,用更多的场景去“磨练”SOFA Mesh。“未来我们也不排除在服务调用上之外的场景做 Mesh,在数据访问、消息通信上也用上Mesh的场景,以达到在基础设施上更加统一的目的”黄挺说。

  据黄挺透露,蚂蚁金服目前也正在紧锣密鼓地准备SOFA Mesh的开源。SOFA Mesh的诞生结合了业界的先进理念和经验,而蚂蚁金服也希望将SOFA Mesh的成果反馈给社区,推动SOFA Mesh生态的良性发展。

* 本文为ChinaByte比特网原创内容,版权所有,转载请注明出处和原文链接,未经授权请勿用于商业用途。

最近更新
科普

科普图集
从《中国互联网+指数报告(2018)》看数字经济

从《中国互联网+指数报告(2018)》看数字经济>>详情

“互联网+”的这些新变化,你知道吗?

“互联网+”的这些新变化,你知道吗?>>详情

邮件订阅

软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
网络周刊
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
存储周刊
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
安全周刊
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家网
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。