计算平台简介
云计算:
云计算(cloud computing)是基于互联⽹的相关服务的增加、使⽤和交付模式,通常涉及通过互联⽹来提供动态易扩展且经常是虚拟化的资源。云是⽹络、互联⽹的⼀种⽐喻说法。过去在图中往往⽤云来表⽰电信⽹,后来也⽤来表⽰互联⽹和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使⽤模式,指通过⽹络以按需、易扩展的⽅式获得所需资源;⼴义云计算指服务的交付和使⽤模式,指通过⽹络以按需、易扩展的⽅式获得所需服务。这种服务可以是IT和软件、互联⽹相关,也可是其他服务。它意味着计算能⼒也可作为⼀种商品通过互联⽹进⾏流通。
云计算平台:
云计算平台[1]可以划分为3类:以数据存储为主的存储型云平台
云平台
,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。[1]
Amazon、google、IBM、microsoft云计算主要平台:
Amazon的EC2
Google的App Engine
IBM的Blue Cloud
microsoft的Azure
⼀、Amazon的计算云
Amazon将⾃⼰的弹性计算云建⽴在公司内部的⼤规模集计算的平台上,⽽⽤户可以通过弹性计算云的⽹络界⾯去操作在云计算平台上运⾏的各个实例(instance)。⽤户使⽤实例的付费⽅式由⽤户的使⽤状况决定,即⽤户只需为⾃⼰所使⽤的计算平台实例付费,运⾏结束后计费也随之结束。这⾥所说的实例即是由⽤户控制的完整的虚拟机运⾏实例。通过这种⽅式,⽤户不必⾃⼰去建⽴云计算平台,节省了设备与维护费⽤
亚马逊是互联⽹上最⼤的在线零售商,但是同时也为独⽴开发⼈员以及开发商提供云计算服务平台。亚马逊将他们的云计算平台称为弹性计算云(Elastic Compute Cloud,EC2),它是最早提供远程云计算平台服务的公司。
Amazon EC2 (Elastic Compute Cloud)是⼀个让⽤户可以租⽤云电脑运⾏所需应⽤的系统。EC2借由提供web服务的⽅式让⽤户可以弹性地运⾏⾃⼰的Amazon机器镜像⽂件,⽤户将可以在这个虚拟机上运⾏任何⾃⼰想要的软件或应⽤程序。
⽤户可以随时创建、运⾏、终⽌⾃⼰的虚拟服务器,使⽤多少时间算多少钱,也因此这个系统是"弹性"使⽤的。EC2让⽤户可以控制运⾏虚拟服务器的主机地理位置,这可以让延迟还有备援性最⾼。例如,为了让系统维护时间最短,⽤户可以在每个时区都运⾏⾃⼰的虚拟服务器。Amazon以Amazon Web s (AWS)的品牌提供EC2的服务。
EC2的主要特性:
(1)灵活性:可⾃⾏配置运⾏的实例类型、数量,还可以选择实例运⾏的地理位置。可以根据⽤户的需求随时改变实例的使⽤数量。(2)低成本:按⼩时计费
(3)安全性:SSH、可配置的防⽕墙机制、监控等
(4)易⽤性:⽤户可以根据Amazon提供的模块⾃由构建⾃⼰的应⽤程序,同时EC2还会对⽤户的服务请求⾃动进⾏负载平衡
(5)容错性:弹性IP
⼆、Google 的云计算平台
Google的硬件条件优势,⼤型的数据中⼼、搜索引擎的⽀柱应⽤,促进Google云计算迅速发展。Google的云计算主要由MapReduce、Google⽂件系统(GFS)、BigTable组成。它们是Google内部云计算基础平台的3个主要部分。Google 还构建其他云计算组件,包括⼀个领域描述语⾔以及分布式锁服务机制等。Sawzall是⼀种建⽴在MapReduce基础上的领域语⾔,专门⽤于⼤规模的信息处理。Chubby是⼀个⾼可⽤、分布式数据锁服务,当有机器失效时,Chubby使⽤Paxos算法来保证备份。
(1)Google File System ⽂件系统
  为了满⾜Google迅速增长的数据处理需求,Google设计并实现了Google⽂件系统(GFS,Google File System)。GFS与过去的分布式⽂件系统拥有许多相同的⽬标,例如性能、可伸缩性、可靠性以及可⽤性。然⽽,它的设计还受到Google应⽤负载和技术环境的影响。主
