云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站空间_云主机用途_评分榜

小七 141 0

智能网络与领事和服务网格

在过去的一年里,服务网格技术引起了人们的极大兴趣。尽管服务网格的概念并不新鲜,但实现细节对某些人来说还是新鲜事。HashiCorp consur是一个开源工具,提供服务发现、健康检查、负载平衡和一个全球分布的键值存储。这些特性使consur成为服务网格的理想控制平面。这篇文章讨论了关于采用服务网格的一些基本原则,以及consur如何被用作像Istio、Linkerd和enjob这样的项目的控制平面。在深入研究服务网格之前,了解基本原则和在考虑诸如服务网格之类的技术时可用的选项是很有帮助的。»哑管道或智能网络"哑管"设计注重简单性,并假设网络是"哑的"。这个设计框架可以用端到端的原则来解释。它指出,通信或网络特性应该被定义为尽可能靠近应用程序,因此应用程序最终要做大量的工作(重试、退避、断路、请求路由等)。因此,在每个应用程序中都可能有冗余代码来重新实现这些功能。通常情况下,负载平衡器用于在应用程序之外实现一些这种功能。这使得网络操作简单,推理容易。"智能网络"设计在重试、退避、断路、负载平衡等方面采用带外方法。它提供了这些功能的基于网络的实现,因此多个应用程序可以从中受益,而应用程序实现工作很少甚至根本不需要。这本质上是服务网格采用的方法。还可以提供诸如遥测、流量整形、服务发现和网络策略控制等功能。然而,服务网格成为应用程序的一个隐式依赖关系,并且很难从整体上分析系统。例如,请求重试行为可能在应用程序源代码和网络配置中指定。»控制面与数据面分离与网络非常相似,服务网格通常由控制平面和数据平面组成。这将性能敏感的数据路径与系统的其他部分分开。控制平面负责决定在何处发送流量并配置数据平面。此外,它还负责网络策略强制和向数据平面提供服务发现数据等功能。由于控制平面是服务网格的一个关键组件,它必须具有高可用性和分布性。因此,应用程序提供了数据从平面转发的能力。数据平面还可以提供更复杂的功能,如健康检查、负载平衡、电路中断、超时和重试、身份验证和授权。数据平面处于从一个应用程序到另一个应用程序的数据流的关键路径,因此需要高吞吐量和低延迟。»协议意识协议意识是设计数据平面时要考虑的另一个重要因素。数据平面可以在OSI模型的不同层实现,并且可以或者不可以是协议感知的。以第4层-传输层为例。第四层协议的两个常见例子是TCP和UDP。TCP用于最常见的协议,如HTTP、SSH、SMTP和大多数数据库。UDP用于对延迟敏感的应用程序,如VOIP、视频会议和对等协议。使用该层的数据平面可以被认为是"通用"兼容的,因为它使用这些较低级别的协议(如TCP/UDP)来执行请求转发。这种数据平面可以提供高性能,因为转发是在不考虑包内容的情况下完成的。这种方法的缺点之一是很难提供复杂的或请求感知的特性。现在让我们以第7层-应用层为例。使用此层的数据平面具有应用程序意识,可以使用附加信息执行复杂的路由决策。例如,通过解析HTTP请求,可以使用诸如路径或报头之类的请求内容来更改路由和转发行为。这种方法的一个缺点是,由于要检查数据包的内容,所以它可能会产生较低的性能。另一个挑战是应用层协议的多样性。虽然HTTP非常常见,但还有无数其他协议在使用。»作为控制飞机的执政官consur提供了许多功能,使其成为理想的控制平面。consur的体系结构确保了它的高可用性,并支持多数据中心拓扑。consur的主要目标之一是提供服务发现,它可以同时使用哑管道和智能网络方法。在哑管道设计中,consur可以提供一个一流的DNS接口,应用程序可以使用它来发现其他应用程序并直接通信,而不需要使用中间数据平面或服务网格。此外,这些应用程序可以使用consur的键值存储来存储重试、超时和断路设置,并在需要时请求它们。在智能网络设计用例中,consur可以通过配置数据平面的API提供服务发现和健康检查信息。consur K/V存储也可以用于持久状态,如网络策略。在之前的一篇博文中,我们探讨了consur如何用于负载平衡,这可能是一本很好的读物,当我们在microservices架构中使用consur进行负载平衡的常见策略时。»执政官如何适应服务网?服务网格的目标是提供服务到服务的通信以及一些更高级别的特性,如可观测性、策略强制、重试、退避和安全性。它由一个控制平面、一个(典型的)第7层数据平面以及适配器组成,这些适配器可能提供诸如政策执行等功能。CONSUR可以用作控制平面,而数据平面有许多选择,包括项目,如特使、Linkerd、NGINX、HAProxy、Traefik和Fabio等。让我们看看Istio。Istio是一个连接、管理和保护微服务的平台。Istio的控制飞机由飞行员、混合器和Istio Auth组成。Pilot的目标是抽象特定于平台的服务发现机制,并提供一个标准的数据格式,该格式可由数据平面(je使)使用。由于consur提供了丰富的服务发现API,Pilot可以配置为使用这些数据来发现在数据中心运行的服务。安装Istio与CONSUR并排的说明,请访问https://istio.io/docs/setup/consul/。Mixer旨在成为Istio的政策执行部分。它将策略决策从应用程序转移到操作员可以管理的配置中。consur有一个键值存储区,可以用来存储操作员定义的策略,然后Mixer可以与consur交互并在服务网格中强制执行这些策略。Istio Auth旨在使用相互TLS提供服务到服务的最终用户身份验证,并为mesh中运行的每个服务提供标识。在HashiCorp,我们还构建了具有PKI秘密后端的保险库,可以用来动态生成证书。Istio Auth可以使用此特性向数据平面提供证书,这将强制实施服务到服务通信的相互TLS。»结论consur提供了许多特性,使其成为服务网格的理想控制平面。这篇文章详细介绍了在查看服务网格时应该考虑的几个首要原则,并展示了如何使用consur来驱动服务网格。对consur的服务发现、密钥存储等功能感兴趣吗?从退房开始https://www.consur.io/downloads.html。