应用高可用服务(Application High Availability Service)是一款专注于提高应用高可用能力的SaaS产品,包含流量防护、故障演练、功能开关和多活容灾四大独立的功能模块。
流量防护
功能
在当今日益复杂的应用环境下,应用设计应该遵循“面向失败”的设计原则,对上下游的依赖零信任。借助流量控制、熔断降级模块,您的应用有能力对流量采取限流控制,并对下游依赖进行降级处理。
工作流程
流量防护模块支持主流的Java框架,包括HTTP和Dubbo。该模块可以实时监控框架的QPS(Queries per Second,每秒查询数)、线程数、响应时间、异常数等指标,并有选择地截断对这些框架的访问,从而保护应用的可用性。此外,利用AHAS提供的SDK,您还可以采取更细粒度的代码级限流降级防护措施。
流量防护工作流程
故障演练
故障演练是一款遵循混沌工程实验原理并融合了阿里巴巴内部实践的产品,提供丰富故障场景实现,能够帮助分布式系统提升容错性和可恢复性。
- 流程
故障演练建立了一套标准的演练流程,包含准备阶段、执行阶段、检查阶段和恢复阶段。通过四阶段的流程,覆盖用户从计划到还原的完整演练过程,并通过可视化的方式清晰的呈现给用户。
- 适用场景
故障演练可适用于以下典型场景:
- 衡量微服务的容错能力。
- 验证容器编排配置是否合理。
- 测试PaaS层是否健壮。
- 验证监控告警的时效性。
- 定位与解决问题的应急能力。
更多信息,请参见什么是故障演练。
功能开关
功能开关是一个轻量级的 运行时动态配置修改 框架,既可用于集中管理各应用的业务开关,也可以管理应用的运行时基础配置。
- 功能描述
- 业务开关管理:按照统一的方式定义、管理业务运行时功能切换。
- 运行时配置管理:支持定义任意类型的配置项,且自动根据类型做自动拆装,代码层无需关注类型信息,简化运行时配置项使用流程。
- 使用场景
- 业务开关管理。一个业务经常由多个系统、多个功能模块组成,为保证某些业务的动态性,后端程序通常会用开关来控制程序的逻辑,以达到在系统运行时切换运行逻辑的目的。
- 运行时配置管理。无需写死的URL、接口名、阈值和读取文件用的编码、黑白名单等,直接使用功能开关即可方便快速创建运行时能覆盖的动态配置。
多活容灾
- 工作流程多活容灾MSHA架构上将业务分为接入层、应用层、数据层三层,应用层又可以细分为微服务调用、消息等多个功能域,每一层都会有相应的多活组件,管控在各层组件的基础上具备全栈的多活管控能力。
- 使用场景
架构 容灾能力 适用场景 同城多活 - RPO:地域级故障不可控;机房级故障为秒~分钟级。
- RTO:地域级故障不可控;机房级故障为分钟~十分钟级。
说明 具体以主备数据同步延迟的情况而定。- 预算有限,不考虑异地容灾。
- 期望建设周期短(≤2周)。
- 期望业务代码零改造。
- 不考虑数据一致性问题。
异地应用双活 - RPO:分钟级。
- RTO:分钟~十分钟级。
说明 具体以主备数据同步延迟的情况而定。- 选择异地建立数据中心进行容灾。
- 期望备中心资源不闲置,流量双活。
- 接受跨地域网络延迟。
- 期望业务代码零改造或少改造。
- 不考虑数据一致性问题。
- 相比异地多活,此方案无需流量带标和路由纠错。
异地双活 - RPO:分钟级。
- RTO:分钟~十分钟级。
说明 具体以主备数据同步延迟的情况而定。- 预算充足,选择异地建立多活的数据中心。
- 接受长建设周期(3~6个月)。
- 能够选取合适的维度路由流量,做好数据分片。
- 接受业务流量带标改造,业务代码带标、中间件升级改造。
- 接受数据最终一致。
AHAS使用场景
微服务高可用
如今,Spring Cloud、Kubernetes的微服务架构对服务的高可用性提出了前所未有的挑战。借助AHAS,您可以在零代码改动的前提下,快速使用SaaS化的高可用服务,包括架构可视化、架构变化追踪、故障演练和流量防护的保护。
AHAS支持Spring Cloud组件的快速发现、故障演练能力,以及SpringBoot应用的一键流量防护。
AHAS支持阿里云容器服务Kubernetes应用的快速接入。
传统应用高可用
由于缺乏高可用能力,对于传统的Java单体应用和分布式应用而言,如何保障稳定性和连续性向来是个难题。
AHAS提供了应用高可用保障所必需的架构实时展现与追踪、架构高可用性故障演练,以及Java应用零代码改动接入流量防护的能力。即便是已上线的应用,也无需升级改造。此外,对于引入的开源或第三方组件,AHAS可以进行自动化智能评估,并提供优化使用方面的指导。