上个月(2019年11月19日),蚂蚁金服在北京举办的“巅峰洞见·聚焦金融新技术”发布会上重磅推出金融级分布式架构 SOFAStack 双模微服务平台。是将传统微服务与Service Mesh 技术深度融合金融级双模微服务平台。
服务网格(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语言实现。
4) Weibo Mesh
是由新浪开发的开源框架。与istio相比,其transport组件对应于istio的数据面板的envoy组件。其registry组件对应istio的控制面板的pilot组件。其filters组件对应于istio控制面板的mixer及ca组件。
5. 蚂蚁金服的金融级分布式架构 SOFAStack 双模微服务平台
"基于 SDK 的 SOFA 微服务"可以和“基于 Sidecar 的 Service Mesh 微服务”实现下列目标:
互联互通:两个体系中的应用可以相互访问;
平滑迁移:应用可以在两个体系中迁移,对于调用该应用的其他应用,做到透明无感知;
异构演进:在互联互通和平滑迁移实现之后,我们就可以根据实际情况进行灵活的应用改造和架构演进。
(未完。持续更新中……)
网友评论