技术开发 频道

李钢:WMware的开源策略及云的基础

  【IT168 独家】“2011开源中国开源世界”高峰论坛及圆桌会议于2011年6月29-30日在北京丽亭华苑酒店召开。会上,与会者既可以近距离与国内开源专家以及与黑鸭子软件总裁、Apache基金会主席、HP全球总监、OpenOffice.org社区主席等一批国际开源专家接触,同时还能分享国内外开源企业、社区、主要用户在研发、推广和使用开源软件时的宝贵经验,众多国际著名的IT跨国公司的高层主管、技术负责人也将为大家带来如移动互联网与终端平台、云计算、绿色IT等前言技术的最新发展趋势。

  本次会议被视为在当前金融风暴经济危机严冬下的一股暖流,为大家呈现更多的开源技术、开源项目、开源产品、案例和解决方案。

李钢:WMware的开源策略及云的基础
VMware中国软件开发经理李钢

  以下为VMware中国软件开发经理李钢发言全文:

  VMware公司从创建开始就积极的推动开源产品,从最开始同Linux各个主要发行版本供应商密切合作确保对VMware虚拟机软件上运行的Linux客户操作系统的高质量支持,到后来作为开源社区的积极参与者,开发了很多源码,并且以许可证的方式释放很多代码。此外还开发了很多相关的开源项目。我们公司做了很多积极的实践,有很多很著名的开源产品,在座各位如果有spring方面的爱好者的话应该知道,像spring都是VMware开源的项目。

  VMware当前云计算产品的架构图,在这三层上我们公司都有相应的产品,VMware最著名的产品应该属于最底层的相关产品,这是拳头产品,也是虚拟化平台上业界领先的东西,自VMware收购spring开始,最核心的就是推进推出的完全开源产品,在进来一些计划中,会把spring这些著名的开源产品全部集成起来。在服务领域,将纳入云计算产品中。

  云开源产品,这是业界第一个开源的平台,具有以下几个特点:第一,具有高开发效率,因为支持目前很多流行的框架和服务,比如spring等,另外用户完全可以选择自己的框架服务和云平台,并且很容易的集承上去,VMware开发一些接口,另外整个开放社区从现在来看有很多积极爱好者正在这方面进行努力。另外一点快速开发,这点其实也是最重要的,大大缩短了云应用产品的生命周期,用户完全可以在自己本地的平台上运行、测试和调试自己的云应用,然后可以很方便的发布到最终的云平台上。

  Cloud Foundy具有的一些概念,每个应用完全可以有多个实例,应用越多,应用负载越大,可以启动更多实例。目前只支持Web程序,一个应用可以根据自己的情况配备多个URL,将来的计划中,Cloud Foundy继续支持非Web应用,目前只能是Web程序。另外一点是服务,拓展更多高级功能,比如你要想使用一些消息中间件等等,都称为服务,Cloud Foundy内嵌很多基本服务,用户可以根据自己的需求通过Cloud Foundy提供的API集成自己的服务。为了有效管理和开发应用,Cloud Foundy目前提供两种工具,一种基于MC的命令行工具,还有spring的,用户可以通过这两种工具进行程序发布、服务的绑定等等。要理解Cloud 可以从三个层次,运用平台一些厂商可以根据自己的需求通过接口嵌入自己的Cloud,Cloud Foundy可以运行在各种云平台上,允许用户在自己的单机上跑一个云环境,左边层是应用服务接口,允许用户把自己的一些服务动态绑定到Cloud Foundy上,为上层应用共享提供了很好的基础,目前Cloud Foundy已经支持一些服务,通过这些接口可以很容易的嵌入更多服务,最上层是支持的一些流行框架,比如spring,可以开发基于spring的应用,另外Web程序。

  从用户角度来说,可以给应用设置一些URL可以访问的地址,可以看应用运行的日志,另外有一组API是服务API,通过这组API用户可以有效的管理惯用,包括管理Cloud Foundy上创建的各种服务,并且可以选择动态创建已经停止这些服务,以及将服务动态绑定到你的应用,或者解除绑定,还包括一组系统管理API,通过这组API可以了解Cloud Foundy上面跑的所有应用程序已经应用状态,可以通过帐号管理API有效的给Cloud Foundy上的应用设置一些权限。

  另外有一些可选参数,应用发布时候有几个实例,以及应用的URL,包括应用在什么位置,应用发布以后,可以通过ARPDATE命令对应用进行动态更改,可以通过stop命令停止。另外可以通过底下这组命令动态的更新应用设置、获取应用信息,比如可以通过VMC这条命令动态的给你的应用分配你的内存,另外可以通过VMC MAP UL设置一个UL地址,通过VMC命令可以了解应用的运行日志,可以得到相关的运行状态。可以在云平台里动态创建服务,可以指定服务的名字,以及是否现在就需要绑定某个应用,另外还可以动态删除服务,包括可以设置一些用户口令、安全管理,另外了解Cloud Foundy跑的各种应用信息。

  Cloud Foundy逻辑结构图,最底层是Cloud Foundy底层所运行的各种云平台,也提供一些其它接口,跑到一些别的云平台上,内核有这么几个部分:一个Router,所有应用可以分配到具体的应用实例上,进行服务状态的跟踪,用户访问所有应用,目前来说通过基于Web的方式访问,还提供两组客户管理工具,一种通过VMC命令行工具,大家也可以装spring的插件,通过插件也可以进行控制。

  Cloud Foundy内部架构图,就像前面介绍的那样,其实就是由几个主要部件组成,一个Router,程序入口点,然后有一组DA,每一个应用或者多个应用可以跑在一个DA上,对云平台进行状态的监控,保证所有服务和应用都在正确状态下,如果不是在正确状态下,会通过日志或者其它形式反馈给管理者和用户。

  下面介绍一下Cloud Foundy各个部件组成情况和功能:第一Router,主要作用将外部的URL映射到内部某个应用实例上,也是整个Cloud Foundy EPI入口点,掉用也是通过Router进行的,还实现了负载均衡,将外部请求平均的发送到一个应用的各个实例上。Cloud Contruler,负责监控系统中所有部件的状态变化,并确保所有部件是在一个正确运行状态下,负责将整个应用可以绑定到特定服务,并且解除绑定,可以控制整个服务应用和各个服务的生命周期,例如通过UMC发布一个应用时候,由Cloud Foundy动态决定将这个应用发布到哪一个DA环境上。

  Health Manger,负责监控应用是否处于健康的状态,通过各种通信协议,会不间断的访问各个应用、实例和运行环境,判断应用和服务是否处于健康状态,如果某个应用实例,在真正企业级云平台运行上,云可能架构在物理上分布很广,应用完全有可能因为各种各样原因崩溃,Health Manger可以对整个状态进行记录,如果发现每个应用实例因为某种原因崩溃会自动启动一个新的实例,当然如果发现内部某中算法可以检测到应用频繁崩溃,会对这个应用做特殊标记,并且尝试不再重新启动该应用实例,通过插件可以动态获取这些信息,并进行跟踪和评估。

  DEA,Cloud Foundy系统会维护DEA池,每一个DEA可以理解成就是VM级别的应用容器,每个DEA虚拟机上实际可以跑一个应用,也可以跑多个应用,而且可以跑多种不同应用,完全取决于DEA上支持的服务和运行环境,DEA有个重要作用,提供受限的操作系统环境,保证各种框架和应用程序完全在企业定义的各种安全权限下正确的运行,很多企业运行云平台上最担心的一件事情就是安全,通过DEA可以进行有效的安全设定,保证你的应用不会超过企业设定好的安全策略。

  服务,Cloud Foundy支持各种服务,也可以理解成拓展了Cloud Foundy的功能,目前来说Cloud Foundy已经集成了很多流行的服务,另外为了得到更多的支持,还提供了一些接口,用户可以很容易的嵌入自己的服务,动态绑定到各个应用上,Cloud Foundy上各种服务可以被多个应用共享,另外Cloud Foundy提供的接口使得各个服务可以以统一的方式绑定到Cloud Foundy,并且以统一的方式进行监控和管理。

  目前来说,Cloud Foundy当前支持的一些运行环境框架包括在运行环境级别现在支持Java应用,支持ruby,大家来自的领域不同,有些可能没有听说过,java 、ruby因此是比较流行的两个,在不同的运行环境下,也支持一些流行的框架,比如Java社区目前支持spring,还包括一些别的,像LIFT等等,在今后几年里,将会有越来越多的开发环境和服务被支持,其实它的一个主要目标就是希望能够支持当前所有流行的服务和运行环境,这是Cloud Foundy未来几年大力推广和希望大家广泛参与支持的一个计划。

  Cloud Foundy开发应用的简洁性,第一个简单的例子是比较典型的Web应用,可能开发一个spring外部应用,或者用ruby,不管什么,一个基本的应用就是前端有一个系统负载均衡,后端有多个应用实例,多个应用实例完全跨越整个物理网络,可能分散在多个节点上,后端大家共享同一个数据库,这是比较典型的企业级Web应用。如果传统的开发方式,可能用户需要配置很多东西,比如需要配置用户名、口令,而且需要指定绑定位置,具体位置在什么地方,另外启动多少个最大线程数有多少,另外并发能够支持多少,然后缓存数量等等,包括配置文件的位置,作为一个开发者来说,除了关注你业务逻辑本身一些东西之外,可能要花很多时间学习和了解各种不同服务后端的配置情况,这样才能把完整的应用正确的运行起来。

  在Cloud Foundy下,Cloud Foundy由统一管理人员配置和管理,对于开发人员来说,使用Cloud Foundy变得非常简单,后端URL地址是云所在的URL地址,指定这么一条命令表明后面的应用也好、服务也好都定在这个平台上,输入用户名和口令以后可以进入系统,应用需要内存64兆,需要本地物理位置,至于应用的各个实例发布到你的云平台后端的哪一个机器上对用户来说都是完全透明的,可以动态创建实例,并且把实例动态绑定到应用上。经过一段时间运行,如果动态升级应用也很简单,至于升级过程中需要的程序暂停或者需要加锁、状态更新这些都由Cloud Foundy帮你做,不用关心内部发生的情况。

  这是另外一个示例,具有伸缩性需求的复杂应用,分布式的应用,前端有一堆应用,是在一个池里边,有多个实例,中间通过消息中间件跟后端应用进行通信,中间大家都通过开源KV服务进行共享,在这种应用情况下,如果用Cloud Foundy对于一个开发者来说也是很简单的,启动八个实例,每个实例需要内存64兆,对后端程序来说,启动两个实例,每一个实例需要256兆内存,至于每一个实例跑哪一台物理机上对用户完全透明,可以动态创建多个服务,以及指定出这些服务需要绑定到哪个应用上,最终在一些应用之后可以动态的对整个应用进行升级。

  总结来说,我个人也在Cloud Foundy上创建了一个帐号,也跑过一些应用,我个人理解,Cloud Foundy最主要的优点首先是入口非常简单,Cloud Foundy支持流行的框架,跟传统的比较火的平台相比Cloud Foundy其实不需要你额外的学习很多东西,因为所有框架和服务,不管Linux方面还是Java方面都是比较流行的东西,使得很多用户或者很多开发者只要花很短时间就可以学习怎么样在Cloud Foundy上发布应用,然后怎么样测试。第二点,可以直接在自己的系统中开发测试,Cloud Foundy开源论坛社区提供一个地址,大家有兴趣可以在上面注册一下,目前来说Cloud Foundy正在开发一个云,为用户提供可以在单机上跑的云环境,可以在单机系统上开发、调试、测试云应用,对用户来说非常有吸引力,大大降低了很多爱好者或者开发人员进入这个平台的门槛,很多情况下,比如我要学习一些其他厂商的,光运行环境就是很麻烦的事情,更不用说自己能够进行调试或者测试,最重要的是跑的程序如果能够通过,基本可以确定发布到真正企业的Cloud Foundy基本可以100%正确的跑。另外支持程序的演化,整个框架完全一样,简单的支持程序演化,Cloud Foundy从设计开始就支持多节点的分布式系统,而且可以很容易的对节点进行创建和缩减,对伸缩性方面具有内键支持,可以很容易的拓展到企业应用。另外一点无障碍发布运行程序,可以不需要额外的学习很多东西,大家刚才通过前面例子也看到了,敲几条命令就可以把应用发上去,更重要的是传统应用的思维模式在Cloud Foundy下并没有很大变化,我也看过一些其他厂商提供的平台,如果在它上面开发很多应用的话,需要花很多时间学习新的编程模式或者编程思维方式,跟传统很多应用开发结构已经发生了很大变化,需要花很多时间学习,在Cloud Foundy上,从创建开源项目开始,就把提高用户体验作为很重要目标,希望很容易的以传统方式开发自己的程序,但是又能跑在整个云平台上,这点是非常重要的一个特点。如果企业中有自己私有云,其实也没有关系,Cloud Foundy提供一组服务方API,可以让Cloud Foundy跑自己云平台上,只要开发者实现这组API就可以了。

  我给大家提供一些比较有用的资料,一个是社区,大家可以发布问题,或者感受,我在上面试过,体验速度很快,第二用户注册,可以首先到Cloud Foundy.COM上进行用户注册,可以用的时候会通知你,可以在本地下在Cloud Foundy本地运行版本,可以很容易在自己单机上进行调试和测试。第三,源代码开源社区,大家可以下载源代码,并且体验,目前是基于rube写的,如果了解rube分析起来轻车熟路,是完全开源的。

  以上就是Cloud Foundy目前的一些情况,谢谢大家!

0
相关文章