云计算基础知识汇总

来源:互联网 发布:拼图很多图软件 编辑:程序博客网 时间:2024/05/08 14:47

一、云计算概念:

云计算(Cloud Computing)是由分布式计算(Distributed Computing)、并行处理(Parallel Computing)、网格计算(Grid Computing)发展来的,是一种新兴的商业计算模型。目前,对于云计算的认识在不断的发展变化,云计算没仍没有普遍一致的定义。 

狭义的云计算指的是厂商通过分布式计算和虚拟化技术搭建数据中心或超级计算机,以免费或按需租用方式向技术开发者或者企业客户提供数据存储、分析以及科学计算等服务,比如亚马逊数据仓库出租生意。

广义的云计算指厂商通过建立网络服务器集群,向各种不同类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不同类型的服务。广义的云计算包括了更多的厂商和服务类型,例如国内用友、金蝶等管理软件厂商推出的在线财务软件,谷歌发布的Google应用程序套装等。

通俗的理解是,云计算的“云“就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CPU等)和软件资源(如应用软件、集成开发环境等),本地计算机只需要通过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供需要的资源并将结果返回到本地计算机,这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成。


二、云计算服务模式:

目前,云计算的主要服务模式有:SaaS(Software as a Service)软件即服务,PaaS(Platform as a Service)平台即服务,IaaS(Infrastructure as a Service)基础设施即服务。

SaaS : 

SaaS是最为成熟、最出名,也是得到最广泛应用的一种云计算。大家可以将它理解为一种软件分布模式,在这种模式下,应用软件安装在厂商或者服务供应商那里,用户可以通过某个网络来使用这些软件,通常使用的网络是互联网。这种服务模式的优势是,由服务提供商维护和管理软件、提供软件运行的硬件设施,用户只需拥有能够接入互联网的终端,即可随时随地使用软件。这种模式下,客户不再像传统模式那样花费大量资金在硬件、软件、维护人员,只需要支出一定的租赁服务费用,通过互联网就可以享受到相应的硬件、软件和维护服务,这是网络应用最具效益的营运模式。对于小型企业来说,SaaS是采用先进技术的最好途径。Salesforce.com、NetSuite、Google的Gmail和SPSCommerce.net都是这方面非常好的例子。

PaaS :

PaaS提供了基础架构,把开发环境作为一种服务来提供。这是一种分布式平台服务,软件开发者可以在这个基础架构之上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器。Salesforce.com的Force.com、Google的App Engine和微软的Azure(微软云计算平台)都采用了paas的模式。这些平台允许公司创建个性化的应用,也允许独立软件厂商或者其他的第三方机构针对垂直细分行业创造新的解决方案。

IaaS :

IaaS把厂商的由多台服务器组成的“云端”基础设施,作为计量服务提供给客户。它将内存、I/O设备、存储和计算能力整合成一个虚拟的资源池为整个业界提供所需要的存储资源和虚拟化服务器等服务。这是一种托管型硬件方式,用户付费使用厂商的硬件设施。IaaS通常会按照“弹性云”的模式引入其他的使用和计价模式,也就是在任何一个特定的时间,都只使用你需要的服务,并且只为之付费。IaaS的优点是用户只需低成本硬件,按需租用相应计算能力和存储能力,大大降低了用户在硬件上的开销。例如Amazon Web服务(AWS), IBM的BlueCloud等均是将基础设施作为服务出租。

SaaS、PaaS和IaaS这三种模式都是采用外包的方式,减轻企业负担,降低管理、维护服务器硬件、网络硬件、基础架构软件或应用软件的人力成本。从更高的层次上看,它们都试图去解决同一个商业问题——用尽可能少甚至是为零的资本支出,获得功能、扩展能力、服务和商业价值。当某种云计算的模式获得了成功,这三者之间的界限就会进一步模糊。成功的SaaS或IaaS服务可以很容易地延伸到平台领域。


三、各大厂商云计算发展状况:

IBM :

目前最全面的云计算厂商,在构建、支持和运作大规模计算系统方面有丰富经验和绝对优势。IBM的云计算技术主要用于解决下一代企业级数据中心的管理问题。他主要面向企业提供云计算管理平台并提供相关服务,帮助企业构建自己的云计算基础设施。

IBM的“蓝云(Blue Cloud)”使计算不仅仅局限在本地,通过架构一个分布的、可全球访问的资源结构,使数据中心在类似互联网的环境下运行计算。可以对企业现有的基础架构进行整合,通过虚拟化技术和自动化技术,构建企业自己拥有的云计算中心,实现企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,打破应用对资源的独占,从而帮助企业实现云计算理念。 

