理论教育 亚马逊的弹性计算云系统:提高系统灵活性的解决方案

亚马逊的弹性计算云系统:提高系统灵活性的解决方案

时间:2023-05-27 理论教育 版权反馈
【摘要】:随着网站顾客的增加和服务内容的扩展,亚马逊主要依靠不断扩展后台的数据库容量来提供系统的伸缩性,但是这一方法到了2001年走到了尽头。通过这一方案,可以大大降低硬件维护成本和整个系统的灵活性。确定开发目标后,平克汉姆招募了一个团队在南非着手开发用于提供网络计算服务的亚马逊弹性计算云系统。8月,弹性计算云进入试运行状态。

亚马逊的弹性计算云系统:提高系统灵活性的解决方案

亚马逊公司从1996年开始运行Amazon.com万维网站。亚马逊的早期网站是一个相对简单的服务器加数据库的两级系统。前台的服务器运行Obidos系统,该系统包含所有的算法以及页面生成信息,包括后来使亚马逊闻名的产品推荐、产品评论等服务。随着网站顾客的增加和服务内容的扩展,亚马逊主要依靠不断扩展后台的数据库容量来提供系统的伸缩性,但是这一方法到了2001年走到了尽头。

2001年的亚马逊网站在第一次实现盈利后,无论是在产品门类,为顾客提供的服务,还是在顾客流量和交易量上都提高到了一个新的高度,这时的系统架构已经无法再提供扩展空间。经过深入的调查研究,亚马逊公司决定采用网络服务(Web Services)的方式来建立亚马逊新的技术平台[15]。这个平台依旧以亚马逊的网页为核心内容,但每一张网页不再通过原来的数据库生成,而是通过成百上千的网络服务来产生。具体来说,每一张亚马逊网站的网页根据所需要包含的信息从几十到上百个不同的网络服务获得数据,再将这些数据整合成页面内容[16]。每一个网络服务由8~12个人的服务小组来负责创建和维护,并使用亚马逊系统内部统一的调用格式。数据通过网络服务的形式提供的一大好处是调用者不用担心数据是如何存储的,这样就为数据的维护和更新提供了方便。而且这种分布式的平台使得亚马逊方便地将信息进行组合,为亚马逊提供灵活多变的各种服务创新提供了最好的基础支持。当这一平台建立后,亚马逊便将服务创新彻底分化,每当一个研发小组构思出一个新的服务时,就组织起一个服务小组作为该服务的开发者和使用者,负责该服务的编程、数据收集,以及后来的维护和升级。这在一定程度上避免了传统的系统开发系统维护由不同的人员分开进行做造成的很多责任问题[102]。

亚马逊用了不到一年的时间通过分布式的网络服务平台取代了原来的两级系统,实现了技术平台与竞争模式相协调,为亚马逊在后来10年的电子商务平台战略竞争提供了重要的平台竞争力。

2002年7月,亚马逊在初步实现了网络服务平台后,开始了平台战略的第一步,就是对外开放亚马逊网络服务(Amazon.com Web Services)。该服务将包括价格、用户评论在内的亚马逊产品信息通过应用程序界面(API)调用的形式免费提供给外界程序开发人员。亚马逊还将1996年就开始的亚马逊销售代理服务(Amazon Associate)与网络服务整合在了一起。这样通过网络调用和简单的动态网页编程,有基本网络编程经验的人就可以建立一个以亚马逊提供的商品为来源的网上商店。顾客从这些网店购买了产品后,这些网店就可以获得产品利润的5%~8%。亚马逊网络服务一推出就受到了对亚马逊服务感兴趣的各类群体的推崇和支持,大大超出了管理层对该服务的预期。

由于亚马逊的硬件平台仍然是以传统数据中心的客户/服务器架构设计理念为主,所以随着网站流量和服务种类的继续攀升和各种硬件设备数量的不断添加,维护和更换这些硬件设备成为亚马逊技术平台继续发展的主要挑战。亚马逊负责技术平台的克里斯·平克汉姆(Chris Pinkham)和他的助手本杰明·布莱克(Benjamin Black)在2003年向贝佐斯提交了一份将整个技术平台的计算硬件设备标准化和集群化,并将各类服务器虚拟化的报告。通过这一方案,可以大大降低硬件维护成本和整个系统的灵活性。在这个报告最后,他们提到了虚拟化后的技术平台不但可以为亚马逊本身提供服务,也可以为第三方电子商务公司或者是企业提供计算和电子商务服务的想法。贝佐斯对这一方案,尤其是最后的建议非常感兴趣。事实上,这一建议与当时管理层的想法不谋而合。在这之前,亚马逊的管理层在讨论反思亚马逊网络服务受欢迎的现象所意味的新市场机会时,逐渐形成了提供一个“互联网操作系统”的想法。

