虚拟化是业务系统和IT硬件设备间的一次重要解耦,通过虚拟化后业务系统和虚拟资源映射,虚拟资源再和实际物理资源映射,实际的物理资源对业务系统变成黑盒,以在逻辑层形成标准化的虚拟资源池。虚拟化是云计算的基石,一方面是通过虚拟化可以解决数据中心资源的整合问题,在整合过程中对计算,存储等各种资源进行标准化;另一方面是通过虚拟化将资源切割为更小的可以更好调度的资源单位,以达到调度过程中充分利用硬件资源的能力。

虚拟化只是形成标准化的虚拟资源池,而我们说的云计算一个重要核心就是虚拟资源池中资源的动态调度,通过动态的资源调度实现了业务系统到资源池的进一步解耦,虚拟资源和业务系统之间弱绑定,弱绑定的意思就是今天虚拟资源1可以给业务系统A,明天也可以后天给业务系统B使用,具体如何使用完全基于云平台的调度策略进行动态调度,这个在传统的负载均衡下是很难实现的。

云动态调度的一个重点是首先是要隔离业务系统软件到在真实物理机的部署,部署应该由统一的平台进行管控和自动部署,这是调度的一个基础,这样才能够做到按需要启动新的虚拟资源并自动部署应用;其次是对物理资源+虚拟资源池虚拟资源的性能分析和监控,资源动态调度必须要基于对已有资源的性能监控和分析,性能数据+调度策略同时作用进行调度执行操作。

在云计算下,关系型数据库是很难部署和实施云计算的,Oracle RAC 是一个具有共享缓存体系结构的集群数据库,可以作为数据库层面的替代解决方案。但是由于关系型数据库对于存储单元和数据库级的计算都无法进行细粒度划分和动态扩展,这是很难实施云计算的关键。而现在NoSql这种键值对的非关系型数据库是云计算下数据库应用的一个趋势,但是在NoSql下需要数据是高度面向文件的,开发是高度面向对象的,否则对于关系型查询很难高效解决。NoSql本身可以很好的和MapReduce和HDFS分布式文件系统等集成进行分布式计算和存储,以获取无限伸缩能力。

对于SaaS软件是我们常见的云计算应用场景,由于原有在桌面端的计算和存储能力移动到了SaaS平台端,从这个意义上讲算做云计算。如果再看深一步,应该分析SaaS软件运营商是否基于IaaS服务提供商,或者自己的数据中心是否有无限伸缩和扩展能力,这是衡量是否是一个真正云计算的重要标准。

 

SaaS平台和PaaS要注意不是一个概念,SaaS平台主要是指的提供一个运营平台,你按照我的标准和规范开发的软件都可以放到我的平台上面来运营。如果我的开发,测试和部署全部不在本地,而是在你提供的平台上,那么就是具备了PaaS平台的功能。因此要注意PaaS平台即服务更多的强调的是一个在云端的开发环境或开发平台,而你基于这个PaaS开发的软件是否要作为SaaS运营倒并不一定。

虚拟化实现了IT系统到数据中心硬件资源的解耦,通过标准化形成虚拟化的逻辑资源池。而为了进一步提升数据中心的快速业务响应能力,还必须将业务系统规划,系统上线,资源分配,系统部署,后期资源调配等一系列活动流程化和自动化,这样才能够更快让IT基础设施相应业务需求。

虚拟化实现资源都是虚拟的标准的调度单元,云计算实现这些调度单元可以按照业务需求进行配置和调度。

云计算和负载均衡的区别在哪里?对于负载均衡等集群技术仍然可以实现对大并发量业务场景的业务,也支持扩展。但是要注意到负载均衡仍然很难实现资源的动态管理,即按需分配资源,按需回收资源。一个计算单元可能月末在给ERP系统用,而月初又在给CRM系统用。业务系统和资源之间完全是松耦合。这也是我们所说的完成了第二次解耦。

可以在企业的内部数据中心搭建私有云架构,可以让运维人员完全的控制和分配资源,数据中心负载自动化,实现数据中心各种IT基础设施的整合。这些工作在原来往往需要手工进行,但是实施和搭建云平台后,结合动态流程管理和分配调度策略,完全可以将这部分的工作自动化。我们已经知道通过虚拟化已经形成了标准化的虚拟资源池,但是如何不能根据相应的策略自动调度这些资源,那么私有云的价值仍然无法完全发挥出来。

私有云所要求的自动化技术要代替IT专家完成通常需要人工完成的数百种任务。云计算供应商目前所做的就是使用当期的云部件来将过去需要耗旪数天的任务在几个小时内自动完成。然而在目前的供应商里还没谁能够提供这样的自动化能力。在云计算中的关键技术难点和并行算法等问题解决后,后续的重点往往正是这种基于业务的自动化调度能力。

 

虚拟化的核心是大的资源能力拆分为小的资源能力,同时在拆分的过程中对资源进行标准化。云计算的核心是小的资源能力合并为一个超级的计算能力,其重点是资源的动态分配和调度。做云计算前先做虚拟化的目的就是资源粒度的细化,方便后续云计算的资源调度,因此如果资源粒度足够细(比如拿了一堆3,5年前的服务器)来搞云计算,这个时候往往并不需要先进行虚拟化,原有的资源能力往往已经不必要再细分。

SaaS模式的应用网站是否一定是云严格意义上的云计算?比如现在的在线CRM,在线ERP或在线办公类的网站。这里我们一定要清楚SaaS模式如果从狭义上来讲,因为对于终端的服务能力已经迁移到了远端,将资源的提供变成了服务的提供,是云计算。但是我们考虑变化的场景,用户从1万到100万,甚至1000万的时候你的SaaS应用是如何支撑的?是否具备无限伸缩扩展和资源动态调度分配能力?如果不具有则不能叫严格意义上的云计算。

无限伸缩扩展再解释下就是要架构支撑这种能够随着业务量和并发量变化的资源伸缩扩展能力,当用户数量巨增的时候,我们的架构和应用都不需要重新部署,我只需要增加新的设备资源,配置相应的节点,就能够很好的支撑大并发用户,同时在业务访问量下来的时候资源还可以动态的调度给其它应用。这是一个关键能力。

云平台还有一个重要特性,即高可用性,高可用性包括很多内容,包括自我恢复,自我创建和启动,动态的迁移等。高可用性解决的问题就是单个云计算节点出现故障的情况下,不会影响的实际的应用程序。云平台有能力按规则启动新的计算节点或调度单元。

动态资源调度是云平台的一个关键特性,动态的关键就是计算资源和业务应用是解耦和松绑定的,今天计算资源可能给ERP系统,明天则可能给CRM系统,资源究竟给哪些业务系统用,完全根据我们的调度策略和业务应用本身的并发访问量。而整个过程我们关心的就是仅仅设置调度和资源分配策略,其余事情都应该自动执行。

IaaS层可以将基础设施提供为服务,服务本身也可以运营。SaaS层本身就是服务运营,但是SaaS层的能力来源于IaaS层,包括云存储能力和云计算能力。PaaS层是一个云平台,把平台作为服务,用户可以基于这个平台来开发云产品这是一方面,还有就是用户基于这个平台开发的云产品可以直接放在该平台上进行运营,这是PaaS和SaaS层的一个结合点。