要体现在以下四个⽅⾯:
  1. 集中的节点失效是⼀种常态,⽽不是⼀种异常。由于参与运算与处理的节点数⽬⾮常庞⼤,通常会使⽤上千个节点进⾏共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运⾏状况,侦测错误,并且将容错以及⾃动恢复系统集成在系统中。
  2. Google系统中的⽂件⼤⼩与通常⽂件系统中的⽂件⼤⼩概念不⼀样,⽂件⼤⼩通常以G字节计。另外⽂件系统中的⽂件含义与通常⽂件不同,⼀个⼤⽂件可能包含⼤量数⽬的通常意义上的⼩⽂件。所以,设计预期和参数,例如I/O操作和块尺⼨都要重新考虑。
  3. Google⽂件系统中的⽂件读写模式和传统的⽂件系统不同。在Google应⽤(如搜索)中对⼤部分⽂件的修改,不是覆盖原有数据,⽽是在⽂件尾追加新数据。对⽂件的随机写是⼏乎不存在的。对于这类巨⼤⽂件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原⼦性(把⼀个事务看做是⼀个程序。它要么被完整地执⾏,要么完全不执⾏)保证的焦点。
  4. ⽂件系统的某些具体操作不再透明,⽽且需要应⽤程序的协助完成,应⽤程序和⽂件系统API的协同设计提⾼了整个系统的灵活性。例如,放松了对GFS⼀致性模型的要求,这样不⽤加重应⽤程序的负担,就⼤⼤简化了⽂件系统的设计。还引⼊了原⼦性的追加操作,这样多个客户端同时进⾏追加的时候,就不需要额外的同步操作了。如何搭建云平台
(2)MapReduce分布式编程环境
  为了让内部⾮分布式系统⽅向背景的员⼯能够有机会将应⽤程序建⽴在⼤规模的集基础之上,Google还设计并实现了⼀套⼤规模数据处理的编程规范Map/Reduce系统。这样,⾮分布式专业的程序编写⼈员也能够为⼤规模的集编写应⽤程序⽽不⽤去顾虑集的可靠性、可扩展性等问题。应⽤程序
编写⼈员只需要将精⼒放在应⽤程序本⾝,⽽关于集的处理问题则交由平台来处理。
  Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,⽤户只需要提供⾃⼰的Map函数以及Reduce函数就可以在集上进⾏⼤规模的分布式数据处理。
(3)分布式⼤规模数据库管理系统BigTable
  构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的BigTable系统。很多应⽤程序对于数据的组织还是⾮常有规则的。⼀般来说,数据库对于处理格式化的数据还是⾮常⽅便的,但是由于关系数据库很强的⼀致性要求,很难将其扩展到很⼤的规模。为了处理Google内部⼤量的格式化以及半格式化数据,Google构建了弱⼀致性要求的⼤规模数据库系统BigTable。
