如何将AI能力与大数据技术结合,助力数据分析治理等工作的效率大幅提升,优化大数据引擎的性能及成本? 了解详情
写点什么

避免云服务失效导致的瘫痪

  • 2012-07-07
  • 本文字数:1404 字

    阅读完需:约 5 分钟

上周,又一 AWS 服务的失效冲击了几大网站及其服务。如何才能避免瘫痪?仅为伸缩进行架构还不够,还需为灾备进行架构。

根据 AWS 服务健康仪表板,Amazon 东区(北弗吉尼亚区)AZ 的一组云服务——EC2、EMR、RDS 和弹性 Beanstalk 失效,时间大约从六月 29 日下午 7:25 起,至六月 30 日下午 3 时止。该失效影响了许多公司及其服务和网站,其中有 Netflix、Instagram、Pinterest 和 Herokua。据 Amazon 报道,罪魁祸首是“由横扫北弗吉尼亚地区的大面积电暴引起的”电力事件,上周五晚间一场暴风雨袭击了美国东部地区,导致 13 人丧生,三百万人口被停电

除了电力设施的波动之外,一次巨大的电压脉冲袭击了两大计算中心,迫使它们切换到发电机供电模式,但是其中一个数据中心的发电机未成功运行,导致了相应数据中心在耗尽 UPS 之后停电。电力很快就得到恢复,但是将服务恢复至所有功能完好却需要长得多的时间。 Inmar 的架构副总裁 Mike Kavis解释了需要这么长时间的原因:“事实上,虽然 Amazon 的备份电源切换进来,但是并非所有的计算资源得到成功灾备。其结果是有一组虚拟服务被踢下线,直到 AWS 恢复它们为止。用户(译注:AWS 的用户)对于这一情况的应对措施决定了其应用是瘫痪还是保持弹性。许多网站瘫痪了。”

考虑到这类事件对于理解如何避免瘫痪的重要性。这次 AWS 的电力事故之后,Kavis 在其博文中说,他的公司自 2009 年起经历过 5 次 AWS 失效,但是他们的服务从未宕机过。原因是他们使用了多个 Zone 和 Region。

Amazon 的每个 Region 的 SLA 可达到 99.95%。在同一区域里从未发生过多个 Zone 同时失败,也从未出现过多个 Region 同时失败的情况。本质上,他们提供了计算资源的 100% 正常运行时间(uptime)。只不过这取决于我们如何架构系统以利用 Zone 和 Region 的优势……

我们假设平台中的每个服务器和服务都可能在某个时间点失败,所以设计出多条通路,使之能在多个 Zone 的冗余计算资源上继续处理交易。换言之,我们假定区域内的 Zone 可能会失效,所以将平台设计得不依赖于单个 Zone。

但是,多个 Zone 也不够,Kavis 说:

在这些失效中,我注意到一个模式,即 AWS 的 RDS 服务(将数据库管理过程自动化的服务)似乎在每次 Amzon 出现问题时都会失效……

事实上,我们手动管理我们的 MySQL 数据库才是我们在这些失效中保持弹性的主要原因之一。如果我们依赖于 RDS,我们也不会那么幸运。这是否意味着 AWS 客户不该使用 RDS 呢?不,我们仍然用它实现一些无需极端 SLA 的功能并提供与各销售点系统的实时连接。

Kavis 提到,上次 AWS 失效所袭击的一些公司有着“目前看到的最吸引人、最先进的高可用环境的架构”。但是,他们为了伸缩性牺牲了正常运行时间(uptime):

无 SLA 要求的免费社交媒体网站就可能会把更多的时间花在支持上百万并发用户的伸缩性上,同时会面临一至两个小时宕机的风险。对于他们而言,把精力花在处理突发访问量比关注不太容易发生的 AWS 失效更有价值。毕竟没有人会因为无法向 Facebook 传照片而死掉。

