文档首页> > 产品介绍> 什么是应用服务网格

什么是应用服务网格

分享
更新时间: 2019/07/10 16:35

应用服务网格(Application Service Mesh,简称ASM)是华为云基于开源Istio推出的服务网格平台,它深度、无缝对接了华为云的企业级Kubernetes集群服务云容器引擎(Cloud Container Engine,简称CCE),在易用性、可靠性、可视化等方面进行了一系列增强,可为客户提供开箱即用的上手体验。

应用服务网格提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理,兼容Kubernetes和Istio生态,其功能包括负载均衡、熔断、限流等多种治理能力。应用服务网格内置金丝雀、蓝绿、A/B Test等多种灰度发布流程,提供一站式自动化的发布管理。应用服务网格基于无侵入的监控数据采集,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视图。

产品功能

应用服务网格提供如下功能:

连接:支持智能控制服务流量以及服务间的API调用,通过灰度发布和持续测试优雅逐步的升级。

安全:智能化管理服务间通信的认证、鉴权和加密,为服务通信提供安全保障。

控制:下发并执行流量控制策略,确保网络链路资源在客户侧的公平分配。

遥测:为服务提供丰富的、自动化的链路跟踪、监控和日志监控,可视化服务运行状态。

图1 应用服务网格架构

应用服务网格在逻辑上分为控制层面和数据层面:

  • 控制层面:管理代理(默认为Envoy),用于管理流量路由、运行时策略执行等。
  • 数据层面:由一组以 sidecar 方式部署的智能代理(Envoy)组成。这些代理可以调节和控制微服务及 Mixer之间所有的网络通信。

应用服务网格主要由以下组件构成:

  • Istio管理器(Pilot):负责收集和验证配置,并将其传播到各种Istio组件。它从策略执行模块(Mixer)和智能代理(Envoy)中抽取环境特定的实现细节,为他们提供用户服务的抽象表示,独立于底层平台。此外,流量管理规则(即通用4层规则和7层HTTP/gRPC路由规则)可以在运行时通过Pilot进行编程。
  • 策略执行模块(Mixer):负责在服务网格上执行访问控制和使用策略,并从智能代理(Envoy)和其他服务收集遥测数据。依据智能代理(Envoy)提供的属性执行策略。
  • Citadel:Citadel通过内置身份和凭证管理赋能强大的服务间和最终用户身份验证。可用于升级服务网格中未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。
  • Galley:Galley 代表其他的 Istio 控制平面组件,用来验证用户编写的 Istio API 配置。
  • 智能代理(Envoy):作为一个独立的组件与相关微服务部署在同一个Kubernetes的pod上,并提供一系列的属性给策略执行模块(Mixer)。策略执行模块(Mixer)以此作为执行策略的依据,并发送到监控系统。

Istio简介

Istio是一个提供连接、保护、控制以及观测功能的开放平台,通过提供完整的非侵入式的微服务治理解决方案,能够很好的解决云原生服务的管理、网络连接以及安全管理等服务网络治理问题。

随着微服务的大量应用,其构成的分布式应用架构在运维、调试、和安全管理等维度变得更加复杂,开发者需要面临更大的挑战,如:服务发现、负载均衡、故障恢复、指标收集和监控,以及A/B测试、灰度发布、蓝绿发布、限流、访问控制、端到端认证等。

在较高的层次上,Istio有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括允许集成到任何日志记录平台、遥测或策略系统的API。Istio的多样化功能使您能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。

服务网格

服务网格(Service Mesh)通常用于描述构成应用程序的微服务网络以及应用之间的交互。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、访问控制和端到端认证等。

为什么要使用Istio?

Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。

Kubernetes提供了部署、升级和有限的运行流量管理能力,但并不具备熔断、限流降级、调用链治理等能力。Istio是基于Kubernetes构建的开放平台,它很好的补齐了Kubernetes在微服务治理上的诸多能力。

图2 Istio和Kubernetes的关系

想要让服务支持Istio,只需要在您的环境中部署一个特殊的sidecar代理,使用Istio控制平面功能配置和管理代理,拦截微服务之间的所有网络通信:

  • 实现HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。
  • 通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行为进行细粒度控制。
  • 可插入的策略层和配置 API,支持访问控制、速率限制和配额。
  • 对出入集群入口和出口中所有流量自动度量指标、日志记录和追踪。
  • 通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信。

Istio 旨在实现可扩展性,满足各种部署需求。

如果您喜欢这篇文档,您还可以:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区