三、IBM“蓝云”计算平台
“蓝云”解决⽅案是由IBM云计算中⼼开发的企业级云计算解决⽅案。该解决⽅案可以对企业现有的基础架构进⾏整合,通过虚拟化技术和⾃动化技术,构建企业⾃⼰拥有的云计算中⼼,实现企业硬件资源和软件资源的统⼀管理、统⼀分配、统⼀部署、统⼀监控和统⼀备份,打破应⽤对资源的独占,从⽽帮助企业实现云计算理念。
IBM在2007年11⽉15⽇推出了蓝云计算平台,为客户带来即买即⽤的云计算平台。它包括⼀系列的云计算产品,使得计算不仅仅局限在本地机器或远程服务器农场(即服务器集),通过架构⼀个分布式、可全球访问的资源结构,使得数据中⼼在类似于互联⽹的环境下运⾏计算。“蓝云”建⽴在IBM领域的专业技术基础上,基于由IBM软件、系统技术和服务⽀持的开放标准和开源软件。简单地说,“蓝云”基于IBM Almaden研究中⼼(Almaden Research Center)的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop⽂件系统与并⾏构建。“蓝云”由IBM Tivoli软件⽀持,通过管理服务器来确保基于需求的最佳性能。这包括通过能够跨越多服务器实时分配资源的软件,为客户带来⼀种⽆缝体验,加速性能并确保在最苛刻环境下的稳定性。蓝云计算平台由⼀个数据中⼼: IBM Tivoli部署管理软件(Tivoli Provisioning Manager)、IBM Tivoli监控软件(IBM Tivoli Monitoring)、IBM WebSphere应⽤服务器、IBM DB2数据库以及⼀些虚拟化的组件共同组成。
蓝云的硬件平台并没有什么特殊的地⽅,但是蓝云使⽤的软件平台相较于以前的分布式平台具有不同的地⽅,主要体现在对与虚拟机的使⽤以及对于⼤规模数据处理软件Apache Hadoop的部署。
(1)“蓝云”中的虚拟化
虚拟化的⽅式在云计算中可以在两个级别上实现。⼀个级别是在硬件级别上实现虚拟化。硬件级别的虚拟化可以使⽤IBM p系列的服务器,获得硬件的逻辑分区LPAR。逻辑分区的CPU资源能够通过IBM Ente
rprise Workload Manager来管理。通过这样的⽅式加上在实际使⽤过程中的资源分配策略,能够使得相应的资源合理地分配到各个逻辑分区。P系列系统的逻辑分区最⼩粒度是1/10颗中央处理器(CPU)。
  虚拟化的另外⼀个级别可以通过软件来获得,在蓝云计算平台中使⽤了Xen虚拟化软件。Xen也是⼀个开源的虚拟化软件,能够在现有的Linux基础之上运⾏另外⼀个操作系统,并通过虚拟机的⽅式灵活地进⾏软件部署和操作。
  通过虚拟机的⽅式进⾏云计算资源的管理具有特殊的好处。由于虚拟机是⼀类特殊的软件,能够完全模拟硬件的执⾏,因此能够在上⾯运⾏操作系统,进⽽能够保留⼀整套运⾏环境语义。这样,可以将整个执⾏环境通过打包的⽅式传输到其他物理节点上,这样就能够使得执⾏环境与物理环境隔离,⽅便整个应⽤程序模块的部署。总体上来说,通过将虚拟化的技术应⽤到云计算的平台,可以获得⼀些良好的特性:
  1. 云计算的管理平台能够动态地将计算平台定位到所需要的物理平台上,⽽⽆需停⽌运⾏在虚拟机平台上的应⽤程序,这⽐采⽤虚拟化技术之前的进程迁移⽅法更加灵活。
  2. 能够更加有效率地使⽤主机资源,将多个负载不是很重的虚拟机计算节点合并到同⼀个物理节点上,从⽽能够关闭空闲的物理节点,达到节约电能的⽬的。
  3. 通过虚拟机在不同物理节点上的动态迁移,能够获得与应⽤⽆关的负载平衡性能。由于虚拟机包含了整个虚拟化的操作系统以及应⽤程序环境,因此在进⾏迁移的时候带着整个运⾏环境,达到了与应⽤⽆关的⽬的。
  4. 在部署上也更加灵活,即可以将虚拟机直接部署到物理计算平台当中。
(2)“蓝云”中的存储结构
  蓝云计算平台中的存储体系结构对于云计算来说也是⾮常重要的,⽆论是操作系统,服务程序还是⽤户应⽤程序的数据都保存在存储体系中。云计算并不排斥任何⼀种有⽤的存储体系结构,⽽是需要跟应⽤程序的需求结合起来获得最好的性能提升。总体上来说,云计算的存储体系结构包含类似于Google File System的集⽂件系统以及基于块设备⽅式的存储区域⽹络SAN两种⽅式。
  在设计云计算平台的存储体系结构的时候,不仅仅是需要考虑存储的容量。实际上随着硬盘容量的不断扩充以及硬盘价格的不断下降,使⽤当前的磁盘技术,可以很容易通过使⽤多个磁盘的⽅式获得很⼤的磁盘容量。相较于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是⼀个更重要的问题。单个磁盘的速度很有可能限制应⽤程序对于数据的访问,因此在实际使⽤的过程中,需要将数据分布到多个磁盘之上,并且通过对于多个磁盘的同时读写以达到提⾼速度的⽬的。在云计算平台中,数据如何放置是⼀个⾮常重要的问题,在实际使⽤的过程中,需要将数据分配到多个节点的多个磁盘当中。⽽能
