一、分布式计算
分布式计算是一种计算方法,和集中式计算相对,随着计算的发展,一些应用需要巨大的计算能力才能完成,如果采用集中式计算则需要耗费很长的时间,而分布式计算将应用分解成许多更小的部分,分配到多台计算机进行处理,这样可以节省整体计算时间,大大提高计算效率。云计算是分布式计算技术的一种,也是分布式计算这种科学概念的商业实现
分布式计算的优点就是发挥集体的力量,将大任务分解成小任务,分配给多个计算节点去同时计算,分布式计算将计算扩展到多台计算机,甚至是多个网络,在网络上有序的执行一个共同的任务,当然离不开Web技术,但在分布式计算发展起来之前的网络协议并不能满足分布式计算的要求,于是产生了Web Service计算
分布式计算的另一种应用是Web Service 它是一个平台独立的 低耦合的 自包含的 基于可编程的Web的应用程序,可使用开放的XML标准来描述,发布,发现,协调和配置这些应用程序,用于开发分布式的,互操作的应用程序
简单地说,这种技术的功能和中间件的功能有相似之处,Web Service技术是屏蔽掉不同开发平台开发的功能模块互相调用的障碍,从而可以利用HTTP和SOAP使商业数据在Web上传输,可以调用这些开发平台不同的功能模块来完成计算任务,这样看来,要在互联网上实施大规模的分布式计算,就需要Web Service作支撑
二、云计算的基本概念
云计算的组成可以分为六个部分,它们由下至上分别是:
基础设施(Infrastructure)
云基础设施使经过虚拟化的硬件资源和相关管理功能的集合,对内通过虚拟化技术对物理资源进行抽象,对外提供动态 灵活的资源服务
存储(Storage)
云存储设计提供数据存储作为一项服务,包括类似数据库的服务,通常以使用的存储量为结算基础
平台(Platform)
云平台直接提供计算平台和解决方案作为服务,以方便应用程序部署,从而节省购买和管理底层硬件和软件的成本
应用(Application)
云应用利用云软件架构,往往不再需要用户在自己的计算机上安装和运行该应用程序,从而减轻软件维护 操作和售后支持的负担
服务(Services)
云服务是指包括产品、服务和解决方案都实时的在互联网上进行交付和使用
客户端(Clients)
云客户端包括专为提供云服务的计算机硬件和计算机软件中断
三、云计算的关键技术
1:分布式海量数据存储
以移动通信运营商为例,随着移动业务和用户规模的不断扩大,每天都产生海量的业务、计费以及网管数据,然而庞大的数据量使得传统的数据库存储已经无法满足存储和分析需求,主要有以下问题
数据库容量有限
并行取数困难
JDBC访问效率太低
数据库并发访问数太多
理想的解决方案是把大数据存储到分布式文件系统中,云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性
云计算系统中广泛使用的数据存储系统是GFS和HDFS。
2:虚拟化技术
虚拟化技术是云计算系统的核心组成部分之一,是将各种计算及存储资源充分整合和高效利用的关键技术。云计算的虚拟化技术不同于传统的单一虚拟化,它是涵盖整个IT架构的,包括资源,网络,应用和桌面在内的全系统虚拟化,通过虚拟化技术可以实现将所有硬件设备,软件应用和数据隔离开来,打破硬件配置,软件部署和数据分布的界限,实现IT架构的动态化,虚拟化技术可以提供以下特点
资源分享
通过虚拟机封装用户各自的运行环境,有效实现多用户分布分享数据中心资源
资源定制
用户利用虚拟化技术,配置私有的服务器,指定所需的CPU数目 内存容量 磁盘空间 实现资源的按需分配
细粒度资源管理
将物理服务器拆分成若干虚拟机,可以提高服务器的资源利用率,减少浪费,而且有助于服务器的负载均衡和节能
3:云平台技术
云平台技术能够使大量的服务器协同工作,方便地进行业务部署,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
云计算平台的主要特点是用户不必关心云平台底层的实现。
4:并行编程技术
目前两种最重要的并行编程模式四数据并行和消息传递。数据并行编程模型的编程级别比较高,编程相对简单,但它仅适用于数据并行问题,消息传递编程模型的编程级别相对较低,但消息传递编程模型可以有更广泛的应用范围
5:数据管理技术
数据管理技术必须能够高效地管理大数据集,其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。
应用于云计算的数据管理技术最常见的是Google的BigTable数据管理技术,它采用列存储的方式管理数据。
BigTable技术建立在GFS和MapReduce之上的一个大型分布式数据库,它实际上是一个很庞大的表,它将所有数据都作为对象来处理,形成一个巨大的表格。