云计算的架构之IaaS服务模式
通过IaaS这种模式,用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关应用,并只需为其所租用的那部分资源付费,而这些烦琐的管理工作则交给IaaS供应商来负责。
1. 历史
和SaaS一样,类似IaaS的想法其实已经出现很久了,比如过去的IDC(Internet Data Center,互联网数据中心)和VPS(Virtual Private Server,虚拟专用服务器)等,但由于技术、性能、价格和使用等方面的缺失,这些服务并没有被大中型企业广泛采用。但在2006年年底,Amazon 发布了EC2(Elastic Compute Cloud,灵活计算云)这个IaaS云服务。由于EC2在技术和性能等多方面的优势,这类技术终于被业界广泛认可和接受,其中就包括部分大型企业,比如著名的纽约时报。
2. 相关产品
最具代表性的IaaS产品有:Amazon EC2、IBM Blue Cloud、Cisco UCS和Joyent。
Amazon EC2。EC2主要以提供不同规格的计算资源(也就是虚拟机)为主。它基于著名的开源虚拟化技术Xen。通过Amazon的各种优化和创新, EC2不论在性能上还是在稳定性上都已经满足企业级的需求。而且它还提供完善的API和Web管理界面来方便用户使用。
IBM Blue Cloud。“蓝云”解决方案是由IBM云计算中心开发的业界第一个,同时也是在技术上比较领先的企业级云计算解决方案。该解决方案可以对企业现有的基础架构进行整合,通过虚拟化技术和自动化管理技术来构建企业自己的云计算中心,并实现对企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,也打破了应用对资源的独占,从而帮助企业能享受到云计算所带来的诸多优越性。
Cisco UCS。它是下一代数据中心平台,在一个紧密结合的系统中整合了计算、网络、存储与虚拟化功能。该系统包含一个低延时、无丢包和支持万兆以太网的统一网络阵列以及多台企业级x86架构刀片服务器等设备,并在一个统一的管理域中管理所有资源。用户可以通过在UCS上安装VMWare vSphere来支撑多达几千台虚拟机的运行。通过Cisco UCS,能够让企业快速在本地数据中心搭建基于虚拟化技术的云环境。
Joyent。它提供基于Open Solaris技术的IaaS服务。其IaaS服务中最核心的是Joyent Accelerator,它能够为Web应用开发人员提供基于标准的、非专有的、按需供应的虚拟化计算和存储解决方案。基于Joyent Accelerator,用户可以使用具备多核CPU、海量内存和存储的服务器设备来搭建自己的网络服务,并提供超快的访问、处理速度和超高的可靠性。
3. 优势
与传统的企业数据中心相比,IaaS服务在很多方面都存在一定的优势,下面是最明显的5个。
免维护。主要的维护工作都由IaaS云供应商负责,所以用户不必操心。
非常经济。首先免去了用户前期的硬件购置成本,而且由于IaaS云大都采用虚拟化技术,所以应用和服务器的整合率普遍在10(也就是一台服务器运行十个应用)以上,这样能有效降低使用成本。
开放标准。虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生,IaaS在跨平台方面稳步前进,这样应用能在多个IaaS云上灵活地迁移,而不会被固定在某个企业数据中心内。
支持的应用。因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围非常广泛。
伸缩性强。IaaS云只需几分钟就能给用户提供一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。
4. 技术
IaaS所采用的技术都是一些比较底层的,其中有4种技术是比较常用的。
虚拟化。也可以将它理解为基础设施层的“多租户”。因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟机,并且能在这些虚拟机之间实现全面的隔离,这样不仅能降低服务器的购置成本,而且还能降低服务器的运维成本。成熟的x86虚拟化技术有VMware的ESX和开源的Xen。
分布式存储。为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式存储系统。在这方面,Google的GFS是典范之作。
关系型数据库。基本上是在原有的关系型数据库的基础上作了扩展和管理等方面的优化,使其在云中更适应。
NoSQL。为了满足一些关系数据库所无法满足的目标,比如支撑海量数据等,一些公司特地设计一批不是基于关系模型的数据库,比如Google的BigTable和Facebook的Cassandra等。
现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud,同时业界也有几个基于关系型数据库的云服务,比如Amazon的RDS(Relational Database Service,关系型数据库服务)和Windows Azure SDS(SQL Data Services,SQL数据服务)等。
关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术,而Amazon推出的Simple DB则基于NoSQL技术。