什么是服务网格?

服务网格是一种预配置的应用程序服务,允许服务相互通信,在整个应用程序生命周期内共享数据和一致性。它可通过精简、可写容器层用于管理微服务。服务网格易于设置和部署,可充分利用微服务的价值,使企业能够轻松发现新服务并将其作为 API 产品进行管理。

服务网格图

为了实施服务网格,您需要一个适合数字时代的现代集成策略。它必须敏捷,能促进创新并满足业务需求。效率也很重要,但不是重中之重。

服务网格的好处

基于微服务的应用程序的标准化。分布式应用程序的行为因基于运行的网络而异。不同的行为会给配置管理系统带来挑战。有了服务网格,独特数据中心对编排器来说就不那么繁琐了。

监控和改进分布式应用程序的行为。良好的服务网格旨在将要求很高的组件放置在应用程序控制平面上最容易访问的位置。也就是说,组件需要更平稳、更高效地运行。通过服务网格,数据是共享的,这意味着开发人员可以在下一次迭代中看到需要改进的内容。

提高复杂交互的透明度。通常,很难在云原生环境中跟踪信息流。服务网格为重要应用服务的交付方式带来了透明度,使您能够追踪其行为。

加密。服务网格管理密钥、证书和 TLS 配置,以确保持续加密不会失败。用户不再需要实施加密或管理证书。相反,这些职责将从应用程序开发人员转移到框架层。

TIBCO 成为连接现代应用程序架构的领导者的 10 个原因
TIBCO 成为连接现代应用程序架构的领导者的 10 个原因
您的应用程序架构需要改进。以下是选择 TIBCO 提供帮助的十大理由。

服务网格体系结构的工作原理

服务网格提供与容器一起使用的轻量级代理集合。每个代理都充当容器之间发生交互的网关。代理可以协作将请求通过服务网格传送到为请求提供服务的相应下游容器,实质上是将管理服务到服务通信的逻辑从个性化服务中移出,然后将其抽象到基础架构层。

为此,服务网格可作为网络代理的集合内置到应用中。控制平面中的控制器负责协调代理之间的连接。控制器提供对控制策略的访问权限,并从容器收集指标。在服务网格中,请求通过微服务自身基础设施层中的代理在微服务之间进行路由。为此,构成服务网格的单个代理有时被称为 “跨斗 ”(sidecar),因为它们与每个服务一起运行,而不是在服务内部运行。这些 “边车” 代理(与每项服务分离)结合起来就形成了一个网状网络。

服务网格的组件

服务发现

代理为微服务和其他应用程序之间的通信提供了路由。当添加或删除新副本时,就会动态进行发现。

服务网格路由

服务网格轻量级代理具有内置的智能路由机制,这有助于为请求提供最佳路由。路由是在服务之间动态完成的。

服务网格可观察性

现代服务网格在控制平面中部署了组件,这些组件有助于记录、跟踪请求和服务之间的响应调用、监控和警报。故障模式可通过仪表板进行检测。

服务网格安全

服务网格为服务之间的通信提供身份验证、授权和加密。

提供优化的体验

在创建服务网格时,您需要构建适用的独立应用程序,使应用程序的设计、功能和能力保持一致,以适应个人角色和模式的工作流程。这为创建专门构建的应用程序提供了机会,这些应用程序更易于设计、开发和部署。此外,无论是在笔记本电脑上运行的基于 Web 的应用程序、智能手机上的移动应用程序还是传统界面中,应用程序都可以更专注于用户在执行任务时偏好的渠道。

设计支持多种功能和体验的服务网格需要灵活的后端来支持每个使用中的应用程序的不同功能和工作流程。后端必须提供持续的体验,因此在实施时,需要对其进行组合以支持经过优化的适用应用程序的特定需求。服务于前端的后端(也称为BFF)是一种特殊类型的后端,支持这些经过优化的应用程序的自定义工作流程。这些服务还需要与特定的用户体验保持一致。这种模式使开发团队能够快速实施新的前端来支持新的角色或设备,而不会影响其他应用或服务。

尝试 TIBCO Cloud Integration - 免费试用
尝试 TIBCO Cloud Integration - 免费试用
让 TIBCO 云集成通过更方便快捷的 API 主导式集成为您的企业提供强劲支持。以集成方式实现简化。

服务网格的使用案例

蓝绿部署

说到网站,尤其是那些用于电子商务的网站,每秒停机时间都会对收入产生直接影响。借助蓝绿部署,您可以对应用程序执行复杂的更新,而不会造成代价高昂的服务中断。尽管有许多类型的蓝绿部署,但它们都遵循相同类型的模式:

  1. 蓝色网站正在利用实时流量运行。
  2. 网站的更新版本(绿色网站)已部署并测试,而流量仍会流向蓝色。
  3. 已执行部署;少量实时流量被转移到绿色网站(而您观察到一切运行正常)。
  4. 随着蓝色网站的流量减少,绿色网站的流量逐渐增加。这种情况一直持续到所有流量都流向绿色网站。
  5. 蓝色网站已关闭。
  6. 通过逐步增加新站点的流量,而不是一次性更新所有内容,您可以让运营团队有机会在对整个系统产生后果之前回滚更改。这在要更新的服务与其他服务有复杂的相互依赖关系的情况下尤其有用。

    服务网格是一种特别适合执行蓝绿部署的技术,因为它可以控制所有服务间流量,并且可以集中管理部署和观察全局系统运行状况。

    优化沟通

    向应用程序添加的每一项新服务,或在容器中运行的现有服务的新实例,都会使通信环境复杂化,并引入新的故障点。在复杂的微服务架构中,如果没有服务网格,这会很棘手,而且几乎不可能找到出现问题的位置。

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

    例如,如果给定服务失败,服务网格可以收集重试成功之前所花时间的数据。随着给定服务的故障时间数据的累积,可以编写规则来确定重试该服务之前的最佳等待时间,从而确保系统不会因不必要的重试而负担过重。