在微服务架构中进行开发时,需要配置许多单独的组件。为了使微服务协同工作,它们需要建立用于信息共享和数据传输的通信渠道。管理和监控服务之间通信的一种方法是使用服务网格。
什么是服务网格?
服务网格是添加到微服务架构中的专用基础设施层。它的主要作用是确保快速和安全的服务到服务通信。这种低延迟工具管理和监控服务间通信和数据共享。
它由一个控制平面组成,开发人员从该控制平面向网络层实施特定的规则和策略。控制平面直接与数据平面一起工作,数据平面是与服务一起运行的边车代理的集合。这些代理负责服务之间的所有通信。此外,它们还可以监控并提供对整体应用程序性能的宝贵见解,并帮助发现潜在问题并避免停机。
代理提供有价值的功能,包括:
服务网格架构的兴起
为了完全理解服务网格是如何工作的,我们需要研究为什么要开发这样的工具。服务网格架构的兴起是解决与微服务相关的许多问题的方法。
许多开发团队从开发单体应用程序转向微服务架构。这将应用程序从单一单元划分为协同工作的单个服务系统。该应用程序由具有各自功能的多个自治服务组成。
开发此类应用程序的困难在于配置这些服务相互通信的最佳方式。应用程序性能取决于协同工作和共享数据以提供最佳用户体验的服务。例如,一个网络商店可能包含一个登录服务,该服务与需要来自库存数据库等信息的购买服务进行通信。
由于微服务通过API进行通信,因此找到解决发现和路由的最佳解决方案非常重要。此外,开发人员需要确保系统内的通信是安全的。虽然防火墙保护应用程序免受外部攻击,但微服务架构中有一个平坦、开放的网络。
在网格服务架构之前,此任务由负载均衡器处理。由于部署和成本问题,这不是一个实用的解决方案,尤其是在更大规模的情况下。服务网格是作为上述所有问题的最终解决方案而开发的。它提供了一个网络层,带有一个集中的注册表(控制平面),通过它的sidecar代理管理所有服务。与负载均衡器相比,它们更容易配置和扩展。开发人员可以根据需要向上和向下扩展代理并更改路由规则,而无需修改服务。
服务网格的好处

开源服务网格列表
有许多可用的开源服务网格。Istio、Linkerd和Consul使用最广泛。
您将在下面找到有关每个平台的更多详细信息。
Istio是由Google、IBM和Lyft设计的开源基础架构。它是最早的服务网格平台之一。它使用Istiod,一个由多个组件(Pilot、Citadel和Mixer)组成的控制平面来操作和配置服务网格。数据平面由使用C++开发的Envoy代理组成。HTTP/TCP连接由Istio的负载均衡器Gateway管理。VirtualService和DestinationRules定义路由规则和策略。
Linkerd是由云原生计算基金会(CNCF)项目开发的轻量级开源服务网格。无需额外配置即可轻松安装在任何平台之上的Kubernetes集群中。在使用较小的集群时,没有配置是有益的。大型项目需要配置的可能性才能成功管理集群中的所有服务。
它的sidecar代理是用Rust编写的。Linkerd将Controller用于控制平面,将WebDeployment用于仪表板。此外,它利用Prometheus探索和存储指标,利用Grafana渲染和显示仪表板。
领事连接
Consul最初被设计为服务发现工具,后来演变为服务网格。与Linkerd不同,ConsulConnect包含大量配置,让您可以更好地控制网络环境。因此,它比Linkerd更难使用。这种开源服务网格与平台无关,这意味着它不需要Kubernetes或Nomad。尽管如此,Nomad确实简化了通过Consul管理微服务通信的过程。
微软的开放服务网格
Open服务网格(OSM)是一个CNCFEnvoy项目,它实现了一个服务网格接口来管理和保护动态微服务应用程序。它使用EnvoyxDS作为sidecar容器。它的主要功能包括流量转移、证书管理、启用mTLS、自动边车注入和访问控制策略。
Kuma是一个开源控制平面,用于在服务网格中运行的Kubernetes和VM。它具有L4+L7策略架构,可实现服务发现、路由、零信任安全和可观察性等功能。该平台具有高度可扩展性且易于设置。
OpenShift服务网格红帽
红帽开发了用于管理微服务应用程序的OpenShift服务网格。它通过SecurityContextConstraint为网络提供多个接口并提高安全性。它使用Jager测量性能,并使用Kiali观察服务之间的交互。此外,OpenShift包括RedHat3scaleIstioMixerAdapter以提高API安全性。
AWS应用网格
亚马逊开发了AppMesh,这是一款免费的服务网格软件,可在微服务架构中管理您的所有服务。它为您的微服务应用程序提供高可用性和端到端的可见性。AWSAppMesh与AWSFargate、AmazonECS、AmazonEC2、AmazonEKS、Kubernetes和AWSOutposts集成。借助其监控工具,它会自动导出监控数据。
网络服务网格
Network服务网格是一个开源CNCF沙盒项目。它是一个混合/多云IP服务网格,使用一组简单的API来促进连接。它在容器内运行的服务与外部端点之间建立连接。实施后,它需要对Kubernetes进行最小的更改。
综上所述
服务网格简化了使用微服务架构开发的应用程序的管理和维护。它提高了微服务架构内的整体安全性,并确保流量的可见性和可观察性。总体而言,服务网格功能增强了性能并加快了开发周期。借助各种可用的开源解决方案,找到最适合您的应用程序需求的解决方案。
本文来源:国外服务器--什么是服务网格(服务网格和微服务)
本文地址:https://www.idcbaba.com/guowai/3259.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



