云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。
云计算平台可以划分为3类:以数据存储为主的存储型云平台 ,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。
Microsoft的云计算
Windows Azure服务器
Windows Azure 通过控制底层的网状控制器(Fabric Controller)将数据中心数量庞大的Windows 服务器有效的组织起来,给前端的应用提供计算和存储功能,并保证其可靠性。它可以看做是一个在线的操作系统环境,统治了整个数据中心的运算资源,用户可以很方便的调用这些资源,来执行各种应用程序。除此之外,操作系统升级、维护等也可以在系统不当机的情况下自动完成。
Windows Azure工具
同时微软的Windows Azure还提供了一套基于Visual Studio 的 Azure 工具,供开发者在个人计算机上开发、模拟和测试Azure 平台上的应用程序。
组成
目前 Azure 推出了5项托管服务,包括.NET应用服务、SQL服务、SharePoint服务、Dynamics CRM服务,以及LIve服务等,以帮助客户建立云计算的应用,或将现有的业务扩展到云端。
亚马逊的弹性计算云
亚马逊是互联网上最大的在线零售商,但是同时也为独立开发人员以及开发商提供云计算服务平台。亚马逊将他们的云计算平台称为弹性计算云(Elastic Compute Cloud,EC2),它是最早提供远程云计算平台服务的公司。
与Google提供的云计算服务不同,Google仅为自己在互联网上的应用提供云计算平台,独立开发商或者开发人员无法在这个平台上工作,因此只能转而通过开源的Hadoop软件支持来开发云计算应用。亚马逊的弹性计算云服务也和IBM的云计算服务平台不一样,亚马逊不销售物理的云计算服务平台,没有类似于“蓝云”一样的计算平台。亚马逊将自己的弹性计算云建立在公司内部的大规模集群计算的平台之上,而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(Instance),而付费方式则由用户的使用状况决定,即用户仅需要为自己所使用的计算平台实例付费,运行结束后计费也随之结束。
弹性计算云从沿革上来看,并不是亚马逊公司推出的第一项这种服务,它由名为亚马逊网络服务的现有平台发展而来。早在2006年3月,亚马逊就发布了简单存储服务(Simple Storage Service,S3),这种存储服务按照每个月类似租金的形式进行服务付费,同时用户还需要为相应的网络流量进行付费。亚马逊网络服务平台使用REST (Representational State Transfer)和简单对象访问协议(SOAP)等标准接口,用户可以通过这些接口访问到相应的存储服务。
2007年7月,亚马逊公司推出了简单队列服务(Simple Queue Service,SQS),这项服务使托管主机可以存储计算机之间发送的消息。通过这一项服务,应用程序编写人员可以在分布式程序之间进行数据传递,而无须考虑消息丢失的问题。通过这种服务方式,即使消息的接收方还没有模块启动也没有关系。服务内部会缓存相应的消息,而一旦有消息接收组件被启动运行,则队列服务将消息提交给相应的运行模块进行处理。同样的,用户必须为这种消息传递服务进行付费使用,计费的规则与存储计费规则类似,依据消息的个数以及消息传递的大小进行收费。
Google的云计算
Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的系统。包括Google建立在集群之上的文件系统Google File System,针对Google应用程序的特点提出的Map/Reduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable。
为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS,Google File System)。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响。
为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。
构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的BigTable系统。很多应用程序对于数据的组织还是非常有规则的。一般来说,数据库对于处理格式化的数据还是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable。
IBM蓝云计算平台
IBM在2007年11月15日推出了蓝云计算平台,为客户带来即买即用的云计算平台。它包括一系列的云计算产品,使得计算不仅仅局限在本地机器或远程服务器农场(即服务器集群),通过架构一个分布式、可全球访问的资源结构,使得数据中心在类似于互联网的环境下运行计算。
通过IBM的技术白皮书,我们可以一窥蓝云计算平台的内部构造。“蓝云”建立在IBM大规模计算领域的专业技术基础上,基于由IBM软件、系统技术和服务支持的开放标准和开源软件。简单地说,“蓝云”基于IBM Almaden研究中心(Almaden Research Center)的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。“蓝云”由IBM Tivoli软件支持,通过管理服务器来确保基于需求的最佳性能。这包括通过能够跨越多服务器实时分配资源的软件,为客户带来一种无缝体验,加速性能并确保在最苛刻环境下的稳定性。IBM新近发布的“蓝云(Blue Cloud)”计划,能够帮助用户进行云计算环境的搭建。它通过将Tivoli、DB2、WebSphere与硬件产品(目前是x86刀片服务器)集成,能够为企业架设一个分布式、可全球访问的资源结构。根据IBM的计划,首款支持Power和x86处理器刀片服务器系统的“蓝云”产品将于2008年正式推出,并且计划随后推出基于System z“大型主机”的云环境,以及基于高密度机架集群的云环境。