其结论是:若要实现永远可用,就要为灾备进行架构,而不仅仅为伸缩性架构。正如 Kavis 所言,“我们需要理解的是,弗吉尼亚地区的许多公司自建的数据中心也瘫痪了,而且仍然处于瘫痪中。发生了电力故障。云端和本地的数据中心都瘫痪了。最终一切都瘫痪了。正常运行时间(uptime)的秘密在于你如何在设计时考虑这些失效。”


查看英文原文: Avoiding Downtime When Cloud Services Fail

2012-07-07 11:171661
用户头像

发布了 184 篇内容, 共 71.4 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

《漫威复联》PC版游戏即将登陆,英特尔为其独家 CPU 合作伙伴

最新动态

不懂 ZooKeeper?没关系,这一篇给你讲的明明白白

大头星

Java zookeeper 分布式

Nginx配置80端口用于多个域名

石云升

nginx 域名配置 80端口共用

艺术与科技的碰撞!Tristan Easton携手英特尔为漫威粉丝带来十代酷睿《复联》收藏版

最新动态

Kotlin这么火!如何快速从Java过渡到Kotlin

华章IT

Java kotlin 协程 安卓

Linux入门系列1--环境准备及Linux安装

黑马腾云

Linux centos 运维 操作系统

linux入门系列2--CentOs图形界面操作及目录结构

黑马腾云

Linux centos7 操作系统 系统运维

Django 表单处理流程详解

BigYoung

django 表单 流程

lgloo Software 的 Jira Cloud 转型之旅

Atlassian

项目管理 DevOps 敏捷开发 Jira Cloud

十年磨一剑-BIGO全球音视频技术解决方案

InfoQ_3597a20b53cc

人工智能 大数据 技术

linux入门系列4--vi/vim编辑器

黑马腾云

vim Linux centos7 操作系统 VI

Windows AD巡检报错处理

BigYoung

windows AD 报错 巡检

吐血整理Windows电脑入侵自检大全

BigYoung

黑客 windows 日志 异常 自检

CentOS 7 配置Supervisor 服务遇到的坑总结

BigYoung

centos 报错 Supervisor

「分布式一致性协议」从2PC、3PC、Paxos到 ZAB

大头星

彻底解决雪花算法时间回拨问题新方案

柿子

算法 雪花算法

定义“开发者关系”

开发者关系

开发者关系 开发者运营 技术运营 开源社区

Django2.x中url路由的path()与re_path()参数解释

BigYoung

django path url re_path 参数

随着区块链技术的成熟,全球企业开始拥抱公共区块链

CECBC

区块链技术 公共区块链

物流与区块链加供应链的现状与未来趋势

CECBC

行业资讯 区块链技术 供应链

9个典型的开发者关系面试题

开发者关系

开发者关系 开发者运营 技术运营 开源社区

RPC原理

石刻掌纹

白话讲解:消息队列到底解决了什么问题?

博文视点Broadview

读书笔记 分布式 RocketMQ 中间件 消息队列

linux入门系列3--常见的linux远程登陆管理工具

黑马腾云

Linux xshell securecrt putty finallshell

话题讨论 | 特斯拉和拼多多杠上了,你有什么看法?

InfoQ写作社区官方

写作平台 话题讨论

CIC国信公链:做坚实的底层技术支撑,让区块链为现代农业插上腾飞的翅膀

CNG农业公链

区块链 农业发展 CIC国信公链 CNG农业链 赵其刚

跟我一起基于Karma搭建一个测试环境(上)

Jack Q

大前端 Karma 测试框架搭建

Mac JetBrains(IDE)常用快捷键

王坤祥

JetBrains 快捷键

LeetCode题解:88. 合并两个有序数组,双指针+从后往前,JavaScript,详细注释

Lee Chen

大前端 LeetCode

低/零代码平台的优点有哪些?

代码制造者

编程语言 低代码 零代码 信息化 编程开发

linux入门系列5--新手必会的linux命令

黑马腾云

Linux centos7 Shell linux命令 linux操作

避免云服务失效导致的瘫痪_架构_Abel Avram_InfoQ精选文章