“蓝云”计算平台是一套软、硬件平台,将Internet上使用的技术扩展到企业平台上,使得数据中心使用类似于互联网的计算环境。“蓝云”大量使用了IBM先进的大规模计算技术,结合了IBM自身的软、硬件系统以及服务技术,支持开放标准与开放源代码软件。“蓝云”基于IBM Almaden研究中心的云基础架构,采用了Xen和PowerVM虚拟化软件,Linux操作系统映像以及Hadoop软件(Google File System以及MapReduce的开源实现)。 “蓝云”的硬件平台环境与一般的x86服务器集群类似,使用刀片的方式增加了计算密度。

“蓝云”软件平台的特点主要体现在虚拟机以及对于大规模数据处理软件Apache Hadoop的使用上。 虚拟化的方式在“蓝云”中有两个级别,一个是在硬件级别上实现虚拟化,另一个是通过开源软件实现虚拟化。硬件级别的虚拟化可以使用IBM p系列的服务器,获得硬件的逻辑分区LPAR(logic partition)。逻辑分区的CPU资源能够通过IBM Enterprise Workload Manager来管理。通过这样的方式加上在实际使用过程中的资源分配策略,能够使相应的资源合理地分配到各个逻辑分区。p系列系统的逻辑分区最小粒度是1/10颗CPU。Xen则是软件级别上的虚拟化,能够在Linux基础上运行另外一个操作系统。

“蓝云”存储体系结构包含类似于Google File System 的集群文件系统以及基于块设备方式的存储区域网络SAN。在蓝云计算平台上,SAN 系统与分布式文件系统(例如Google File System)并不是相互对立的系统,SAN提供的是块设备接口,需要在此基础上构建文件系统,才能被上层应用程序所使用。而Google File System正好是一个分布式的文件系统,能够建立在SAN之上。两者都能提供可靠性、可扩展性,至于如何使用还需要由建立在云计算平台上的应用程序来决定,这也体现了计算平台与上层应用相互协作的关系。

微软 :

云+端、软件+服务是对微软云计算的最佳诠释,云计算平台Azure包括了Windows Azure、Microsoft SQL数据库服务,Microsoft .Net服务等主要组件,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。

微软的虚拟化解决方案,。将虚拟化技术架构一共分为四个层次,表示层虚拟化,应用程序虚拟化,桌面虚拟化,服务器虚拟化。可以说是一个技术套件,实现了一个集成的、端到端的、虚拟化的基础架构,通过不同的层级,实现了从桌面到数据中心的全方位管理,因此能够做到解决方案快速上线,流畅的使用效果和服务及数据的容灾备份和恢复,大大增强了可用性和稳定性。微软的虚拟化解决方案,可以说是一个技术套件,实现了一个集成的、端到端的、虚拟化的基础架构,通过不同的层级,实现了从桌面到数据中心的全方位管理,因此能够做到解决方案快速上线,流畅的使用效果和服务及数据的容灾备份和恢复,大大增强了可用性和稳定性。

由于传统的虚拟化在虚拟机中我们看到的硬件设备都是被模拟出来的,当上层请求被交予虚拟机之后,会经过一次转换,之后,再交给我们的物理服务器,因此,系统的性能和速度会受到影响,这也是传统虚拟化之所以覆盖率比较低的原因之一。

对于微软使用的HyperV来说,它可以被称为一种半虚拟化的状态,在虚拟中看到的一部分硬件设备不是被虚拟出来的,而是通过HyperV的架构,直接访问硬件,把请求直接转给服务器,正因为中间减少了一次转换,所以访问和计算速度得以提升,以突破性能这个虚拟化应用的原始瓶颈。同时在虚拟机和硬件之间不存在兼容性的问题,因为微软的HyperV是允许在虚拟机中安装硬件驱动,这样在虚拟机中使用操作系统和在物理机中使用操作系统,就没有太多的区别,只要针对不同的硬件安装不同的驱动就可以兼容使用,这就消除了部分技术人员对兼容性的顾虑。

近期微软又推出云计算基础构架方案,通过拆除多余组件,挑选合适的电源以及一定程度上限制平台的扩展性,同时更好对其进行合理优化配置。运用高效能组件,低功率处理器以及优化机架中电源与制冷配置提高整体效能。大量的利用在芯片,电源以及存储上的新技术。

