腾讯云Status Page(Tencent Cloud Health Dashborad ),作为腾讯云官方的产品可用信息对外窗口,需要保障在极端的故障情形下,还能及时且正确地对外呈现关键信息,这要求在架构设计和部署上做到多地域级别的容灾效果。为了达到目标,我们除实施针对性的架构设计和部署外,还对各类故障场景做了故障演练验证。
上篇 腾讯云Status Page(健康看板)容灾设计与混沌演练实践——上篇 我们讨论架构设计和部署,接下来的内容是关于相应故障演练验证的实践
故障注入主要通过腾讯云混沌演练平台实现,腾讯云有对外服务的版本,可以前往混沌演练平台进行了解。
为了验证上篇讨论的架构设计和部署方案是否达到预期,我们将全方位对不同场景进行演练,分别对接入层,逻辑层,数据层等实施以下故障注入:
通过腾讯云ecdn管理后台编辑主源,配置一个不可访问,一个正常服务:
接下来观察页面范围是否正常,且分析各个部署的请求日志
通过腾讯云ecdn管理后台编辑主源,配置的2个主VIP均不可用:
接下来观察页面访问是否正常,且分析各个可用区部署的请求日志
以上两个故障注入场景演练实施后请求的示意图:
通过主源VIP指向Nginx制造异常http状态码返回
server {
listen 443;
location / {
return 400; // 包括不同的 5xx 4xx
}
}
接下来观察页面访问是否正常,且分析各个可用区部署的请求日志和Nginx的日志
故障注入场景演练实施后请求的示意图:
通过腾讯云混沌演练平台pod Failed注入
通过腾讯云混沌演练平台pod Failed注入
逻辑层地域所有POD异常和单可用区所有POD异常2种故障注入后的请求示意图,都是主源VIP返回异常码后,进行备源重试:
通过腾讯云混沌演练平台pod Failed注入,包括前后端不同场景
故障注入后的K8s平台自动处理示意图
通过腾讯云混沌演练平台进行注入:
代码层面实现DB异常返回约定的50x异常码,ECDN节点接收到异常码后做备源重试:
上述针对性的对接入层,逻辑层,数据层故障演练验证的结果都达到了预期。
我们有足够信心保障腾讯云Status Page在可预期的各类异常场景下, 能够为客户提供有价值的产品可用性关键信息。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。