关于服务网格架构(ServiceMesh) - 1(草稿)
上个月(2019年11月19日),蚂蚁金服在北京举办的“巅峰洞见·聚焦金融新技术”发布会上重磅推出金融级分布式架构 SOFAStack 双模微服务平台。是将传统微服务与Service Mesh 技术深度融合金融级双模微服务平
图片台。在蚂蚁金服的分布式TA系统架构中,SOFAStack处于其通用组件层。如下图:
蚂蚁金服分布式系统架构示例SOFAStack:蚂蚁金服的通用服务组件包括:微服务框架、分布式事务、任务调度、消息队列、数据代理、链路跟踪等。并且以开源组件为主。
服务网格(ServiceMesh)技术概念的产生主要是为了帮助运营人员更好地管理基于微服务架构的程序。具体地讲就是为了解决微服务应用在网络层面的问题(如:服务发现、负载均衡、流量控制、服务监督可靠性、监控、路由等)。
什么是服务网格?
简单地说服务网格是一个用于处理服务间通信的基础设施层。它负责在有着复杂服务拓扑结构的云原生应用中实现可靠的请求传递。在实践中,服务网格常实现为一组轻量级网络代理。它们与应用程序部署在一起并且对应用程序透明。服务网格架构也被称作"二代微服务架构"。
应用场景及解决的问题
目前服务网格技术常被用于基于微服务架构的原生云用中。用于解决各微服务应用中通信基础组间的以下问题:
1)由于微服务应用的业务与通信基础组件耦合, 造成业务星迭代速度变慢;
2)因为各微服务应用中包括相同基础设置组件,造成升级沟通成本变大;
3)各微服务应用中基础通信采用不同编程语言实现后的通信成本变高。需要一套基础设施支持多语言开发;
4) 业务团队与基础团队需在物理上解耦合。
服务网格架构
以下为服务网格架构示例:
Service Mesh架构示例图产品实现
其具体实现主要为以下几个产品。在设计上都是基于sidecar(轻量级网格。指服务网格Proxy与业务组件部署在同一台物理机或虚拟机上)模式。
其中istio由于在功能、稳定性及社区支持上更成熟。所以也更受欢迎。
1) Linkerd
2016年开始的CNCF的官方项目。其1.x基于物理机或虚拟机节点。2.x版本基于k8s。
2) Istio
源于google、ibm、lyft的开源项目。2017年推出第一版。支持多平台。
3) Sofa Mesh
是由蚂蚁金服开发的服务网格的开源框架。相比istio框架,总体感觉其模仿了istio框架的架构设计。主要区别在于它将控制面板中的数据节点组件mixer放在各个数据面版中以解决单点的问题。另外将proxy组件用go语言实现。
金融行业广泛存在多厂商、多语言、转型成本高、安全要求高、运维难的多种痛点,而在云原生时代,金融级架构转型又面临新系统和老系统的双重问题。
"例如 Dubbo 或 Spring Cloud 这样基于 SDK 的传统微服务,对于金融机构有以下几个痛点。
第一,异构系统无法统一治理。企业内部有大量异构系统,语言多(Java、C++、Python、Go 等),框架多(Dubbo、Spring Cloud、SOFA 等),通信协议多(http、dubbo、hsf、sofa、私有协议),部署环境复杂(容器、虚机);更重要的是,已转维或采购的系统也不具备改造为分布式的可行性条件。因此针对这些异构系统,没有任何一种传统的分布式框架可以进行统一的监控和治理。
第二,分布式改造成本高。已有应用做分布式改造,基本需要重写整个应用,收益虽然高,成本同样高。即使完成了分布式改造,新的应用也已经上线了,如果后期分布式框架本身需要升级,也会迫使所有引用了 SDK 的应用需要重新打包编译部署,代价昂贵风险高。
第三,不管选择任何一种分布式框架,金融机构都面临着全面绑定这个框架的技术栈,无法满足金融机构自主可控的研发及运维要求。
针对金融机构的痛点,上个月蚂蚁金服正式发布了SOFAStack 双模微服务平台。新发布的 Service Mesh模式的服务平台基于 SDK 的 SOFA 微服务"可以和“基于 Sidecar 的 Service Mesh 微服务”实现下列目标:
互联互通:两个体系中的应用可以相互访问;
平滑迁移:应用可以在两个体系中迁移,对于调用该应用的其他应用,做到透明无感知;
异构演进:在互联互通和平滑迁移实现之后,我们就可以根据实际情况进行灵活的应用改造和架构演进。"
SOFAStack 双模微服务具备如下特性:
"1. 无侵入:无需修改业务即可引入 Service Mesh。
2. 多协议:同时支持 Dubbo、Spring Cloud、SOFA 框架及通信协议。
3. 跨平台:同时支持虚拟机和容器两种应用部署形态
4. 金融级:性能、稳定性经过蚂蚁金服双十一金融级场景大规模验证
5. 双模:同时支持传统微服务和 Service Mesh 两种模式。
对于已经使用 Dubbo、SpringCloud 的企业来说, SOFAStack 双模微服务更是提供了平滑迁移的方案,允许多个注册中心并存,帮助企业平稳过渡到金融云原生架构。"
4) Weibo Mesh
是由新浪开发的开源框架。与istio相比,其transport组件对应于istio的数据面板的envoy组件。其registry组件对应istio的控制面板的pilot组件。其filters组件对应于istio控制面板的mixer及ca组件。
参考
《蚂蚁金服重磅发布 SOFAStack 双模微服务平台》,蚂蚁金服科技
(未完。持续更新中……)