创建可扩展性系统-12

 云计算

 

 

 

虽然在90年代末已经提出类似云计算的概念,随着虚拟化技术的成熟和IT公司垄断规模的存在,云计算在这几年成为热门词汇。2006年亚马逊推出弹性计算云(Elastic Computing Cloud, EC2) , 谷歌CEO Eric Schmidt首次明确使用云计算(Cloud Computing)这个名词。 亚马逊,谷歌,惠普,微软等很多公司提供云计算服务。

云的概念是从最初的“网络云”衍生而来的,字面本身就形象反映了云计算服务的特征:近无限扩展性(按系统需要扩展),多用户,和虚拟化。云计算的另一个主要特征是按实际使用收费。按用户的实际使用收费,在某种意义上就是将企业内部设计实现近无限可扩展性系统的技术难度和风险,转化为简单的费用支出。

那么企业在何种情况下如何下最佳的使用云服务呢?

 

首先要澄清一个容易混淆的概念。网格计算(Grid Computing)不是云计算。网格计算是使用计算机网络上的大量计算机同时处理同一事务。网格计算很著名的例子是“在家搜索外太空文明”(Search for Extraterrestrial Intelligence (SETI) @Home)。世界各地成千上万的计算机共同使用他们的空闲CPU来处理海量的雷达信号。

虚拟化(Virtualization)是云计算的关键技术之一。 虚拟化技术分为完全虚拟化(Full Virtualization)和准虚拟化(Paravirtualization),前者模拟整个系统(包括BIOS,驱动程序等等),而后者使用管理模块和操作系统协调运行虚拟机。准虚拟化对灾害恢复,系统迁移,尤其是可扩展性的支持更好。 第三方提供的云服务一般是由大量的服务器组成,用管理软件让他们模拟小的“虚拟”服务器。比如一个32GB RAM可以被划分到4台虚拟机,每台拥有8GBRAM。客户允许运行虚拟服务器。

 

从云计算提供的服务来看, 云计算可以认为包括几个层次的服务:基础设施即服务( IaaS ), 平台即服务(PaaS)和软件即服务(SaaS)。

  • 基础设施即服务( IaaS, Infrastructure-as-a service )模式中,云服务供应商提供物理或虚拟机和其他资源,用户安装操作系统镜像和自己的应用程序。常见的包括亚马逊的CloudFormation, 微软的Azure Virtual Machine 和谷歌的GoogleComputeEngine。

  • 平台即服务(PaaS, Platform as a service)模式中, 云服务供应商提供的计算平台通常包括操作系统,编程语言运行环境,数据库和Web服务器。有的PaaS提供了系统自动的可扩展性支出。 常见的包括亚马逊的 ElasticBeanstalk, Salesforce的 Force.com , 谷歌的GoogleApp Engine和微软的Azure Compute。

  • 软件即服务(SaaS)模式中,云服务供应商安装和操作管理客户使用的应用程序,用户作为云服务的客户使用应用程序。做为云服务的SaaS和早期的SaaS的不同点在于其弹性,以满足可扩展性要求。常见的包括谷歌的GoogleApps, Salesforce. com 和微软的Office365.

 

【原图出自百度百科】

从用户对云服务的需求来看,云服务分计算云(Compute Clouds), 云存储(Cloud Storage)和云应用(Cloud Application). 计算云提供了近无限扩展性的廉价资源,而云应用接近于SaaS。 Skype, TouTube, 微软的在线服务都是云应用著名的例子。

使用云服务的很多优势很多,比如从设置到运行只要几分钟,而在公司内部申请购买新硬件到运行也许要数周到数月的时间。 但是推动企业使用云计算的最关键因素是节省IT成本。

商业云计算的一大特性是按实际使用收费。各个云服务供应商的收费标准略有不同。O'ReillyMedia的一份调查包括显示,使用云服务3年可以降低高达30%的IT成本。一般使用整一年云服务的费用和自己购买服务器的费用相当。也就是如果你24小时不停机的使用云服务一年以上,费用将超过自己拥有服务器的费用。不过这没有考虑企业在购买服务器后的存放场地的租金,维护系统的专业人员成本。

有些企业内部的常规工作,对于计算资源的使用时暂时性的,非常适合使用云服务供应商的云服务。比如每夜运行的数小时的批处理任务,生成过程需要大量资源; 或者在产品发布前QA的综合测试。 这些都不需要每天24小时使用机器。假设每夜的批处理任务需要运行4小时,那么同样(购买设备)的费用,你可以使用云服务6年。

 

使用云服务的另一个目的是利用云服务的近无限可扩展性能力。

