`
frank1998819
  • 浏览: 752085 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Service Mesh服务网格:是什么和为什么(转)

 
阅读更多

Service Mesh(服务网格)会是今年微服务生态的主角吗?从趋势来看,众多企业正在将这项理微服务复杂性的技术/工具,搬进他们的IT“火药库”之中。

什么是Service Mesh?

根据Linkerd CEO William Morgan定义,Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,Service Mesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。

Service Mesh与传统基础设施层不同之处在于,它形成了一个分布式的互连代理网络,以sidecar形式部署在服务两侧,服务对于代理无感知,且服务间所有通信都由代理进行路由。

为什么需要Service Mesh?

“Smart endpoint and dumb pipes”是微服务架构在集成服务时采用的一个核心理念,这一理念改变了过去臃肿集中的ESB(企业服务总线),无疑是正确方向上的一大进步,但同时也给我们出了一些难题——多智能才不会过于智能,而服务轻重大小的程度如何拿捏?我们应该如何处理微服务系统中服务间交互的复杂性?放在服务内部还是外部?如果是内部,如何处理业务逻辑关系,或者应该与基础设施更为相关?如果是外部,如何避免重蹈ESB的覆辙?

皮的不谈,先来看看处理服务间通信时需要关注的点:

  • 服务发现
  • 负载均衡
  • 路由
  • 流量控制
  • 通信可靠性
  • 弹性
  • 安全
  • 监控/日志

似乎都是老生常谈,存在于任何需要处理网络的分布式系统之中,区别在于,当所涉及微服务数量呈指数级增加,这些问题也会被相应放大。

一个已经被广泛应用的解决方案是利用api网关来处理服务外部和服务之间的请求,提供例如服务发现、路由、监控、流量控制等。

然而,api网关有一个比较致命的缺陷,它容易出现单点故障并且实践不当很有可能会变得异常臃肿。另一方面,api网关核心是面向用户,也就是说它可以解决从用户到微服务的流量问题,但不能解决所有问题,而我们需要的是一个完整的方案,或者至少是一些能够与api网关互补的方案和工具。

另一种选择是在网络堆栈的较低层级(4/3)进行可靠性、监控、流量控制等方面处理。这种选择的问题是,在较低较低的操作难易满足应用层的问题。联想end-to-end(端到端)的理论,我们前面提到的那几个关注点实际上还是集中在应用层,也只能在应用层成功实现。

像Netflix、Twitter等SOA/微服务的早期采用者,他们通过建立内部库的方式处理这些问题,然后提供给所有服务使用。这种方法的问题在于,把库扩展到成百上千个微服务中难度极高,而且这些库相对来说是比较”脆弱“的,我们很难保证他们可以适应所有的技术堆栈选择。

程度上来说,Service Mesh与这些库很类似,但Service Mesh是与服务相邻的独立进程。服务连接到代理,代理反过来又与其他代理(HTTP1.1/2、GRPC)进行通信。它们是相对独立的进程,在应用层或应用层之下分布和运行,进而解决了上述两个方案存在的缺陷。

Service Mesh架构

Service Mesh由data plane构成,其中所有服务通过sidecar代理进行服务通信。(所有代理相互连接形成一个Mesh,Service Mesh由此得名)网格同时包含一个control plane——可以将所有独立的sidecar代理连接到一个分布式网络中,并设置网格还包括一个控制平面——它将所有独立的sidecar代理连接到一个分布式网络中,并设置由data plane指定的策略。

Control plane定义服务发现、路由、流量控制等策略。这些策略可以是全局的,也可以是限定的。Data plane负责在通信时应用和执行这些策略。

最后

总结来说,Service Mesh是“时间的产物”,Docker、Kubernetes等容器技术直接推进了对于Service Mesh的需求,让复杂的系统可以被轻松部署和管理。

未来Service Mesh将如何发展还未可知,或许会像TCP/IP一样形成标准,或许不同工具和平台会独具一格……但有一点是确认的,Service Mesh对于微服务生态的价值令人难以忽视,能够将繁重的服务治理工作变得简单高效,何乐而不为?

 

分享到:
评论

相关推荐

    服务网格(Service Mesh)_新型的微服务架构及详细参考案例

    服务网格(Service Mesh)_新型的微服务架构及详细参考案例 服务网格(Service Mesh)是当前互联网中的一种新型的微服务架构,具有架构灵活、普适性强等特点,是微服务框架的演进方向。服务网格的定义是指一个专门...

    服务网格化Service Mesh入门到精通视频教程

    本课程从架构的发展历史开始, 再到service mesh设计原则,重点会讲解ServiceMesh主流框架-Istio, 我们会从理论、架构、实战一层一层的剖析 3、课程特色 市面上已经有很多关于istio相关的资料和书籍,而我们这套...

    为什么我们需要Service Mesh

    ### 为什么我们需要Service Mesh #### Service Mesh的概念与重要性 Service Mesh是一种用于管理服务间通信的基础设施层,它为微服务架构提供了一种强大的、透明的服务间通信方式。随着云计算的发展,尤其是微服务...

    多云时代的企业级服务网格 — NSX Service Mesh

    服务网格联盟(Service Mesh Federation)是NSX Service Mesh的进一步扩展,它允许跨越多个云和多个平台的服务网格进行协同和交互,从而为客户提供更加灵活和可靠的服务。通过这一能力,NSX Service Mesh在本地...

    Service mesh.pptx

    ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么...

    腾讯云ServiceMesh生产实践及架构演进

    ServiceMesh(服务网格)是一个基础设施层,让服务之间的通信更安全、快速和可靠,是云原生技术栈的关键组建之一。2018年是ServiceMesh高歌猛进的一年,ServiceMesh数据面板百花齐放,遍地开花,业界几乎所有大厂都...

    服务网格化Service Mesh入门到精通.pdf

    - **服务网格**(Service Mesh)是现代云原生应用的重要组成部分,它通过解决服务间通信的关键问题,帮助组织构建更加健壮、灵活和安全的微服务架构。 - **Istio** 作为服务网格领域的领导者之一,为开发者提供了...

    linux-ServiceMesh学习笔记

    在提供的"learning-servicemesh-master"文件中,可能包含了关于Service Mesh的教程、示例代码或实践案例,通过深入学习这些资料,可以进一步理解Service Mesh的工作原理和实际应用,提升在Linux环境下的微服务治理...

    Service Mesh:下一代微服务

    随着Service Mesh技术的成熟,其已被越来越多的企业采纳,特别是在需要处理大量微服务实例和跨服务运维的场景中,Service Mesh为微服务架构提供了强大的支持,使微服务的应用架构能够更加健壮和灵活。

    蚂蚁金服serviceMesh落地实践与挑战

    蚂蚁金服在落地ServiceMesh的过程中,首先需要解决的是服务发现和通信机制。传统的RPC通信需要迁移到ServiceMesh的控制模式中,包括服务注册与发现、TCP层的通信以及服务间调用的路由等。 其次,蚂蚁金服在处理SDK...

    一起畅聊Service Mesh笔记.pdf

    - **Service Mesh概念**:Service Mesh(服务网格)应运而生,它是一种独立于应用程序之外的基础设施层,用于处理服务间通信。Service Mesh能够提供一系列服务间通信所需的控制和观测功能,如负载均衡、服务发现、...

    day02-Service Mesh课程讲义-黑马程序员1

    网关(Gateway)是服务网格的边界,用于处理HTTP、TCP入口与出口流量,Service Mesh中的服务只能通过网关对外暴露接口,以便管控。网关的配置中可以定义暴露的端口以及传输层面的配置(是否需要启用TLS)。 虚拟...

    service-mesh-fight:服务网格比较工具(例如,istio和linkerd)

    本项目“service-mesh-fight”旨在对比两个知名的服务网格解决方案:Istio和Linkerd,帮助开发者和架构师了解它们的特性、优缺点以及适用场景。 首先,让我们深入理解服务网格的概念。服务网格是一种专门用于处理...

    ServiceMesh安全.pdf

    Service Mesh作为服务网格技术,是微服务架构中的一个关键组件,它负责处理服务间的通信和管理,使得开发者能够更轻松地处理诸如服务发现、负载均衡、加密、身份验证、授权、监控和追踪等复杂问题。本文将探讨...

    Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展-中兴通讯-赵化冰1

    用户订阅和SLA(Service Level Agreement)管理也可以通过Service Mesh的控制平面进行,应用程序可以将用户订阅和SLA转换为操作策略,并通过可编程API传递给数据平面,从而确保服务质量。 总的来说,Service Mesh...

    servicemesh2018:ServiceMesh2018年度总结

    ServiceMesh2018年度总结 应InfoQ的邀请,再次撰写ServiceMesh2018年度总结。 即将,邀请了Service Mesh社区的一众好友共襄盛举,希望能为...各家网络厂商也开始尝试服务网格: :来自领事 :Kong到底想不想做Service

Global site tag (gtag.js) - Google Analytics