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生态的良性发展。

蚂蚁金服缘何自研Service Mesh?相关推荐

  1. 蚂蚁金服的 Service Mesh 演进之道?

    蚂蚁金服在服务化上面已经经过多年的沉淀,支撑了每年双十一的高峰峰值.Service Mesh 作为微服务的一个新方向,在最近两年成为领域的一个大热点,但是如何从经典服务化架构往 Service Mes ...

  2. 干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的?

    小蚂蚁说: 蚂蚁金服在服务化上面已经经过多年的沉淀,支撑了每年双十一的高峰峰值.Service Mesh 作为微服务的一个新方向,在最近两年成为领域的一个大热点,但是如何从经典服务化架构往 Servi ...

  3. 蚂蚁金服 Service Mesh 深度实践

    点击上方"程序猿技术大咖",选择"关注公众号",一起共进步! 2019 年,蚂蚁金服在 Service Mesh 领域继续高歌猛进,进入大规模落地的深水区.本文 ...

  4. 诗和远方:蚂蚁金服 Service Mesh 深度实践 | QCon 实录

    敖小剑,蚂蚁金服高级技术专家,十七年软件开发经验,微服务专家,Service Mesh 布道师,ServiceMesher 社区联合创始人.专注于基础架构和中间件,Cloud Native 拥护者,敏 ...

  5. 蚂蚁金服是如何实现经典服务化架构向Service Mesh方向演进的?

    蚂蚁金服在服务化上面已经经过多年的沉淀,支撑了每年双十一的高峰峰值.Service Mesh 作为微服务的一个新方向,在最近两年成为领域的一个大热点,但是如何从经典服务化架构往 Service Mes ...

  6. 从网络接入层到 Service Mesh,蚂蚁金服网络代理的演进之路

    详细阅读本文大约需要15分钟,先花150s听听是否对本文感兴趣吧~ 本文作者:肖涵(涵畅) 上篇文章<诗和远方:蚂蚁金服 Service Mesh 深度实践 | QCon 实录>中,介绍了 ...

  7. 蚂蚁金服在 Service Mesh 监控落地经验分享

    1  引言 Service Mesh 是目前社区最为炙手可热的技术方向,去年双11在蚂蚁金服得到全面的应用,并平稳顺滑的支撑了大促服务.作为目前规模最大的 Service Mesh 集群,本文从监控的 ...

  8. getaway网关转发去前缀_蚂蚁金服 Service Mesh 大规模落地系列 - 网关篇

    本文为<蚂蚁金服 Service Mesh 大规模落地系列>第五篇 - 网关篇,该系列将会从核心.RPC.消息.无线网关.控制面.安全.运维.测试等模块对 Service Mesh 双十一 ...

  9. 蚂蚁金服冯柯:下一个十年,核心自研技术将迎来黄金发展期

    [摘要: 本文根据冯柯老师在2018年5月10日[第九届中国数据库技术大会]现场演讲内容整理而成. 正文: 今天想和大家聊聊蚂蚁金服和自研技术.说到蚂蚁金服,大家很容易联想到中国新四大发明之一的支付宝 ...

最新文章

  1. ARM 发布新一代 GPU 架构,还有一个机器学习处理器
  2. easyui datagrid 多行删除问题
  3. 英特尔软件学院与中国一起迎接2008
  4. 以太坊智能合约Hello World示例程序
  5. 启动mysql 1067_启动mysql遇到1067问题
  6. 七种寻址方式(32位地址的寻址方式)
  7. 李嘉诚无锡演讲:骂到你成功
  8. oracle 10g SQL* Plus主机字符串
  9. 错误的日志可能会导致疯狂;好日志可能会成为魔杖
  10. Given two binary trees, write a function to check if they areequal or not.
  11. 小程序中 wx.navigateTo 页面跳转没有反应?
  12. Visual Studio 2019 Community 离线注册教程
  13. c语言中isupper用法,isupper - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  14. RdViewer(远程控制电脑屏幕软件)官方中文版V3.3.1 | rd远程工具下载
  15. Matlab Coder优缺点、使用介绍、使用注意
  16. mysql数据库表关联和django_django 数据库表关联
  17. lol服务器维护局,lol维护局 英雄联盟钻石维护局掉多少分
  18. 健身运动App需求分析
  19. Python Revisited Day 03 (组合数据类型)
  20. 音频编码和视频编码基础

热门文章

  1. 日本流行语------收录
  2. 宜青春 信未来,用科技创新拓宽金融科技的护城河
  3. ant app 心电监测_电话传输心电图监测在心血管疾病及远程医疗中的应用
  4. 【​观察】POWER9,一个全面开创AI时代的芯片来了!
  5. 关于系统分析师的考试感想
  6. 二级分销系统平台软件开发
  7. LeCo-1482.制作 m 束花所需的最少天数
  8. Air Jordan 32 Performance Review
  9. 中国云计算市场排名_中国云计算市场排名第一
  10. 关于微信开发者没有上传按钮的问题