内容提要
Canva工程团队总结了2024年11月12日的故障,指出API网关崩溃的原因,包括软件部署、锁定和Cloudflare网络问题,导致canva.com在UTC时间9:08至10:00不可用。团队通过临时阻止CDN流量逐步恢复服务,并计划改进应急响应流程以防类似事件。
关键要点
-
2024年11月12日,Canva经历了严重的故障,导致canva.com在UTC时间9:08至10:00不可用。
-
故障原因包括API网关集群失败、软件部署、锁定问题和Cloudflare网络问题。
-
CDN提供商的路由问题导致所有客户端同时下载新资产,造成超过270,000个请求同时待处理。
-
故障并非由于新版本代码中的错误,而是由于客户端下载新版本时系统行为的变化。
-
新对象面板在所有等待设备上同时加载,导致API网关每秒请求超过150万次,远超正常峰值负载。
-
自动扩展未能跟上,API网关任务因内存耗尽而失败,最终导致完全崩溃。
-
Canva团队在9:29 AM UTC临时阻止CDN流量,允许新任务启动而不被请求淹没。
-
工程师逐步恢复流量,约20分钟后完全恢复服务。
-
事件响应者需要调整系统行为,以使其恢复到健康状态,这是韧性的经典例子。
-
为了减少未来类似事件的可能性,团队专注于改进事件响应流程,包括流量阻止和恢复的运行手册,以及增强API网关的韧性。
延伸解读
故障原因分析
Canva的宕机事件揭示了多种因素的交互作用,包括软件部署、锁定问题和CDN网络故障。特别是CDN提供商的路由问题导致了大量客户端同时请求新资产,造成了API网关的过载。这种复杂的故障模式强调了在系统设计中考虑多种潜在风险的重要性。
应急响应的重要性
Canva团队在事件中采取了临时阻止CDN流量的措施,成功缓解了故障。这一过程展示了应急响应的灵活性和适应性,强调了在面对突发事件时,快速调整系统行为的重要性。未来,团队计划改进应急响应流程,以增强系统的韧性。
系统负载与韧性
此次事件中,API网关的请求量激增至正常峰值的三倍,导致系统崩溃。这一现象反映了系统在高负载下的脆弱性,提醒企业在设计架构时需考虑负载均衡和自动扩展的有效性,以避免类似的崩溃事件。
延伸问答
Canva在2024年11月12日发生了什么故障?
Canva在2024年11月12日经历了严重的故障,导致canva.com在UTC时间9:08至10:00不可用。
导致Canva宕机的主要原因是什么?
故障主要由于API网关集群失败、软件部署、锁定问题和Cloudflare网络问题造成。
Canva是如何恢复服务的?
Canva团队在9:29 AM UTC临时阻止CDN流量,随后逐步恢复流量,约20分钟后完全恢复服务。
CDN路由问题对Canva的影响是什么?
CDN路由问题导致所有客户端同时下载新资产,造成超过270,000个请求同时待处理,导致API网关负载激增。
Canva团队计划如何防止类似事件再次发生?
团队计划改进事件响应流程,包括流量阻止和恢复的运行手册,以及增强API网关的韧性。
API网关崩溃的具体机制是什么?
API网关崩溃是由于请求过载和自动扩展未能跟上,导致内存耗尽和任务失败。