基于云计算的电子商务网站的改造*
2012-09-28王晓燕
王晓燕
(陕西工商职业学院教务处,陕西 西安 710119)
一、背景及研究意义
随着互联网的发展,信息化在各个领域开花结果,越来越多的人把越来越多的事情交给互联网来处理。在不断提升互联网用户工作效率和生活质量的同时,对于互联网应用提供商来说,数据量和计算的压力也越来越大。为了提供更高质量的服务,互联网提供商的机房被不断扩建,更多的计算机和相关设备被生产出来,并部署在这些机房,随之而来的自然是避免不了的高额成本。这里的成本不止是维持一个服务器集群所需要的电力、冷却和互联网带宽等维护成本,还有越来越高的投入门槛——对于成长型的网站,建立服务器集群的初始投资正在困扰着那些心怀创意的网站创业者。
对于互联网应用的代表之一,电子商务网站即“在线商城”,即便在花费巨额资金之后摆脱了上述困扰,又开始遭遇耗费不菲的人力物力搭建和维护的大量计算资源在很长的时间段内却被闲置和浪费的困境。在传统的模式下,为了满足以国庆,春节甚至11月11日“光棍节”为代表的节假日里,突发客流高峰下系统仍然可以为客户提供可接受的用户体验的要求,在线商城提供商必须部署一个可以满足最高峰客流的服务器集群,而在这些假期结束之后,这个集群将会以很低的资源占用率运行,长期的看,维护和购置成本存在巨大的浪费。如何才能拥有一个“弹性”——也就是高可用和高扩展性——的计算资源,可以在高峰到来时增加计算资源以获取更好的用户体验,而在低谷时减少计算资源以节约运维成本?这是摆在每一个电子商务网站甚至每一个互联网应用的开发者和维护者面前的巨大挑战。除此之外,现有的电子商务网站多数建立于数年前,已经拥有稳定的客流,虽然期望通过改造实现高扩展性和可用性来解决目前的危机,但是因为要控制投资规模和降低风险,仍然希望尽可能少的对现有系统进行调整。
在尽可能少的对现有系统进行修改的前提下,探索一条基于云计算技术解决这个难题的途径,这就是本文的主要研究目的。
二、国内外研究现状
面对上文谈到的挑战,人们尝试通过使用计算能力更强大的计算机,效率更高的基础软件,如操作系统,服务器和数据库等来解决问题,但是这些显然无法从根本上实现“弹性”。于是,业内人士普遍认为,互联网提供商需要更加彻底的技术变革[1]。这种变革主要体现在两个方面,云计算的兴起和BASE(基本可用,软状态及最终一致)风格[2]的形成。
三、云计算的兴起
这场变革是从虚拟化技术的普及开始的。虚拟化实现了资源的逻辑抽象和统一表示,大大降低了管理复杂度,提高了资源利用率和运营效率,从而有效地控制了IT的成本。
但是只有这些是不够的,硬件的虚拟化需要构建数据中心,所以硬件采购、软件安装、系统维护等环节也是避免不了的。于是,租借数据中心成为了解决剩余问题的法宝。就像上个世纪早期,人们从自备发电机发电转向使用发电厂提供给公众的电能,向面向公众开放的数据中心租借抽象后的虚拟化计算资源来搭建自己的信息化系统开始替代自己建立和维护数据中心。这样,对数据中心有很大需求的互联网提供商,比如电子商务网站可以摆脱对数据中心的搭建和维护,只需要向计算资源租赁服务的提供者 (就是下文谈到的云计算提供商)租借统一的计算单元就可以承载自己的计算任务了。这样,电子商务网站在遇到淡季时少租借一些,而旺季多租借一些计算单元就可以初步实现上文提到的弹性计算。因为作为计算资源的使用者并不了解自己使用的计算资源来自什么样的计算机和网络结构,这些信息都被互联网隔离而且不需要使用者关注,人们形象的称这种提供计算资源的服务为“云计算”。
总之,云计算是一种采用创新的计算模式可以使用户对计算和服务取用自由、按量付费。一般的说,云计算有3个最基本的特征:第一是基础设施架构在大规模的服务器集群之上;第二是应用程序与底层服务协作开发,最大限度地利用资源;第三是通过多个服务器之间的冗余,通过软件获得高可用性。[3]
根据云计算提供商提供服务的层次和对平台架构的隔离程度,业界将云计算分为以下三个层次:基础设施即服务 (IaaS),平台即服务 (PaaS)和软件即服务 (SaaS)[4],三者的层次如图1所示。
图1 :云计算的分层[5]
基础设施即服务 (IaaS):这个层次的云计算服务涵盖了计算机硬件,网络设施,安全保障,备份冗余等基础设施。使用IaaS的用户面对的是一台虚拟化的机器,只需要自行安装和管理操作系统,服务器软件,自身业务系统即可。IaaS是云计算的基础。直接使用的话,IaaS的主要优点是对现有系统的影响最小;缺点是进行计算量伸缩 (增加或减小计算能力)有明显的时间间隔,没有实现无缝伸缩。IaaS的代表有美国亚马逊公司提供的EC2计算服务,日本IIJ株式会社提供的IIJ GIO服务等。
平台即服务 (PaaS):这个层次的云计算服务是在IaaS的基础上增加了操作系统,数据库系统,服务器软件和一些中间件。使用PaaS的用户面对的是一个运行平台,只需要部署和维护基于该平台开发的系统即可。PaaS的主要优点是可以实现计算量随使用需求自由增大和缩小,并按照使用量进行计费,真正实现了无缝伸缩;缺点是使用者需要根据云计算提供商的平台进行系统开发或改造。PaaS的代表有美国微软公司提供的Windows Azure平台,美国谷歌公司提供的AppEngine平台等[5]。
软件即服务 (SaaS):SaaS是云计算在最终用户面前的展现形式,最终用户不需要关心系统的细节,只需要通过互联网直接使用即可。因为这个层次的云计算是直接面对最终用户的,在本文中就不进行深入探讨了。SaaS的代表有美国Salesforce公司提供的在线CRM网站等。
四、BASE风格的形成
除了以云计算为代表的计算和商业模式的创新,业务处理的模型也在发生着转型。为了应对软件系统对扩展性等的要求,2000年7月19日,Eric Brewer教授 (现执教于加州大学伯克利分校)在ACM研讨会上提出了著名的CAP理论“任何分布式系统在一致性,可用性和分区容错性 (可以理解为可扩展性)三者中只能满足两者”[6],随后学术界对这个理论进行了证明[7]。后来因为业务的快速膨胀,一些成长型的网站开始陆续遭遇CAP原则带来的困境——传统的设计思想中维持强一致性是首要任务,这样的系统中可用性和分区容错性很难得到保证。根据业务的需要,多数网站开始寻求在对一致性做出一定退让的前提下,提高可用性和分区容错性的解决方案。于是以业务分区为代表的一系列反传统设计范式的技术方案开始被大规模应用。在这个反传统的浪潮中,eBay公司的架构师Dan Pritchett博士于2008年用BASE风格(基本可用、软连接和最终一致性)这个概念深入总结了适度牺牲一致性换取高可用和高扩展性的技术思想[2],BASE风格也就成为了解决高可用和高扩展性的新选择。
理论上的进步带来了技术的进一步发展。早在BASE风格被总结归纳之前,亚马逊公司就推出了基于BASE风格设计的Amazon S3数据服务,并且引入了对用户屏蔽数据库物理结构,根据实际使用量付费的新运营模式。后来,这种对扩展性更加友好的技术思想伴随着拥有高可用性和扩展性的云计算平台,让互联网服务提供商,尤其是成长型的网站看到了低成本解决可用性和扩展性的新思路。
五、小结
综上所述,在解决高可用及高扩展性计算方面,国内外的专家学者以及工程师们正在寻找多种解决方案。云计算平台解决了计算和商业模式的问题,BASE风格解决了业务逻辑中常见的与云计算相冲突的部分。作者认为,理论上讲,只要按照BASE原则设计和实现网站系统,然后在云计算平台——尤其是扩展性和可用性更好的PaaS——上部署就能实现前文所提到的“弹性”计算。
]
[1]《虚拟化与云计算》小组.虚拟化与云计算 [M].北京:电子工业出版社,2009.
[2]D.Pritchett,“BASE:An Acid Alternative,”ACM Queue,卷 Volumn 6 Issue 3:48 -55,2008.
[3]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报2009,(5):1337-1348,2009.
[4]梁爽.基于SOA的云计算框架模型的研究与实现 [J].计算机工程与应用,2011,(35):92-94,2011.
[5]BillLiu.解析Windows Azure云计算操作系统体系结构 [J].微软 TechEd2011,北京:2011.
[6]E.Brewer,“Towards Robust Distributed Systems,”ACM Symposium on Principles of Distributed Computing Keynote 2000-7-19,Portland,Oregon,2000.
[7]N.L.Gilbert,“Brewer's conjecture and the feasibility of consistent,available,partition - tolerant web services,”ACM SIGACT News,卷 Volume 33 Issue 2,pp.51 -59,2002. [8]D.Giuseppe,“Dynamo:amazon's highly available key- value store,”出处 Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles,Skamania Lodge Stevenson,WA,USA,2007.