云容器、云搜索、云数据库在线验证, 提前发现隐患
来源:华为云确定性运维专刊(第四期)
作者:孙红涛 田瑞东 方翔宇 詹加晓
企业上云后,随着业务规模增长,业务稳定性也带来新的挑战,对业务的SLA有更高的要求,初上云的业务形态已无法满足业务高SLA的可靠性要求。为提升系统的可靠性,华为云联合客户从被动防御到主动预防进行开展工作。通过历史故障负向分析和业务架构正向分析,并针对客户核心业务逃生能力弱、业务模块依赖重、爆炸半径大等风险,分别从冗余、容灾、依赖和过载四个维度设计故障模式30+个,验证各业务在不同故障场景下的容错能力、监控能力和恢复能力。云上客户在线业务均通过华为云CCE服务进行容器化部署,并将部分定时push业务、短信业务以及算法等业务弹性至CCI实现降本增效,且客户的主要核心业务为搜索业务,该业务模块强依赖华为云CSS云搜索服务,业务模块内部访问底层数据库由于客户端配置问题触发多次故障。
根据对业务场景分析,主动对着三大块业务制定故障演练方案,接下来将重点对三个服务领域故障演练进行说明。
一、云容器实例CCI:通过CCE+CCI技术实现客户资源成本优化和弹性能力的诉求,成本+可靠性来实现在线业务的可靠性SLA要求
云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎,可以在云上轻松部署、管理和扩展容器化应用程序。云容器实例(Cloud Container Instance,CCI)服务提供Serverless Container(无服务器容器)引擎,让用户无需创建和管理服务器集群即可直接运行容器。
在业务的可靠性SLA和资源成本方面,我们提供CCE+CCI自定义优先级弹性的最佳解决方案来实现业务的高可靠性以及极致的降本增效。
随着业务规模的不断增长,对于资源的需求也越来越大,在高峰期,业务是否能够正常弹性也尤为关注。面向资源不足等故障场景,提出针对性的架构容灾方案并进行联合演练和架构优化。
通过自定义优先级弹性策略,在CCE/IDC+CCI场景下,提前规划出稳态资源承载的压力,使稳态资源利用率处于合理水位。当业务高峰时负载压力增大,触发弹性扩容,优先扩容CCE/IDC到最大水位,之后弹性到CCI;业务平稳后,优先缩容CCI,实现降本增效。面对CCI集群异常等故障场景,华为云提出通过调整自定义优先级弹性策略来实现故障场景下的快速自动逃生。
联合演练前:检查业务环境,提前识别风险,评估演练方案,输出演练runbook,并进行多次的方案测试验证。
演练过程中:联合业务团队在线保障,故障注入,检查业务以及监控告警情况是否符合预期,之后再通过调整自定义的
优先级弹性策略预案恢复并恢复环境。
演练结束后:积极对演练进行复盘并输出演练报告,最终演练的各个环节都顺利完成,达到了故障逃生的效果,演练结果符合预期。
二、云搜索CSS:通过正向分析和逆向分析梳理故障和对应优先级,针对重点场景进行演练,加快真实故障下的恢复速度
云搜索服务(Cloud Search Service,简称CSS),可以提供托管的分布式搜索引擎服务,完全兼容开源Elasticsearch搜索引擎,支持结构化、非结构化文本的多条件检索、统计、报表,云搜索服务的使用流程和数据库类似。
正向分析:运维团队根据服务自身的可靠性分析经验,协助客户分析每一个CSS集群应用场景的数据流图,梳理软件架构,识别关键节点,首先从架构层面识别消减可靠性风险,例如单点故障,核心业务依赖非核心组件等,对于无法消减的风险,针对每一个可能发生的故障场景,梳理出故障类别,依赖组件,故障影响面,发生概率,并以此为根据确定故障场景的优先级。
逆向分析:运维团队根据客户提出的问题进行总结整理,从故障类别,监控告警能力,定位定界手段,应急恢复时长等多方面进行汇总,针对高频故障和严重故障,优先补充监控告警,应急预案等运维措施。
结合正向分析和逆向分析的结果,最后总结出一个故障模式全景图,涵盖所有梳理到的故障场景,联合客户团队,挑选TOP 3的故障场景进行演练,验证整个业务的容错能力、监控告警能力、人员响应能力、恢复能力等可靠性能力,记录演练过程中的优先项,通过演练复盘驱动改进,进一步优化相应的产品能力和运维手段,消减已有风险的同时新识别的风险,不断提升业务的可靠性。
三、数据库:通过提前确定客户业务诉求,制定10+故障模式场景,有效发现业务隐患和消减
1. 了解业务诉求,拟定故障场景,输出演练方案
根据客户的业务架构和业务场景,结合管理面故障模式方法。从内存、CPU、IO、网络、进程、硬件等维度,总结输出10多种数据面故障场景供客户选择。
2. 组建团队
故障演练方案确认后,快速组建演练保障团队和应急恢复团队。演练保障团队主要执行故障注入、故障注入后观察、故障回退、故障回退后观察等动作。应急恢复团队主要执行,出现意外情况时,优先恢复业务动作。
3. 确定演练和保障方式
远程会议沟通,1+1 check,演练稳步进行,提前预定远程会议,与客户面对面沟通,提高演练效率。
» 注入故障前,得到客户“已经准备好,开始注入”指令后,演练保障团队按照1+1 check,注入故障。注入故障后,演练保障团队通过TSC平台观察实例监控指标,CMA平台监控实例告警。如有异常情况及时反馈至业务和演练保障团队。
» 回退故障前,得到客户“已经准备好,开始回退”指令后,演练保障团队按照1+1 check,回退故障。
» 回退故障后,演练保障团队通过TSC平台观察实例监控指标,CMA平台监控实例告警。如有异常情况及时反馈至业务和演练保障团队。
4. 事后复盘,业务加固通过该演练方案,共发现业务10+隐患,并制定对应的todolist 进行业务优化。
总结
在主动运维过程中的故障演练实践,实现从业务故障场景挖掘、业务故障模式制定、联合演练和保障,到最终发现隐患和隐患闭环的完整环形链条。不断迭代、演练和验证,实现问题的彻底闭环和业务高可靠性的目标。通过分析业务历史故障、新业务场景上线及深入了解企业的业务特点,完善故障模式库,结合持续的演练和架构优化提升,保障百万级别流量的业务稳定性。后续将持续深入客户,完善租户面故障场景,更好的普及客户,助力用户用好云。
- 点赞
- 收藏
- 关注作者
评论(0)