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