够达到这⼀⽬的的存储技术趋势当前有两种⽅式,⼀种是使⽤类似于Google File System的集⽂件系统,另外⼀种是基于块设备的存储区域⽹络SAN系统。
  Google⽂件系统在前⾯已经做过⼀定的描述。在IBM的蓝云计算平台中使⽤的是它的开源实现Hadoop HDFS (Hadoop Distributed File System)。这种使⽤⽅式将磁盘附着于节点的内部,并且为外部提供⼀个共享的分布式⽂件系统空间,并且在⽂件系统级别做冗余以提⾼可靠性。在合适的分布式数据处理模式下,这种⽅式能够提⾼总体的数据处理效率。Google⽂件系统的这种架构与SAN系统有很⼤的不同。
  SAN系统也是云计算平台的另外⼀种存储体系结构选择,在蓝云平台上也有⼀定的体现,IBM也提供SAN的平台能够接⼊到蓝云计算平台中。
  SAN系统是在存储端构建存储的⽹络,将多个存储设备构成⼀个存储区域⽹络。前端的主机可以通过⽹络的⽅式访问后端的存储设备。⽽且,由于提供了块设备的访问⽅式,与前端操作系统⽆关。在SAN连接⽅式上,可以有多种选择。⼀种选择是使⽤光纤⽹络,能够操作快速的光纤磁盘,适合于对性能与可靠性要求⽐较⾼的场所。另外⼀种选择是使⽤以太⽹,采取iSCSI协议,能够运⾏在普通的局域⽹环境下,从⽽降低了成本。由于存储区域⽹络中的磁盘设备并没有与某⼀台主机绑定在⼀起,⽽是采⽤了⾮常灵活的结构,因此对于主机来说可以访问多个磁盘设备,从⽽能够获得性能的提升。在存储区域⽹
络中,使⽤虚拟化的引擎来进⾏逻辑设备到物理设备的映射,管理前端主机到后端数据的读写。因此虚拟化引擎是存储区域⽹络中⾮常重要的管理模块。
  SAN系统与分布式⽂件系统例如Google File System并不是相互对⽴的系统,⽽是在构建集系统的时候可供选择的两种⽅案。其中,在选择SAN系统的时候,为了应⽤程序的读写,还需要为应⽤程序提供上层的语义接⼝,此时就需要在SAN之上构建⽂件系统。⽽Google File System正好是⼀个分布式的⽂件系统,因此能够建⽴在SAN系统之上。总体来说,SAN与分布式⽂件系统都可以提供类似的功能,例如对于出错的处理等。⾄于如何使⽤还是需要由建⽴在云计算平台之上的应⽤程序来决定。
  与Google不同的是,IBM并没有基于云计算提供外部可访问的⽹络应⽤程序。这主要是由于IBM并不是⼀个⽹络公司,⽽是⼀个IT的服务公司。当然,IBM内部以及IBM未来为客户提供的软件服务会基于云计算的架构。
