在企业应用向容器化和微服务转型的过程中,形成了庞大且复杂的分布式微服务架构。需要一个能够管理和运营这些服务的系统,帮助开发者解决他们面临的挑战,如服务发现、负载均衡、故障恢复、指标收集与监控、灰度发布、限流、访问控制、端到端认证等。
Istio 提供了完整的微服务解决方案,通过为整个服务网格提供行为洞察和运营控制,满足微服务应用的多样化需求。该平台高度实践 Istio,企业用户只需接入服务平台,即可非侵入式地为企业应用和服务提供全方位的治理能力,功能涵盖服务全局可视化、服务发布管理、服务连接可靠性治理、服务网格生命周期管理、服务故障排查、服务安全治理等场景。
在复杂的微服务应用场景中,开发者需要实时了解服务的整体运行情况,包括服务调用关系、调用链路、监控信息等,以便理解组件间的通信。这有助于在出现故障或性能问题时快速定位具体问题,提高运维效率,降低业务风险。
平台基于 Istio 集成了 OpenTelemetry Java Agent 和 Jaeger,提供全面的可观测能力。
以非侵入式方式采集监控数据,让开发者专注于业务开发,无需担心如何获取监控数据。
以图表形式可视化服务调用拓扑和流量监控数据,支持调用链数据查询。
通过表单快速配置和管理服务的流量治理策略、路由规则及安全策略。
在微服务应用快速迭代和优化过程中,如果新版本直接对所有用户发布,一旦发生线上事故(如大规模流量变更导致的失败或崩溃),将难以快速解决问题,严重影响用户体验。
在微服务系统中部署新版本应用时,既要尽量减少对业务的影响,也要帮助开发者验证新版本的功能、性能和用户满意度。
灰度发布功能基于 Istio 路由能力和 Flagger 开源组件实现。发布新版本服务时,允许部分用户继续使用旧版本,另一部分用户使用新版本。在灰度发布过程中,如果新版本稳定且用户无异议,可逐步调整流量调度比例,扩大使用新版本的用户范围,直到全部用户迁移至新版本。
灰度发布过程中可及时发现问题,修复缺陷,并实时监控流量行为。异常情况下可自动回滚,确保影响最小化。
在大规模微服务系统中,服务间调用关系复杂交织。一旦某服务故障且长时间无法解决,可能产生级联影响,波及其他服务,导致系统崩溃。
因此,微服务系统的开发者和运维人员需实时监控服务健康状态,防范潜在风险,并能借助详尽的监控数据快速排查业务故障。
平台建立了完善的服务故障排查流程。发生服务故障时,平台可追踪异常流量定位故障位置,缩小排查范围,再结合日志和监控数据分析具体原因,快速解决问题。
提供联动拓扑图、流量监控图表、调用链和日志,形成完整的排查路径。
流量监控图表支持查看服务、Pod 和 API 级别的流量数据。
在微服务架构中,应用由多个服务组成,每个服务负责单一业务功能。服务间通过远程调用实现数据交互。但这带来一个问题:当服务 A 调用服务 B,服务 B 又调用其他服务时,如果其他服务响应时间过长或不可用,调用服务 A 的请求将消耗越来越多资源,最终导致系统故障,称为雪崩效应。
为防止微服务系统出现级联故障,平台支持为服务配置流量治理策略和路由规则。这些机制可建立保护机制并模拟调用失败,确保服务连接的可靠性,提升微服务系统整体稳定性。
支持负载均衡策略、熔断器和连接池设置策略。
支持基于路由的错误注入、延迟响应、超时重试、请求重写和流量复制。
单体应用拆分为服务后,提高了开发效率、系统稳定性和运维效率。服务间调用由本地调用变为网络协议接口调用,也带来了安全风险。因此,在微服务治理平台中,需要对流量进行加密,配置服务调用授权,并提供验证和审计功能。
平台提供服务间流量加密能力。通过为服务设置安全策略,实现流量的 mTLS 加密。
通过为服务设置黑名单或白名单,控制同一网格内服务间的访问权限。
完整的 Service Mesh 不仅包含 Istio 组件,还包括集成的扩展组件。在多集群环境下,服务网格的管理尤为复杂。服务网格的生命周期管理不仅涉及部署、更新和删除,还包括对服务网格健康状态的监控和查看,帮助运维人员及时发现异常、排查问题,确保服务网格为业务提供稳定一致的支持。
提供服务网格的全生命周期管理能力,涵盖部署、更新、删除及健康监控。
:: 服务网格管理:包括服务网格核心组件及扩展组件的部署、更新、删除等。
组件健康检查:核心组件和扩展组件的健康检查。
功能健康检查:主要功能的健康检查,内置功能相关检查项。
监控:集成 Prometheus 和 Grafana,提供默认看板监控组件及业务信息。