VMware :

从vSphere平台到vCloud Director管理软件,VMware通过其产品系列实现了公共云和私有云服务整合中所有应用程序的虚拟化和自动化,尤其是在服务器虚拟化上具有优势。

通过将数据中心资源聚合成为大规模的、共享的、弹性的计算资源池并显著提升基础架构利用率,为企业节省了大量成本。

利用VMware vSphere对关键业务应用进行虚拟化,创建资源。

利用VMware vShield将确保应用和数据能被恰当地划分至信任区域以满足法规遵从的需求,也可以满足将数据保持在特定权限范围内的要求。

利用构建于VMware vSphere之上的VMware vCloud Director,使IT 部门能够通过基于Web 的门户向用户开放虚拟数据中心,并定义和开放能部署在虚拟数据中心的IT 服务目录。

VMware vFabric云应用程序平台结合了市场领先的Spring Java开发框架和诸多平台服务,包括轻型应用服务器、全局数据管理、云就绪的消息传送、动态负载均衡和应用程序性能管理等。基于VMware vFabric开发的应用程序,具有高性能和能够轻松地跨异构云环境进行移植等优点。

VMware桌面虚拟化产品实现高效、自动化的桌面管理,通过增强的基于角色的管理和集中的桌面安全策略,提高整个桌面环境的控制力和安全性。按需交付桌面资源。通过在一个可管理从数据中心到云的服务器和桌面的通用虚拟化平台上实现标准化,从而将复杂性降至最低。

Amazon :

主要具有EC2(Elastic Compute Cloud,弹性计算云)、S3(Simple Storage Service,简单储存服务)等云产品。为企业提供计算和存储服务,收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。Amazon将自己的弹性计算云建立在公司内部的大规模集群计算的平台上,而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(instance)。弹性计算云用户使用客户端通过SOAP over HTTPS协议与Amazon弹性计算云内部的实例进行交互。这样,弹性计算云平台为用户或者开发人员提供了一个虚拟的集群环境,在用户具有充分灵活性的同时,也减轻了云计算平台拥有者(Amazon公司)的管理负担。弹性计算云中的每一个实例代表一个运行中的虚拟机。用户对自己的虚拟机具有完整的访问权限,包括针对此虚拟机操作系统的管理员权限。

Google :

Google的云计算主要由MapReduce、Google文件系统(GFS)、BigTable组成。它们是Google内部云计算基础平台的3个主要部分。Google 还构建其他云计算组件,包括一个领域描述语言以及分布式锁服务机制等。Sawzall是一种建立在MapReduce基础上的领域语言,专门用于大规模的信息处理。Chubby是一个高可用、分布式数据锁服务,当有机器失效时,Chubby使用Paxos算法来保证备份。


四、云计算核心技术:

云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。

(1)编程模型

MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。

(2)海量数据分布存储技术

云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。

GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。

一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。主服务器存储文件系统的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。

客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。

(3)海量数据管理技术

云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。

BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。

Google的很多项目使用BT来存储数据,包括网页查询,Google earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功的提供了灵活高效的服务。

(4)虚拟化技术

通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。

(5)云计算平台管理技术

云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。

云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。


五、云计算未来发展:

(1)数据安全:由于数据安全的存在,各行业重要部门还很难完全信任云计算服务供应商,这也是阻碍云计算发展的重要因素,所以私有云还会占有一定的市场,但最终的发展方向还是向公有云发展,云安全成了推动发展所必须突破的问题。

(2)网络传输:由于云计算本身的要求,将来的云计算服务将会很大程度的依赖于网络传输的速度,但目前的网络速度很难让云计算服务高效率高性能的实现其应用,所以云计算的发展还依赖于网络技术的发展。

(3)兼容瓶颈:现代企业内部,IT系统越来越复杂,通常会涉及多个系统的协作。云计算是一种全新的共享基础资源的架构方法,在与其它系统配合时往往会牺牲一部分自身性能。大部分企业在部署云计算系统时,都需要考虑对原有投资的保护,所以更好的兼容性也是发展的趋势。

(4)规模发展:目前云计算服务还主要应用在企业小型应用,随着云计算技术的发展,服务会更加趋向于大规模应用,并且推动当前各云计算平台的统一,使平台开发、运行、维护统一起来。

(5)用户体验:未来云计算服务将更加注重用户体验,依据不同的用户需求定制专属的应用,使出色的用户体验和规模化的使用相结合。