虚拟化和云计算技术正在快速地发展,业界各大厂商纷纷制定相应的战略,新的概念、观点和产品不断涌现。云计算的技术热点也呈现百花齐放的局面,比如以互联网为平台的虚拟化解决方案的运行平台,基于多租户技术的业务系统在线开发、运行时和运营平台,大规模云存储服务,大规模云通信服务等。
在过去的半个多世纪,信息技术的发展,尤其是计算机和互联网技术的进步极大地改变了人们的工作和生活方式。大量企业开始采用以数据中心为业务运营平台的信息服务模式。进入新世纪后,数据中心变得空前重要和复杂,这对管理工作提出了全新的挑战,一系列问题接踵而来。企业如何通过数据中心快速地创建服务并高效地管理业务?怎样根据需求动态调整资源以降低运营成本?如何更加灵活、高效、安全地使用和管理各种资源?如何共享已有的计算平台而不是重复创建自己的数据中心?业内人士普遍认为,信息产业本身需要更加彻底的技术变革和商业模式转型,虚拟化和云计算正是在这样的背景下应运而生的。
云计算是并行计算(ParallelComputing)、分布式计算(DistributedComputing)和网格计算(GridComputing)的发展。云计算是虚拟化(Virtualization)、公用计算(UtilityComputing)、IaaS(基础设施即服务),Paas(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。
云计算采用创新的计算模式使用户通过互联网随时获得近乎无限的计算能力和丰富多样的信息服务,它创新的商业模式使用户对计算和服务可以取用自由、按量付费。目前的云计算融合了以虚拟化、服务管理自动化和标准化为代表的大量革新技术。云计算借助虚拟化技术的伸缩性和灵活性,提高了资源利用率,简化了资源和服务的管理和维护;利用信息服务自动化技术,将资源封装为服务交付给用户,减少了数据中心的运营成本;利用标准化,方便了服务的开发和交付,缩短了客户服务的上线时间。
虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。
虚拟化只是云计算的一个技术基础,云计算除了具有虚拟化的技术基础外,还有其他技术支撑,这些支撑包含从软件设施的基础平台到应用都有所涉及。
下面我们就着重分析一下云计算的几个重点概念。
1.本地无须计算。计算全部采用实时远程网络计算资源,云计算将计算资源和我们通常接触的资源放在同一个平台上,而不是简单的数据获取。现在我们通常通过网络进行访问的资源,一般都是文件、视频流、音频流等,云计算则是将计算资源作为远程资源通过网络进行输送,这是云计算有别于其他任何计算的一个特有的特点。将计算资源在网络上进行分配,那么高速的网络支持是必须的,网络必须有非常低的延迟,并且可以将计算过程中的交互损耗降至最低。云计算也有别于以前我们接触的远程提交作业,等待结果的计算方式,云计算的过程是实时交互的。
2.支持多种硬件平台和多种软件平台。云计算支持多种硬件平台和多种软件平台,甚至通信协议,不仅要求硬件具有分布特性,软件(包含应用软件在内)也要具有分布特性,用户在使用软件资源之前,不必考虑本地硬件的特性,本地硬件的特性也不会对选择云计算作为计算平台的行为造成影响。
虚拟化的几个重点概念:
1.针对不同的虚拟化产品进行不同的虚拟化技术,如服务器、桌面、网络,不同的IT层面,体现出不同的虚拟化方向,而构成可以连接各种不同平台的整体方案。虚拟化是一个接口封装和标准化的过程,封装的过程根据不同的硬件会有不同,通过封装和标准化,为在虚拟容器里运行的程序提供适合的运行环境。这样,通过虚拟化技术,可以屏蔽不同硬件平台时间的差异性,屏蔽不同硬件的差异所带来的软件兼容问题,通过虚拟化技术,可以将硬件的资源通过虚拟化软件再重新整合后分配给软件使用。虚拟化技术实现硬件无差别的封装很适合在云计算的大规模应用中作为技术平台,但是,虚拟化技术并不是云计算的唯一技术基础条件。只能说虚拟化是目前实现云比较切实可行的一个方案而已。
2.虚拟化的核心解决要务是脱离硬件依赖,可以在各种硬件上部署虚拟化产品后,形成统一的计算界面。从JVM到VSX等等产品,虚拟化核心要务是脱离硬件依赖,这样无论是软件开发还是网络应用,都可以简化软件的开发模式方法。所以虚拟化在用户界面上,是标准化的,一致的,而不是云计算那样提供各种各样不同平台适应的界面。虚拟化技术的这个特点,使得虚拟化技术在很多应用场合大有可为。虚拟化技术之所以成为许多云计算方案中采用的技术平台,和虚拟化这个特征是分不开的。但是并不是所有的云计算都必须以虚拟化为技术基础,比如智能家电,就不可能在家电中部署虚拟机等设备。
3.对本地计算有要求,虚拟化技术并不解决本地终端的计算问题;虚拟化不能解决本地终端的计算问题。无论是虚拟服务器还是虚拟桌面,虚拟化技术也不能实现将所有的运算都转移到远程执行。虚拟化可以实现动态资源分配,但是并不是远程的。同时,虚拟化技术涉及网络时,比如说在本地使用远程虚拟机时,需要大量网络通信,这种通信流量和在虚拟机上进行运行的程序复杂度没有任何关联,仅仅是虚拟化技术本身需要的网络通信要求。而云计算中是不存在这个问题的。