登录/注册 帐户

微服务

什么是服务网格?

服务网格,像开源项目Istio,是一种控制应用程序的不同部分如何彼此共享数据的方法。与其他系统来管理这个沟通、服务网格是一个专用的集成到一个应用程序基础架构层。这个可见基础设施层可以文档如何(或不)应用程序的不同部分相互作用,这样就很容易优化沟通,避免停机时间随着应用程序的增长。

一个应用程序的每个部分,被称为“服务”,依赖于其他服务来提供用户想要的东西。如果在线零售应用的用户想要购买某样东西,他们需要知道该商品是否有货。所以,与公司库存数据库通信的服务需要与产品页面通信,产品页面本身需要与用户的在线购物车通信。为了增加商业价值,这家零售商可能最终会建立一项服务,为用户提供应用程序内的产品推荐。这个新服务将与产品标签数据库通信以提出建议,但它还需要与产品页面所需的相同库存数据库通信——这是大量可重用的、可移动的部件。

现代的应用程序通常以这种方式分解,作为执行特定业务功能的每个服务的网络。为了执行其功能,一个服务可能需要请求数据从其他几个服务。但是,如果一些服务超载有请求,比如零售商的库存数据库?这是一个服务网进来,传送请求从一个服务到下,优化所有运动部件如何协同工作。


微服务不是已经这样做了吗?

一个microservices架构让开发者修改应用程序的服务,而不需要一个完整的重新部署。不同于其他架构应用开发,单个微服务是由小团队建立灵活地选择适合自己的工具和编码语言。基本上,微服务独立地建立,相互连通,并且在不升级成一个应用程序范围内中断可以单独失败。

Microservices架构

服务到服务的通信是什么使微服务成为可能。逻辑管理通信可以被编码到每一个服务,而无需服务网层,但是作为通信变得越来越复杂,一个服务网孔变得更有价值。对于建在微服务架构云的本地应用,服务网是由大量的离散服务到功能应用的一种方式。


它是如何工作的?

服务网格不引入新功能应用程序的运行时environment-apps架构总是需要规则来指定请求如何从A点到达b点,并且服务网格有什么不同呢,需要个人的逻辑管理service - to - service通信服务和抽象层的基础设施。

为此,应用程序内建一个服务网格,作为网络代理的数组。代理在企业it中是一个熟悉的概念——如果你从一台工作电脑访问这个网页,很有可能你刚刚用过:

  1. 至于你的这个页面请求出去,它最早是由贵公司的Web代理收到...
  2. 通过代理的安全措施后,将其发送到服务器的用户主机此页......
  3. 接下来,这个页面被返回到代理并再次检查它的安全措施…
  4. 然后,它终于从代理到您发送。

在服务网格中,请求通过微服务自身基础结构层中的代理在微服务之间路由。由于这个原因,组成服务网格的单个代理有时被称为“侧链”,因为它们在运行并肩每个服务,而不是他们。把这些“侧卡”代理(与每个服务解耦)放在一起,就形成了一个网状网络。

sidecar代理位于微服务旁边,并将请求路由到其他代理。这些边车一起形成一个网状网络。

如果没有服务网格,每个微服务都需要使用逻辑进行编码,以治理服务到服务的通信,这意味着开发人员不太关注业务目标。它还意味着更难诊断通信故障,因为控制服务间通信的逻辑隐藏在每个服务中。


服务网格如何优化通信?

应用程序中添加的每一个新服务,或在a中运行的现有服务的新实例容器,通信环境复杂化,并介绍了可能的故障的新的点。在一个复杂的微服务架构,它可以成为几乎不可能找到这里的问题时有发生无服务网点。

这是因为服务网格还将服务到服务通信的每个方面作为性能指标捕获。随着时间的推移,服务网格中可见的数据可以应用于服务间通信的规则,从而产生更高效、更可靠的服务请求。

例如,如果某个服务出现故障,服务网可收集了多长时间重试成功之前的数据。对于给定的服务聚集在失败次数数据,规则可以写重试该服务之前,以确定最佳的等待时间,确保系统不会成为不必要的重试不堪重负。


规划未来

如果你正在构建微服务,你可能预料某些需要在路上,像快速缩放和增加新的功能,以满足业务需求。这可能是一个微服务架构将在一年看起来非常不同,它发射出去。首先,微服务中建库可能能够处理以最少的作业中断服务到服务的通信。如果你的规模和功能,提高履行微服务的潜力,不应该长期留真实。这可能会导致问题,随着时间的服务而过载要求和开发人员花费越来越多的时间编码请求逻辑为每个服务。

与服务网格:

开始计划未来-在Red Hat®OpenShift®服务网格试验服务网格。体验一种统一的方式来连接、管理和观察基于微服务的应用程序,并对服务网格中的网络微服务进行行为洞察和控制。OpenShift服务网格是可用的(免费)红帽OpenShift。

还有很多与服务网格有关的事情