针对应用程序的韧性(Resilience)需求,AWS推出Resilience Hub服务,供用户定义、关注和管理应用程序的韧性。Resilience Hub让用户制定恢复时间目标(Recovery Time Objective,RTO),以及恢复点目标(Recovery Point Objective,RPO),并且根据这些目标,评估应用程序的配置是否满足要求。
AWS提到,构建分布式系统很难,要维持系统一直在正常运行状态更难,用户不应该担心系统是否会故障,而是应该关注系统什么时候故障,并且为此做好准备。用来衡量韧性的指标通常有两个,一个是从故障恢复所需要的时间RTO,以及故障意外发生后,资料可能丢失的最大时窗RPO,依据用户的业务和应用程序,指标可以用秒、分、小时和天来衡量。
用户可以在AWS Resilience Hub中设置每个应用程序的RTO和RPO,该服务会提供建议和韧性分数,供用户关注应用程序的韧性。AWS Resilience Hub能够探索由AWS CloudFormation部署的应用程序,包括跨地区和账户的堆栈,并且还能从资源群组和标签中发现应用程序,或是从AWS Service Catalog AppRegistry中选择已经定义的应用程序。
AWS强调,AWS Resilience Hub所涵盖的“应用程序”,不仅是应用程序软件和程序代码,范畴还包括托管应用程序的整个基础设施堆栈,像是网络、虚拟机和数据库等各部分。而AWS Resilience Hub的韧性评估功能,使用AWS Well-Architected Framework最佳实践来评估用户的应用程序,借由发现因基础设施配置不完整或是错误配置,找出潜在的韧性弱点,并且提供增加应用程序韧性的建议。
韧性评估会生成程序代码,协助用户创建恢复程序,作为应用程序的AWS Systems Manager文件,也就是标准作业程序(SOP),另外,Resilience Hub会产生推荐的Amazon CloudWatch监控器和警示报表,供用户在部署应用程序后,快速掌握任何的弹性状态变化。
用户将应用程序和SOP更新纳入韧性评估建议后,便可以使用Resilience Hub来测试和验证应用程序是否达到韧性目标,之后再将应用程序发布到生产环境中。Resilience Hub还与AWS Fault Injection Simulator(FIS)集成,FIS会借由在AWS上执行故障模拟,来测试应用程序在各种故障情况的行为。
Resilience Hub也提供开发团队API,将韧性评估和测试集成到CI/CD工作管线中,以持续进行韧性验证,通过在CI/CD工作管线验证韧性,能够确保应用程序底层基础设施的每一次更新,都不会影响其韧性。
用户可以从控制面板全面了解应用程序的韧性状态,Resilience Hub会全面关注应用程序的韧性状态,其集成了所有组织韧性事件、警示和来自Amazon CloudWatch与FIS服务的分析。Resilience Hub针对应用程序所产生的韧性分数,代表韧性测试、警示和恢复SOP的实例水准,用户可以通过增加分数来推进应用程序韧性。
目前Resilience Hub已经在美东、美西和欧洲地区推出,亚洲则先在新加坡和东京地区提供,之后还会陆续在更多的地区上线。用户可以先免费试用Resilience Hub服务6个月,之后支付每个应用程序每月15美元的费用。