服务网格简介

Service Mesh 架构已得到广泛采用,Tetrate 的团队由一些最早开发支持该架构的技术的工程师组成。在本节中,我们将介绍该架构、其术语、功能、特性,并重点介绍 Istio,这是为 Tetrate Service Bridge 提供支持的领先网格实现。

什么是服务网格?

服务网格是通过代理位于应用程序组件和网络之间的基础设施层。虽然这些组件通常是微服务,但任何工作负载(从无服务器容器到虚拟机或裸机上的传统 n 层应用程序)都可以参与网格。代理不是通过网络在组件之间进行直接通信,而是拦截并管理该通信。

服务网格架构:控制平面和数据平面
服务网格架构:控制平面和数据平面

数据平面

这些代理被称为“sidecar 代理”,因为它们与每个应用程序实例一起部署,构成了服务网格的数据平面。它们在运行时处理应用程序流量。Tetrate Service Bridge 采用 Envoy 作为数据平面实现。Envoy 提供了大量的安全、流量策略和遥测功能,包括:

  • 服务发现
  • 弹性机制(重试、熔断、异常值检测)
  • 客户端负载均衡
  • 细粒度的 L7 流量控制
  • 根据请求实施安全策略
  • 基于 L7 元数据的身份验证、速率限制、策略
  • 具有强 L7 身份的工作负载身份
  • 服务间授权
  • 使用 WASM 扩展的可扩展性
  • 指标、日志和跟踪

通过将这些功能从应用程序转移到边车代理,可以引入控制平面来动态配置数据平面,从而提供一系列好处。

控制平面

控制平面负责数据平面代理的运行时配置。它将控制平面的声明性配置转换为 Envoy 的具体运行时配置。控制平面协调多个 Envoy 代理,创建一个有凝聚力的网格。

通过每个应用程序实例的边车代理和动态控制平面,服务网格提供了集中控制和分布式执行。这种级别的控制无法通过框架和库实现,但具有以下优点:

  1. 集中可见性和控制
  2. 整个环境的一致性
  3. 通过基于代码的配置进行有效的策略更改
  4. 将功能生命周期与应用程序生命周期分开

Tetrate Service Bridge 利用 Istio 作为其控制平面在运行时配置 Envoy 代理。

服务网格的起源

2010 年代初,服务网格架构在多家公司同时出现,以解决采用面向服务架构的挑战。谷歌的旅程导致了原型服务网格的创建,该网格解决了共同命运中断、成本归因和跨领域功能实现等问题。

在内部体验到服务网格的好处后,Istio 诞生了,就是为了将这些功能带给世界。Tetrate 的成立是为了满足在现代化和云采用方面面临类似挑战的企业的需求。

API 网关和服务网格

服务网格架构起源于分布式 API 网关,解决跨领域问题。随着微服务架构的盛行,内部流量大大超过外部流量。这种转变以及向零信任安全的转变,推动网格处理跨环境的流量。

因此,API 网关的功能正在成为应用程序流量平台不可或缺的一部分,在平台中随处可用。传统上被视为“边缘”设备的其他功能也正在合并到应用程序流量平台中。

Istio:领先的网格实现

服务网格充当基于微服务的应用程序的安全内核,因此网格实现的选择对于应用程序和信息安全至关重要。Istio 是使用最广泛、支持最广泛的服务网格,可作为微服务安全标准的参考实现。它符合 NIST 的指导方针,并拥有活跃的错误赏金、安全审计和 CVE 补丁。

Istio 与 Kubernetes 生态系统一起发展,提供无缝集成和标准化。Tetrate 的团队由早期 Istio 贡献者组成,选择 Istio 作为为 Tetrate Service Bridge 提供支持的网格。

继续阅读,了解 TSB 如何利用 Istio 将你的基础设施统一为一个有凝聚力的网格。