2002年的互联网在经历了网络泡沫之后,已经通过各种Web 2.0技术进入了一个新发展阶段。在这个阶段,互联网的使用者可以避开操作系统的局限直接与互联网产生互动,所以互联网已经逐渐超越个人计算机成为一个新的用户平台。这一趋势吸引了大量的网络编程人员来开发互联网应用程序。如果亚马逊能够为这些编程人员提供更多的服务内容,势必会吸引更多的人来使用亚马逊的平台和数据,从而创造更多商机。另外,当时很多企业的管理层像亚马逊一样,需要花费70%的时间来研究如何不断升级计算平台的问题。亚马逊根据在电子商务方面多年积累的经验和自身开发的系统,已经拥有最先进的大计算平台和软件技术,可以为企业的计算需求提供几乎无上限的扩展空间,这是这些企业无法从其他软件商那里得到的。如果通过亚马逊平台提供相应的企业需要的计算资源,就可以既为其他企业提供解决方案,也为亚马逊拓展一个全新的服务领域。有了这些前景构想,2003年贝佐斯任命安迪·杰西(Andy Jassy)担任了AWS(Amazon Web Services)新服务的负责人,开始实施这一计划。(www.daowen.com)

杰西他们通过研究确定了网络计算(Computing)、数据存储(Data Storage)、数据库(Database)和队列消息传递服务(Messaging)是以互联网为平台的各种应用所需要的四大基础服务。于是,这些服务成为亚马逊平台服务发展的主要目标。一般用户可以通过亚马逊平台所提供的网络计算虚拟服务器完成基本的计算需求,如果所需要的数据存储超出了一般需求,可以将额外的数据存储在亚马逊提供的数据存储服务上。数据库和消息传递以及日后开发的其他服务可以提供更强大的数据管理和处理功能。

确定开发目标后,平克汉姆招募了一个团队在南非着手开发用于提供网络计算服务的亚马逊弹性计算云系统(EC2)。Xen虚拟机技术和Linux集群被该团队用来作为主要软件和硬件架构基础。相对简单的队列信息传递服务系统(Amazon SQS)在2004年被开发出来。2006年3月,能够提供数据存储服务的亚马逊数据存储S3(Amazon Simple Storage Services)服务开始运行。8月,弹性计算云进入试运行状态。该服务让大型企业和个人用户在亚马逊注册后便可以在亚马逊的平台上通过弹性计算云创建自己所需要的若干虚拟服务器,然后在这些虚拟服务器上安装和运行自己需要的软件。

2006年全面推出的亚马逊网络服务平台吸引了大批的用户,这里面不光包括以前使用亚马逊商品数据的网络分销商,还包括使用亚马逊新的虚拟服务的大小企业,甚至是个人用户。AWS的流量开始迅速增加。亚马逊起初将市场目标放在了小型用户上,尤其是网络创业公司上,避开和升阳以及惠普等面向传统企业客户的直接竞争。亚马逊给网络创业公司提供了一个非常低的门槛,每个虚拟服务器每小时只收取10美分的租用费用,使得这些小公司不必把风投资金花费在不迫切需要的硬件资源上,也不必担心因为客户突然增多而导致服务拥挤。亚马逊甚至还提供了批处理服务。客户可以将需要批量处理的计算项目上载到亚马逊的服务器上,处理完后再通过网络将结果下载。

2007年6月,AWS服务的流量已经超过亚马逊网站的流量。这意味着更多的亚马逊服务的平台战略取得了重要的突破。2007年12月,亚马逊数据库服务SimpleDB投入运行。2008年,AWS平台已经能够提供12项不同的计算服务。这一年,亚马逊的弹性计算服务也进入正式运行状态,至此亚马逊在网络计算平台竞争上取得了先机。

云计算是网络计算平台技术发展起来后,信息产业为了将其大众化起的一个新名字。谷歌和亚马逊虽然由于自身发展需要各自研发出不同的云计算平台,但是它们并不是云计算概念的最早提出者,事实上早在1996年,康柏公司就提出了云计算的概念。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