云计算的体系架构
云计算,至少作为虚拟化的一种延伸,影响范围已经越来越大。但是,云计算还不能支持复杂的企业环境。因此云计算架构呼之欲出,经验表明,在云计算走向成熟之前,我们更应该关注系统云计算架构的细节。基于对现有的一些云计算产品的分析和个人一些经验,总结出一套云计算架构,云计算架构主要可分为四层。
显示层
多数数据中心云计算架构的这层主要是用于以友好的方式展现用户所需的内容和服务体验,并会利用到下面中间件层提供的多种服务,主要有五种技术:
HTML:标准的Web页面技术,主要以HTML4为主,但是将要推出的HTML5会在很多方面推动Web页面的发展,比如视频[和本地存储等方面。
JavaScript:一种用于Web页面的动态语言,通过JavaScript,能够极大地丰富Web页面的功能,并且用以JavaScript为基础的AJAX创建更具交互性的动态页面。
CSS:主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。
Flash[2]:业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。
Silverlight:来自业界巨擎微软的RIA技术,虽然其市场占有率稍逊于Flash,但由于其可以使用C#[5]来进行编程,所以对开发者非常友好。
中间层
这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑显示层,也可以直接让用户调用,并主要有五种技术:
REST:通过REST技术,能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者。
多租户:就是能让一个单独的应用实例可以为多个组织服务,而且保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。
并行处理:为了处理海量的数据,需要利用庞大的X86集群进行规模巨大的并行处理,Google的MapReduce是这方面的代表之作。
应用服务器:在原有的应用服务器的基础上为云计算做了一定程度的优化,比如用于Google App Engine的Jetty应用服务器。
分布式缓存:通过分布式缓存技术,不仅能有效地降低对后台服务器的压力,而且还能加快相应的反应速度,最著名的分布式缓存例子莫过于Memcached。
基础设施层
这层作用是为给上面的中间件层或者用户准备其所需的计算和存储等资源,主要有四种技术:
虚拟化:也可以理解它为基础设施层的“多租户”,因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟 机,并且能在这些虚拟机之间能实现全面的隔离,这样不仅能减低服务器的购置成本,而且还能同时降低服务器的运维成本,成熟的X86虚拟化技术有 VMware的ESX和开源的Xen。
分布式存储:为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统。
关系型数据库:基本是在原有的关系型数据库的基础上做了扩展和管理等方面的优化,使其在云中更适应。
NoSQL:为了满足一些关系数据库所无法满足的目标,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库。
管理层
这层是为横向的三层服务的,并给这三层提供多种管理和维护等方面的技术,主要有下面这六个方面:
帐号管理:通过良好的帐号管理技术,能够在安全的条件下方便用户地登录,并方便管理员对帐号的管理。
SLA监控:对各个层次运行的虚拟机,服务和应用等进行性能方面的监控,以使它们都能在满足预先设定的SLA(Service Level Agreement)的情况下运行。
计费管理:也就是对每个用户所消耗的资源等进行统计,来准确地向用户索取费用。
安全管理:对数据,应用和帐号等IT资源采取全面地保护,使其免受犯罪分子和恶意程序的侵害。
负载均衡:通过将流量分发给一个应用或者服务的多个实例来应对突发情况。
运维管理:主要是使运维操作尽可能地专业和自动化,从而降低云计算中心的运维成本。
云计算架构其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,云计算架构还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。
云计算架构分层
一般来说,大家比较公认的云架构是划分为基础设施层、平台层和软件服务层三个层次的。对应名称为IaaS,PaaS和SaaS。IaaS, Infrastructure as a Service,中文名为基础设施即服务,有点拗口,大家习惯了就好。如图1所示。
图1 云计算架构示意图
IaaS主要包括计算机服务器、通信设备、存储设备等,能够按需向用户提供的计算能力、存储能力或网络能力等IT基础设施类服务,也就是能在基础设施层面提供的服务。IaaS能够得到成熟应用的核心在于虚拟化技术,通过虚拟化技术可以将形形色色计算设备统一虚拟化为虚拟资源池中的计算资源,将存储设备统一虚拟化为虚拟资源池中的存储资源,将网络设备统一虚拟化为虚拟资源池中的网络资源。当用户订购这些资源时,数据中心管理者直接将订购的份额打包提供给用户,从而实现了IaaS。
PaaS, Platform as a Service,中文名为平台即服务。如果以传统计算机架构中“硬件+操作系统/开发工具+应用软件”的观点来看待,那么云计算的平台层应该提供类似操作系统和开发工具的功能。实际上也的确如此,PaaS定位于通过互联网为用户提供一整套开发、运行和运营应用软件的支撑平台。就像在个人计算机软件开发模式下,程序员可能会在一台装有Windows或Linux操作系统的计算机上使用开发工具开发并部署应用软件一样。微软公司的Windows Azure和谷歌公司的GAE,可以算是PaaS平台中最为知名的两个产品了。
SaaS,软件即服务。简单地说,就是一种通过互联网提供软件服务的软件应用模式。在这种模式下,用户不需要再花费大量投资用于硬件、软件和开发团队的建设,只需要支付一定的租赁费用,就可以通过互联网享受到相应的服务,而且整个系统的维护也由厂商负责。
云计算的应用领域有哪些
云计算将在IT产业各个方面都有其用武之地,以下是云计算十个比较典型的应用场景!
1. IDC云
IDC云是在IDC原有数据中心的基础上,加入更多云的基因,比如系统虚拟化技术、自动化管理技术和智慧的能源监控技术等。通过IDC的云平台,用户能够使用到虚拟机和存储等资源。还有,IDC可通过引入新的云技术来提供许多新的具有一定附加值的服务,比如,PaaS等。现在已成型的IDC云有Linode和Rackspace等。
2. 企业云
企业云对于那些需要提升内部数据中心的运维水平和希望能使整个IT服务更围绕业务展开的大中型企业非常适合。相关的产品和解决方案有IBM的WebSphere CloudBurst Appliance、Cisco的UCS和VMware的vSphere等。
3. 云存储系统
云存储系统可以解决本地存储在管理上的缺失,降低数据的丢失率,它通过整合网络中多种存储设备来对外提供云存储服务,并能管理数据的存储、备份、复制和存档,云存储系统非常适合那些需要管理和存储海量数据的企业。
4. 虚拟桌面云
虚拟桌面云可以解决传统桌面系统高成本的问题,其利用了现在成熟的桌面虚拟化技术,更加稳定和灵活,而且系统管理员可以统一地管理用户在服务器端的桌面环境,该技术比较适合那些需要使用大量桌面系统的企业。
5. 开发测试云
开发测试云可以解决开发测试过程中的棘手问题,其通过友好的Web界面,可以预约、部署、管理和回收整个开发测试的环境,通过预先配置好(包括操作系统,中间件和开发测试软件)的虚拟镜像来快速地构建一个个异构的开发测试环境,通过快速备份/恢复等虚拟化技术来重现问题,并利用云的强大的计算能力来对应用进行压力测试,比较适合那些需要开发和测试多种应用的组织和企业。
6. 大规模数据处理云
大规模数据处理云能对海量的数据进行大规模的处理,可以帮助企业快速进行数据分析,发现可能存在的商机和存在的问题,从而做出更好、更快和更全面的决策。其工作过程是大规模数据处理云通过将数据处理软件和服务运行在云计算平台上,利用云计算的计算能力和存储能力对海量的数据进行大规模的处理。
7. 协作云
协作云是云供应商在IDC云的基础上或者直接构建一个专属的云,并在这个云搭建整套的协作软件,并将这些软件共享给用户,非常适合那些需要一定的协作工具,但不希望维护相关的软硬件和支付高昂的软件许可证费用的企业与个人。
8. 游戏云
游戏云是将游戏部署至云中的技术,目前主要有两种应用模式,一种是基于Web游戏模式,比如使用JavaScript、Flash和Silverlight等技术,并将这些游戏部署到云中,这种解决方案比较适合休闲游戏;另一种是为大容量和高画质的专业游戏设计的,整个游戏都将在运行云中,但会将最新生成的画面传至客户端,比较适合专业玩家。
9. HPC云
HPC云能够为用户提供可以完全定制的高性能计算环境,用户可以根据自己的需求来改变计算环境的操作系统、软件版本和节点规模,从而避免与其他用户的冲突,并可以成为网格计算的支撑平台,以提升计算的灵活性和便捷性。HPC云特别适合需要使用高性能计算,但缺乏巨资投入的普通企业和学校。
10. 云杀毒
云杀毒技术可以在云中安装附带庞大的病毒特征库的杀毒软件,当发现有嫌疑的数据时,杀毒软件可以将有嫌疑的数据上传至云中,并通过云中庞大的特征库和强大的处理能力来分析这个数据是否含有病毒,这非常适合那些需要使用杀毒软件来捍卫其电脑安全的用户。
小编推荐阅读:
评论
查看更多