热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

从亚马逊云服务故障中吸取的七个教训

亚马逊云服务故障引发了人们对云计算的担忧,快四天了,依然没有完全恢复。那么我们能从中吸取哪些教训呢?1.认真阅读云服务提供商的服务水平协议令人叫绝的是近乎四天的故障并没有违反亚马逊的EC2服务水平协

亚马逊云服务故障引发了人们对云计算的担忧,快四天了,依然没有完全恢复。那么我们能从中吸取哪些教训呢?

1. 认真阅读云服务提供商的服务水平协议

令人叫绝的是近乎四天的故障并没有违反亚马逊的EC2服务水平协议(SLA),FAQ部分写着“在一个区域内一年以内保证99.95%的可用性”。而这次发生故障的是EBS和RDS服务,而不是EC2,所有故障都发生在单独区域,从法律角度讲该协议没有问题。 这一点值得思考。

2. 别认为服务商的保障可以做到万无一失

很多受影响用户向亚马逊支付额外费用把自己的服务托管在多个可用区(Availability Zone)。亚马逊实际上也推荐这种做法。亚马逊称每个可用区都独立运转,有独立的基础设施,非常可靠。一个可用区的发电机或冷却系统出现问题不会影响其它数据中心。此外,这些区域之间有物理隔绝,即便遇到火灾、龙卷风、洪水等自然灾害也只会影响一个可用区。不幸的是这只是一种技术指标,并没有包括在合同条款。亚马逊消除此次事件的负面影响还需要一段时间。

做到事后诸葛亮不难,但亚马逊面对这种故障时的脆弱或许本可以通过深入的尽职演练加以避免。正如亚马逊竞争对手Joyent的首席科学家 Jason Hoffman 所言:“这次不是速度变慢,不是云计算失败,也不是成长的烦恼,这是亚马逊的基础框架决策导致的可预见后果。”

3. 大部分顾客仍会原谅亚马逊的失败

不管所受影响多么严重,人们一直在赞美亚马逊,因为亚马逊帮助他们用低廉的成本和少量的投入运营者强大的基础设施。很多人在批评的同时也会给予褒奖,比如BigDoor表示:“AWS帮助我们以极低的成本快速升级一个负责的系统。在任何时候我们都有运转良好的12台数据库服务器,45台应用服务器,6台静态服务器和6台分析服务器。如果流量或处理能力超了我们的系统会自动升级,如果不需要就会自动降级,从而节省费用。”

4. 除了云服务提供商的恢复能力之外,还有很多补救措施

正如来自O’Reilly的 George Reese 指出,如果你的系统在本周的亚马逊云服务故障中挂彩的话,那不是亚马逊的错误。或者你把这种故障看作是可接受的风险,或者你没能按照亚马逊云计算模式进行设计。查看亚马逊顾客使用的技术、避免故障非常有用。

Twilio和NetFlix在此次故障中安然无恙,前者是因为根据亚马逊的技术规范进行了出色的设计,后者虽然把所有的基础设施都托管在亚马逊云服务中,但通过使用多个数据中心的服务来确保服务的可靠性。

5. 增加额外的恢复能力需要更高成本

聪明的用户和Paas服务商应该准备多套方案。无论如何你都应该备份到亚马逊S3存储服务上,这样一旦出现问题,你可以从S3中恢复。

6. 权衡好利弊关系可以帮助你提出问题

在选择一家云服务之前要提出一些问题,从而判断该服务是否靠谱。

比如你可以问这样的问题:你们会通过关闭某些基础设施来检测你们的自动备份能力吗?当然,你最好能亲眼看到类似测试。

7. 缺乏透明性是亚马逊的“软肋”

很多受到影响的顾客都抱怨在故障期间亚马逊没有提供足够的有用信息。BigDoor CEO Keith Smith 说“如果亚马逊能预料到他们目前遭遇的故障的话,我们就可以很快恢复我们的系统了”。GoodData 的 Roman Stanek 则呼吁亚马逊推倒神秘的围墙:

我们的开发运营人员不知道如何管理系统的性能、可扩展性、以及最重要的应急恢复能力。“合理的”服务水平协议和“99.999%承诺”之间的区别就是临时抱佛脚和完全符合我们各自运营流程之间的区别……在云设施中,IaaS,PaaS,SaaS和顾客之间不应该有沟通围墙。

亚马逊在未来几周内的挑战就是如何提供用户所需信息,增强自己的恢复能力。如果亚马逊无法满足这种需求,而且其它公司做得更好的话,它或许会渐渐失去今天在Iaas领域的统治地位。


推荐阅读
  • 本文介绍了如何在 DB2 环境中创建和删除数据库编目。创建编目是连接新数据库的必要步骤,涉及获取数据库连接信息、使用命令行工具进行配置,并验证连接的有效性。删除编目则用于移除不再需要的数据库连接。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 本文详细介绍了如何使用libpq库与PostgreSQL后端建立连接。通过探讨PQconnectdb()函数的工作原理及其在实际应用中的使用方法,帮助读者理解并掌握建立高效、稳定的数据库连接的关键步骤。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • IT项目管理过程中的方法、工具、技术
    工欲善其事,必先利其器。而对于一个软件开发项目,最重要的器就是方法,工具和技术。而这三要素中重要的又是方法论,方法是基础&# ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
author-avatar
hjalshj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有