对于业务稳定的成熟企业而言,很多业务活动本身具有季节性。 比如北美11月-12月的节日季节也是网上零售业的高峰,和销售淡季比,交易量要高出很多倍。而不定期的促销活动,或者突发性的社会事件,都会引起非常规的网站流量和交易活动的增加,有的时候这种增量大小是不可预测的。 使用第三方的云服务,可以避免企业为了应付交易高峰而购买大量机器,平时大量的机器闲置而造成浪费。

 

业务需求的不稳定性/不可预见性对IT的初创公司尤其明显。很多人认为,云服务会降低初创IT公司的门槛,带来新一轮的IT创新浪潮。对于IT的初创公司而言,因为初期的市场需要及其变化速度很难预计,同时早期用户体验非常重要,在资金上购买多大计算能力的服务器,在人力资源上找到有经验的程序员设计开发的系统能够满足市场潜在的需求增长等,这些不确定性是IT初创的门槛之一。

 

基于云服务的 按实际使用收费的特点和内在的可扩展性支持,初创公司早期业务很少,租用云服务可以节省更多的成本, 同时不必担忧业务高速增长对系统的压力。 通过使用开源软件和诸如AWS的云存储服务,一些初创公司的早期成本只有每月数千美金(主要是在高消费的加州硅谷的租金和一日三餐)。云计算带来了自己动手创业的经济(DIY economy)。

北美云计算的主要供应商

  • 亚马逊

亚马逊上云计算的先驱和开拓者。做为北美最大的网上零售商,为了能够处理购物高峰季节的系统要求,亚马逊维护了大量的计算资源。在业务非高峰期,闲置的计算机是巨大的浪费。如果充分利用闲置计算资源是推动亚马逊发展开发的云服务的最重要的推动力。 经过多年的发展,现在亚马逊提供了市场上最完善的云服务。

  • 弹性计算云(Elastic Computed Cloud, EC2)提供虚拟机/CPU

  • 简单存储服务(Simple Storage Service, S3) 提供储存服务

  • 简单队列服务(SQS)提供机器之间的消息传输服务

  • 简单DB(SimpleDB) 是基于S3和EC2的Web服务,提供结构化数据的实时查询业务

 

谷歌

谷歌提供了在线的文档服务,并且鼓励程序员使用Google App Engine 开发相关的产品。该服务只提供了Web应用程序的核心功能,限制了文件写操作。程序员使用Python读写谷歌数据库。

 

微软

微软的Windows Azure允许用户使用微软数据中心存储数据,并运行视窗程序。作为云平台,Azure提供了程序员在开发软件产品中的用户管理,流程管理,数据同步等一系列功能。

 

Salesforce.com

总部位于加州硅谷的Salesforce是基于SaaS的CRM(客户关系管理),近年来成功的将公司平台升级到云服务。公司的主要服务包括

  • The Sales Cloud : 提供了客户关系中的销售

  • The Service Cloud : 提供了客户关系中的对话

  • Your Cloud :提供了Force.com平台上的开发客户程序

 

中国的云计算发展

 

在2011年低的一个中国市场调研结果表明(网络世界),大部分企业的IT系统仍沿用传统部署方式,仅有3%的企业在2011年拥有被认可的云计算战略,制定了云计算并实施的企业占总数的5%,同时相当比例的企业尚未制定云计算战略 。国内企业在服务器虚拟化方面比较落后, 50%的企业仍然沿用在数据中心专有硬件上运行物理服务器的做法,(美国市场此比例仅为12%) 。同时,中国企业似乎对云存储服务关注更多。

 

未来中国IT行业发展的趋势是系统更高程度的集成和智能化;同时在城市化进程中的数字化城市将产生海量数据,云计算服务固有的可扩展性优势将使得其在城市数字化中占有一席之地。

 

 

 

模式名称:考虑使用云计算服务

描述: 使用云计算的按需要扩展(Scale On Demand)能力,降低IT成本

动机/试图解决问题: 当一项活动对计算资源的需求不稳定或者有季节性时,维持峰值时的计算能力将造成大量的资源闲置和浪费。

原理: 云计算的2大特点:按需要扩展,按使用收费。 按需要扩展保证了峰值时的计算要求; 按使用收费,避免了浪费,企业不必支付不使用的计算资源。

使用: 定期的批处理创建过程,QA在产品发布前的测试,季节性销售,IT初创公司业务

相关模式: 

总结:

因为云服务的成本和一些固有局限性,并不是企业所有业务都适合移植到云,尤其是企业的核心业务。 云服务的按需要扩展特性适合于计算资源需求不稳定的工作,比如定期的批处理,测试环境等。云服务解决了IT初创公司的扩展性难题,降低了其成本。

 

本文出自 “静水流深” 博客,转载请与作者联系!

你可能感兴趣的:(云计算,系统架构,可扩展性)