四、微软云计算平台:Windows Azure
Windows Azure是微软基于云计算的操作系统,和Azure Services Platform⼀样,是微软“软件和服务”技术的名称。Windows Azure的主要⽬标是为开发者提供⼀个平台,帮助开发可运⾏在、数据中⼼、Web和PC上的应⽤程序。云计算的开发者能使⽤微软全球数据中⼼的储存、计算能⼒和⽹络基础服务。Azure服务平台包括了以下主要组件:Windows Azure;Microsoft SQL数据库服务,Microsoft .Net服务;
⽤于分享、储存和同步⽂件的Live服务;针对商业的Microsoft SharePoint和Microsoft Dynamics CRM服务。
The Azure Services Platform (Azure)是⼀个互联⽹级的运⾏于微软数据中⼼系统上的云计算服务平台,它提供操作系统和可以单独或者⼀起使⽤的开发者服务。Azure是⼀种灵活和⽀持互操作的平台,它可以被⽤来创建云中运⾏的应⽤或者通过基于云的特性来加强现有应⽤。它开放式的架构给开发者提供了Web应⽤、互联设备的应⽤、个⼈电脑、服务器、或者提供最优在线复杂解决⽅案的选择。
Windows Azure以云技术为核⼼,提供了软件+服务的计算⽅法。它是Azure服务平台的基础。Azure⽤于帮助开发者开发可以跨越云端和专业数据中⼼的下⼀代应⽤程序,在PC、Web和⼿机等各种终端间创造完美的⽤户体验。
Azure能够将处于云端的开发者个⼈能⼒,同微软全球数据中⼼⽹络托管的服务,⽐如存储、计算和⽹络基础设施服务,紧密结合起来。这样,开发者就可以在“云端”和“客户端”同时部署应⽤,使得企业与⽤户都能共享资源。
Windows Azure是专为在微软建设的数据中⼼管理所有服务器,⽹络以及存储资源所开发的⼀种特殊版本Windows Server操作系统,它具有针对数据中⼼架构的⾃我管理(autonomous)机能,可以⾃动监控划分在数据中⼼数个不同的分区(微软将这些分区称为Fault Domain)的所有服务器与存储资源,⾃
动更新补丁,⾃动运⾏虚拟机部署与镜像备份(Snapshot Backup)等能⼒,Windows Azure被安装在数据中⼼的所有服务器中,并且定时和中控软件:WindowsAzure Fabric Controller进⾏沟通,接收指令以及回传运⾏状态数据等等,系统管理⼈员只要通过Windows Azure Fabric Controller就能够掌握所有服务器的运⾏状态,Fabric Controller本⾝是融合了很多微软系统管理技术的总成,包含对虚拟机的管理(System Center Virtual Machine Manager),对作业环境的管理(System Center Operation Manager),以及对软件部署的管理(System Center Configuration Manager)等,在Fabric Controller中被发挥得淋漓尽致,如此才能够达成通过Fabric Controller来管理在数据中⼼中所有服务器的能⼒。
Azure服务平台的设计⽬标是⽤来帮开发者更容易地创建web和互联设备的应⽤程序。它提供了最⼤限度的灵活性、选择和使⽤现有技术连接⽤户和客户的控制。Windows Azure服务平台现在已经包含如下功能:⽹站、虚拟机、云服务、移动应⽤服务、⼤数据⽀持以及媒体功能的⽀持。
(1)⽹站
允许使⽤ ASP.NET、PHP 或 Node.js 构建,并使⽤ FTP、Git 或 TFS 进⾏快速部署。⽀持 SQL Database、Caching、及Storage。
(2)Virtual Machines
在Windows Azure上您可以轻松部署并运⾏ Windows Server 和 Linux 虚拟机。迁移应⽤程序和基础结构,⽽⽆需更改现有代码。⽀持Windows Virtual Machines、Linux Virtual Machines、Storage、Virtual Network、 Identity等功能。
(3)Cloud Services
是Windows Azure 中的企业级云平台,使⽤富平台即服务 (PaaS) 环境创建⾼度可⽤的且可⽆限缩放的应⽤程序和服务。⽀持多层⽅案、⾃动化部署和灵活缩放。⽀持Cloud Services、SQL Database、Caching、Business Analytics、Service Bus、Identity
(4)Mobile 服务
是Windows Azure提供的移动应⽤程序的完整后端解决⽅案,加速连接的客户端应⽤程序开发。在⼏分钟内并⼊结构化存储、⽤户⾝份验证和推送通知。⽀持SQL Database、Mobile 服务。
(5)⼤型数据处理
Windows Azure 提供的海量数据处理能⼒,可以从数据中获取可执⾏洞察⼒,利⽤完全兼容的企业准备就绪 Hadoop 服务。PaaS 产品/服务提供了简单的管理,并与 Active Directory 和 System Center 集成。⽀持Hadoop、Business Analytics、Storage、SQL Database、及在线商店 Marketplace。
(6)Media 媒体⽀持
⽀持插⼊、编码、保护、流式处理,可以在云中创建、管理和分发媒体。此 PaaS 产品/服务提供从编码到内容保护再到流式处理和分析⽀持的所有内容。⽀持CDN及Storage存储。