云计算,至少作为虚拟化的一种延伸,影响范围已经越来越大。但是,云计算还不能支持复杂的企业环境。因此云计算架构呼之欲出,经验表明,在云计算走向成熟之前,我们更应该关注系统云计算架构的细节。基于对现有的一些云计算产品的分析和个人一些经验,总结出一套云计算架构,云计算架构主要可分为四层。
简介
云计算(Cloud computing)是继20世纪80年代由大型计算机向客户端/服务器(C/S)模式大转变后,信息技术的又一次革命性变化。2006年8月9日,Google首席执行官Eric Schmidt在搜索引擎大会(SES San Jose 2006)上首次提出云计算概念。云计算是网格计算,分布式计算,并行计算、效用技术、网络存储、虚拟化和负载均衡等传统计算机和网络技术发展融合的产物。其目的是通过基于网络的计算方式,将共享的软件/硬件资源和信息进行组织整合,按需提供给计算机和其他系统使用。
云计算的架构层
显示层
多数数据中心云计算架构的这层主要是用于以友好的方式展现用户所需的内容和服务体验,并会利用到下面
中间件层提供的多种服务,主要有五种技术:
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所示。
IaaS主要包括计算机服务器、通信设备、存储设备等,能够按需向用户提供的计算能力、存储能力或网络能力等IT基础设施类服务,也就是能在基础设施层面提供的服务。IaaS能够得到成熟应用的核心在于虚拟化技术,通过虚拟化技术可以将形形色色计算设备统一虚拟化为
虚拟资源池中的计算资源,将存储设备统一虚拟化为虚拟资源池中的存储资源,将网络设备统一虚拟化为虚拟资源池中的网络资源。当用户订购这些资源时,数据中心管理者直接将订购的份额打包提供给用户,从而实现了IaaS。
PaaS, Platform as a Service,中文名为平台即服务。如果以传统计算机架构中“硬件+操作系统/开发工具+应用软件”的观点来看待,那么云计算的平台层应该提供类似操作系统和开发工具的功能。实际上也的确如此,PaaS定位于通过互联网为用户提供一整套开发、运行和运营应用软件的支撑平台。就像在个人计算机软件开发模式下,程序员可能会在一台装有Windows或Linux操作系统的计算机上使用开发工具开发并部署应用软件一样。微软公司的Windows Azure和谷歌公司的GAE,可以算是PaaS平台中最为知名的两个产品了。
SaaS,Software as a Service,软件即服务。简单地说,就是一种通过互联网提供软件服务的软件应用模式。在这种模式下,用户不需要再花费大量投资用于硬件、软件和开发团队的建设,只需要支付一定的租赁费用,就可以通过互联网享受到相应的服务,而且整个系统的维护也由厂商负责。
2012云计算架构师峰会
2012云计算架构师峰会汇集了全球顶尖IT企业一线架构师,围绕公共云和私有云的技术应用、云时代的存储与数据架构、大数据挖掘分析、跨平台解决方案的需求实现与性能调优等众多热门技术话题,与全国超过1000人的一线技术者共聚一堂,共话IT。