谈虚拟化和云计算
虚拟化是业务系统和IT硬件设备间的一次重要解耦,通过虚拟化后业务系统和虚拟资源映射,虚拟资源再和实际物理资源映射,实际的物理资源对业务系统变成黑盒,以在逻辑层形成标准化的虚拟资源池。虚拟化是云计算的基石,一方面是通过虚拟化可以解决数据中心资源的整合问题,在整合过程中对计算,存储等各种资源进行标准化;另一方面是通过虚拟化将资源切割为更小的可以更好调度的资源单位,以达到调度过程中充分利用硬件资源的能力。
虚拟化只是形成标准化的虚拟资源池,而我们说的云计算一个重要核心就是虚拟资源池中资源的动态调度,通过动态的资源调度实现了业务系统到资源池的进一步解耦,虚拟资源和业务系统之间弱绑定,弱绑定的意思就是今天虚拟资源1可以给业务系统A,明天也可以后天给业务系统B使用,具体如何使用完全基于云平台的调度策略进行动态调度,这个在传统的负载均衡下是很难实现的。
云动态调度的一个重点是首先是要隔离业务系统软件到在真实物理机的部署,部署应该由统一的平台进行管控和自动部署,这是调度的一个基础,这样才能够做到按需要启动新的虚拟资源并自动部署应用;其次是对物理资源+虚拟资源池虚拟资源的性能分析和监控,资源动态调度必须要基于对已有资源的性能监控和分析,性能数据+调度策略同时作用进行调度执行操作。
在云计算下,关系型数据库是很难部署和实施云计算的,Oracle RAC 是一个具有共享缓存体系结构的集群数据库,可以作为数据库层面的替代解决方案。但是由于关系型数据库对于存储单元和数据库级的计算都无法进行细粒度划分和动态扩展,这是很难实施云计算的关键。而现在NoSql这种键值对的非关系型数据库是云计算下数据库应用的一个趋势,但是在NoSql下需要数据是高度面向文件的,开发是高度面向对象的,否则对于关系型查询很难高效解决。NoSql本身可以很好的和MapReduce和HDFS分布式文件系统等集成进行分布式计算和存储,以获取无限伸缩能力。
对于SaaS软件是我们常见的云计算应用场景,由于原有在桌面端的计算和存储能力移动到了SaaS平台端,从这个意义上讲算做云计算。如果再看深一步,应该分析SaaS软件运营商是否基于IaaS服务提供商,或者自己的数据中心是否有无限伸缩和扩展能力,这是衡量是否是一个真正云计算的重要标准。