云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。 它将计算任务分布在大量计算机构成的资源池上,使得用户能够按需获取云计算力、存储空间和信息服务。这些资源池被称为”云“。它是一些可以自我维护和管理的虚拟计算机资源,通常是一些大型服务器集群,包括计算服务器,存储服务器和带宽资源等。通过专门软件实现自动管理,无需人为参与。 云计算的几大形式:IaaS,将基础设施作为服务、PaaS,将平台作为服务、SaaS,软件作为服务。 PaaS对资源的抽象层次更近一步,它供给用户应用程序的运行环境,典型的如Google App Engine。微软的MS Windows Azure也可以大致归入这一类。PaaS自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题。同时,用户自主权降低,必须使用特定的编程环境并遵守特定的编程模型。这点有点像高性能集群计算机里进行MPI编程,例如Google App Engine只允许使用Python和Java语言,基于称为Django的Web框架,调用Google App Engine SDK来开发应用服务。 SaaS的针对性更强,它将某些特定应用软件功能封转成服务,如Salesforce公司提供的CRM服务。SaaS既不想PaaS那样提供计算或者存储资源类型的服务,也不像IaaS一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。 当然,三者也在深化发展,比如AWS是以IssA发展的,但新提供的弹性MapReduce服务模仿了Google的MapReduce,简单数据服务SimpleDB模范了Google的Bigtable,这两种都属于PaaS的范畴。而它提供的电子商务服务FPS和DevPay以及网站反问统计服务,Alexa Web服务,则属于SaaS范畴。 云计算的数据储存技术主要有谷歌非开源的GFS和Hadoop开发团队的GFS的开源实现HDFS(Hadoop Distributed File System)。大部分IT厂商,包括雅虎和英特尔的“云”计划都采用HDFS。 云技术: Google拥有许许多多的业务,它必须解决海量数据存储和快速处理的问题,Google的诀窍在于发展出简单而又高效的技术,让多大百万台廉价计算机协同工作,共同完成任务。这些技术在诞生几年以后,才被命名为Google云计算技术。具体包括:Google文件系统GFS,分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。GFS提供了海量数据的存储和访问能力,MapReduce使得海量信息的并行处理更加容易,ChuRRy保证了分布式环境下并发操作的同步问题,Bigtable使得海量数据的管理和组织十分便利。 亚马逊:它依靠电子商务发展起来,凭借其在电子商务领域的大量基础性设施,先进的分布式计算技术和巨大的用户群,它很早就进入了云计算领域。目前,它的云计算服务主要包括:弹性云计算EC2(Amazon Elastic Compute Cloud),简单存储服务S3(Amazon Simple Storage Service)、简单数据库服务Simple DB(Amazon SimpleDB)、简单队列服务SQS(Amazon Simple Queue Service)、弹性MapReduce服务(Amazon Elastic MapReduce)、内容推送服务CloundFront(Amazon Elastic MapReduce)、电子商务服务(Amazon DevPay)、FPS(Amazon Flexible Payments Service)等。这额服务涉及云计算的方方面面,用户可以根据自己需要选取一个或者多个亚马孙云计算服务。 基础平台:Dynamo,一致性哈希算法(从目前主流的分布式哈希表(Distributed Hash Table,DHT)协议之一,一致性哈希算法通过修正简单哈希算法,解决了网络中的热点问题(Hot Pot ),使得DHT可以真正的应用于P2P环境中)。 ECS:亚马孙的云计算环境的基本平台,通过它提供的接口,可以按照自己的要求增加、删除实例。通过配置实例的数量可以保证计算能力随着通信量的变化而变化。 S3:简单的存储服务,可以将文件永久的存储在亚马孙的服务器上,S3的总体设计目标是可靠、易用以及低使用成本。 SQS:要想构建一个灵活的系统,低耦合是必要的,因为只有系统各个组件之间的关联尽可能的低,才可以根据系统需要随时从系统中增加或者删除某些组件。SQS是亚马孙为了解决其云计算平台,之间不同组件的通信而专门开发的。 SimpleDB:与S3不同的是,SimpleDB主要用于存储结构化的数据,并为了这些数据提供查找、删除等基本功能。 开源云计算系统
|
|