service phone

400-123-4657

第一系列

service phone 400-123-4657

“安博体育”为什么Service Mesh可以统一微服务的世界?看完你懂了吗?

点击量:692    时间:2023-12-11

本文摘要:作为下一代微服务技术的代名词,羽翼未丰的Service Mesh有统一微服务时代的大趋势。

作为下一代微服务技术的代名词,羽翼未丰的Service Mesh有统一微服务时代的大趋势。那么到底什么是Service Mesh呢?总之,服务网格是微服务时代的TCP协议。有了这样一种对开始的感性认识,让我们来看看什么是服务网格。

说到Service Mesh,不得不提微服务。根据维基百科的定义,微服务(Microservices)是一种软件架构风格,它基于关注单一责任和功效的小构件(Small Building Blocks),以模块化的方式结合了巨大的大规模应用方法。每个功能块使用独立于语言/语言不可知的API集来相互通信。行业内与微服务相关的开发平台和框架数不胜数:Spring Cloud、Service Fabric、Linkerd、Invite、Istio……这些数不胜数的产品和Sevice Mesh有什么关系?哪些领域属于服务网格?为了澄清这些复杂的产品和观点,让我们首先了解微服务和服务网格技术的历史发展。

清楚的了解技术的主上下文,就可以清楚的知道上述平台和框架属于技术上下文中的哪个节点,它们之间的关系也就一目了然了。Phil calado的文章《Pattern: Service Mesh》首先从开发者的角度详细描述了服务开发模式和服务网格技术的演变,被视为学习服务网格的经典素材。借用文章的脉络,本文结合自己的理解,对其进行简化,试图阐明ServiceMesh的观点和这一技术诞生的历史必然性。年龄0:在开发者的想象中,不同服务之间的沟通方式抽象地表达为:年龄1:最初的沟通年龄,然而现实远远大于想象。

实际上,通信需要底层能够传输字节码和电子信号的物理层。在TCP协议出现之前,服务需要处理和惩罚网络通信面临的丢包、乱序、重试等一系列流量控制问题。所以在服务实现中,除了业务逻辑,还有网络传输问题的处理。时代TCP时代,为了停止每一项服务,需要实施一套类似的网络传输处置惩罚逻辑。

TCP协议的出现,解决了网络传输中一般的流量控制问题,下移了技术栈,成为操作系统网络层的一部分。时代3:第一代微服务出现TCP后,机器之间的网络通信不再是难题,以GFS/BigTable/MapReduce为代表的扩散系统蓬勃发展。这时,扩散系统特有的通信语义再次出现,如融合方案、负载均衡、服务发现、认证授权、配额限制、跟踪监控等。

所以服务根据业务需求实现了部门所需的通信语义。时代4:为了停止每一个服务,第二代微服务需要实现一个扩散系统通信的语义功能。随着技术的发展,出现了一些微服务架构的开发框架,如Twitter的Finagle、Facebook的Proxygen和Spring Cloud等。

这些框架实现了扩散系统通信所需的负载均衡、服务发现等各种通用语义功能,因此这些通信细节得到了一定程度的屏蔽,开发者可以用较少的框架代码开发出健壮的扩散系统。年龄5:第一代的Service Mesh和第二代的微服务模型看似完美,但开发者很快发现它也存在一些本质问题:第一,虽然框架本身屏蔽了一些扩散系统通信的一般效率实现细节,但是开发者要花更多的精力去掌握和管理庞大的框架本身。

在实际应用中,跟踪利益争议框架产生的问题并不容易;第二,开发框架通常只支持一种或几种特定的语言。回顾一下文章开头微服务的定义,一个重要的特性是语言独立性,但是那些用框架不支持的语言编写的服务很难集成到面向微服务的体系结构中。

架构系统中的差异模块也很难根据当地情况用多种语言实现;再次,框架以lib库的形式与服务相结合,在大型项目依赖的情况下,很难与库版本兼容。同时,框架库的升级不能对服务透明,服务会因为与业务无关的lib库升级而被迫升级。于是产生了以Linkerd、invite、Ngixmesh为代表的代理模式(sidecar模式),这是第一代的Service Mesh,将分散服务的通信抽象为单一的、唯一的一层,实现了分布式系统所需的负载均衡、服务发现、认证授权、监控跟踪、流量控制等功能。

作为等同于服务的代理服务,它与服务一起被部署以接收服务流。如果从全局的角度来看,我们会得到如下的部署图:如果暂时忽略服务,只看Service Mesh的单机组件组成的网络:相信现在大家都已经明白什么叫做Service Mesh了,也就是服务网格。它看起来真的像一个由几个服务代理组成的复杂网格。年龄6:第二代服务网格第一代服务网格由一系列独立运行的独立代理服务组成。

为了提供统一的上层操作和维护门户,已经发展了集中控制面板。所有独立动作组件都与控制面板交互,以更新网络拓扑并报告独立数据。

这是以Istio为代表的第二代服务网格。Service Mesh的全局部署视图,只看单机动作组件(数据面板)和控制面板,如下:到目前为止,我们已经见证了六次的变化,必须确切知道Service Mesh是什么技术,它是如何一步步演进到今天这样一个形态。现在,我们再回过头来看Buoyant的CEO William Morgan,也就是Service Mesh这个词的发现人,对Service Mesh的界说:服务网格是一个基础设施层,用于处置惩罚服务间通信。

云原生应用有着庞大的服务拓扑,服务网格保证请求在这些拓扑中可靠地穿梭。在实际应用当中,服务网格通常是由一系列轻量级的网络署理组成的,它们与应用法式部署在一起,但对应用法式透明。

这个界说中,有四个关键词: 基础设施层+请求在这些拓扑中可靠穿梭:这两个词加起来形貌了Service Mesh的定位和功效,是不是似曾相识?没错,你一定想到了TCP; 网络署理:这形貌了Service Mesh的实现形态; 对应用透明:这形貌了Service Mesh的关键特点,正是由于这个特点,Service Mesh能够解决以Spring Cloud为代表的第二代微服务框架所面临的三个本质问题。总结一下,Service Mesh具有如下优点: 屏蔽漫衍式系统通信的庞大性(负载平衡、服务发现、认证授权、监控追踪、流量控制等等),服务只用关注业务逻辑; 真正的语言无关,服务可以用任何语言编写,只需和Service Mesh通信即可; 对应用透明,Service Mesh组件可以单独升级。

固然,Service Mesh现在也面临一些挑战: Service Mesh组件以署理模式盘算并转发请求,一定水平上会降低通信系统性能,并增加系统资源开销; Service Mesh组件接受了网络流量,因此服务的整体稳定性依赖于Service Mesh,同时分外引入的大量Service Mesh服务实例的运维和治理也是一个挑战;历史总是惊人的相似。为相识决端到端的字节码通信问题,TCP协议降生,让多机通信变得简朴可靠;微服务时代,Service Mesh 应运而生,屏蔽了漫衍式系统的诸多庞大性,让开发者可以回归业务,聚焦真正的价值。如果本篇文章对您有资助,请关注+转发,谢谢您的支持哦!。


本文关键词:安博体育

本文来源:安博体育-www.warriorsforwilliam.com

地址:云南省保山市龙马潭区傲算大楼62号     座机:400-123-4657    手机:15606447544
版权所有:Copyright © 2007-2023 www.warriorsforwilliam.com. 安博体育科技 版权所有    ICP备案编号:ICP备82022930号-9