2012年1月11日,第六届中国IDC产业年度大典在北京国家会议中心盛大开幕,本届大会以“构建云数据中心暨云应用创新论坛”为主题,邀电信运营商、IDC企业、设备厂商、互联网等业界同仁共同探讨云计算时代下的IDC产业机遇与责任,北邮国家重点实验室云计算 副教授徐鹏发表演讲:PaaS云模型及实践。

北邮国家重点实验室云计算副教授徐鹏:高校老师上来自我介绍,最难的是你们到产业界来干吗,这确实是比较麻烦的事儿。简单介绍一下我们团队的背景,邮电大学,也不是玩自己的校园网,邮电大学最经典的玩法是这样的,我们一般来说,是作为技术提供方,向第三方提供我们的技术平台,然后支撑第三方。我们相当于躲在后面的团队。我们团队做了哪些?大家是上海电信的手机用户,每一条短信都会经过我的代码。如果大家当年打过201电话,大学校园的201电话,恭喜你,你们都用过我们做的201卡,是上海电信短信中心也是我们做的,这就是我们的团队。
我们最早是做智能网的,智能网是做什么的?大家都知道,如果说做电信这个行当,很多听说过智能网,就是在传统电信网上,为多种电信增值业务提供运行平台。这个地方,有很多人已经有感觉了,这东西是什么?这个东西就是早些年的PaaS原型。最早我们并没有想着说做云,我们只想提供一个高弹性,能够高效利用资源的底层平台,提供各种应用的运行环境。后来终于有云的名字,何乐而不为,既然可以叫PaaS云,为什么不叫呢,这样来定的PaaS云。
那么今天,在演讲中,会给大家带来四部分的内容。首先一个引言,我们最初的考虑是什么?最后有两点内容,是比较重点的内容,会介绍我们这片云所面对的核心需求是什么?同时我们提出来一个什么样的模型,最后简单给大家看一下,我最后给大家看界面,告诉大家,我们真的做出来了。
引言,简单给大家一个截图,毕竟走到今天,PaaS不好说被做烂了,至少被用烂的一个词。我们经常说做PaaS云的时候,经常需要解释的是这片云跟别人的云有什么区别,这是第一点区别,我们不单提供应用的环境,PHP、JAVA,我们反着的,PHP是将要发布的,JAVA是已经发布的,提供标准的JAVAWEB的托管,我们还提供虚拟机的托管,为什么?原因很简单。我们曾经做过一系列的调研,企业的应用想往云平台迁移的时候,很难有某种应用环境能够支持无缝的迁移。为什么?可以支持标准PHP库,没有问题,但是有大量的企业应用依赖于第三方的库,你的环境不能提供第三方的库存。我们退了一步,当你能用我们的应用托管环境的时候,请你用,用不了,就是给你虚拟机,为虚拟机提供高可用性扩展,高可扩展性扩展,提供高的可应用的兼容性,或者高的可移植性,这是云的第一个特点。
第二个特点,能力上,大家如何看待今天,做应用的人最幸福也最难,为什么?尤其是Appstore出现之后,一个应用开发者想让自己的应用脱颖而出,越来越难。一个数字很能说明问题,一个苹果的应用商店,有35万种应用,你的应用想脱颖而出非常难。我们看到一个新的机会,就是能力。能力本身是可以用来挣钱,什么是能力?比如说我想去做一个地图服务,但是最底层的定位,地图的PIO、POI信息都没有,怎么办?很简单,就是可以用第三方的能力。
第三,我们做什么的。我们开始做云的时候,大的抉择就是做什么,公有云还是私有云?首先被我们否定的就是我们自己运营公有云,原因很简单。假定我信北邮能运营好公有云,你们是不信的,一个高校很难运营公有云的。是否有另外一条思路,我们原来最擅长的是给别人做赌具,而不是自己开赌场,我们做的是一个平台,一个基础架构,这个架构任何第三方可以拿过来搭建私有云,或者运营公有云。这是我们要做的工作。不是像SAE一样,是一个公有云,我们做不了,原因很简单。大家看一下北京邮电大学的主页,就知道了,这样的高校,或者这样的科研机构,没有任何的运营能力。因此我们做的是一个私有云,或者说我们做的是一个PaaS云的解决方案。
接下来,这个故事就很有意思了。最初的PPT,底下的红字写的是云海山寨谁,发现有SAE,就没有好意思说要山寨SAE.大家起步时间差不多,我们2008年,他们2009年初,起步的时候,我们调研了业界相关的产品。首先映入眼帘一定是SAE,就是在PaaS层上。没有什么可说的,各个方面都是PaaS的标杆,提供一系列很棒的特性。比如说本地的开发测试,沙箱,平滑扩展能力,应该说,基本已经为PaaS制定这样的标杆。但是我们在这个地方,真正眼前一亮不是最初的调研,而是去年GE的宣布,2012年1月1号开始,对日点击率超过2.5万次的用户,对MapAPI日访问量超过2.5万次的用户开始收费了。真正给我大的触动。其实告诉我们一个非常有意思的事情,与其当所有的开发者都在应用开发这片红海中挣扎的时候,为什么不开发一些能力出来呢?让别的应用提供者基于我的能力简化开发,在这个地方再说什么是能力。先举个例子,在座的各位如何看待最近脱库的问题,有很多其他方面的原因。反过来谈另外一个故事,在座各位如何看待一个最简单,或者最常用的用户登录模块的开发,简单吗?很简单。最简单的很简单,只要做一次,简单的数据库操作,输入用户名密码匹配一下就可以了,但是大家知道不可能,这绝对不是一个工业用的用户健全的认证模块应该具备的素质。反过来真要想做一个工业级的健全认证,或者用户登录的模块,开发量非常大。
用户密码是否需要加密存储?所有的输入是否都能防止攻击。同时还要考虑用户的注册要如何实现,是否需要做电子邮件确认?如果要是关注这个的话,关不关注用户在什么时候完成的注册,是不是关注用户在什么时候完成登录,所有问题都考虑清楚的时候,会出现发现,原来一个注册模块这么难实现。但是这个GE给我大的触动,就是也许有某些厂商,某些开发者能够提供一个能力,就是简单,基于用户登录的服务就可以了,任何一个服务,不想做登录,就可以用我的能力来完成你的用户登录模块实现就可以了。所有的复杂步骤不需要再考虑,关注的是跟独特理解相关应用的内容,是需要考虑的。
SAE有一个很牛的平台,我们仔细分析之后发现一件事情,他们做的东西我们做不了。为什么?SAE的盈利模式很简单,公有云的盈利模式,而且提供应用商店,这并不是邮电大学关注的,我们作为解决方案供应商,不是最关注这个问题,我们关注的是将来被私有云拿过去的解决方案。现在有很多大的企业,他们需要建设自己的私有云,当搭建私有云的时候,要解决一系列现实的问题。现实性的问题,最重要的有两点。
第一,平台建设过程是要平滑的,或者足够可控,因此这个地方他们需要一个可控的、可维护的代码,搭建自己的私有云。这是第一条。
第二,企业应用还需要两条,高应用兼容性和简单的应用移植,简单的应用移植非常难,因为大量的企业应用基于大量第三方库的实现,这种情况下,简单的提供应用的托管运行环境是非常难实现的,为什么?依赖库的问题,保证应用环境高效安全的时候,往往会限制大量第三方库的使用,这个很容易理解。于是说,我们可以提供虚机的方案,简单把应用装在虚机上就可以了,提供最简单的针对虚机的流量分发。这是相关的应用,同时,能力上限又非常重要,企业想开发应用,自己最关注的是最熟悉企业应用逻辑的开发,而不是大量的支撑组件的开发,这就是能力的定位。
我们大概明白自己要什么,提供一个应用环境,支持简单迁移,支持应用高兼容性,同时易于部署的。国内云计算建设中,政府主导的云计算建设中,有一个非常大的误区,云一定是大的,事实上这是不对的。云未见得很大,因此我们有一个概念,一片最小的云需要多少台服务器,真正云最重要的一点,当你用最小的硬件代价,完成云计算建设的时候,后期服务器能不能平滑加进去,这才是云的魅力。因此我们说,明确自己的目标以后,该如何做?应该说,邮电大学是最早做PaaS云之一,不敢说最早。TANSO跟IBM合作的,做JAVA的运行环境,当时就开源了,不建议大家下这个代码,这个代码很烂,2007年的时候,做了一个最简单的PaaS云的托管方式,当年还不叫PaaS云。
接下来,邮电大学,国内主流智能网厂商应用运行环境都是我们提供技术代码,我们有一个非常完整的面向应用托管的运行环境。实际上就像程先生讲的,Runtime原来做过,分析下来发现一个事情,那个东西只是解决了传统的,或者需要云解决的基本运行环境的问题,真正云运行起来,对运行环境的要求,远远超过云覆盖的范围了。第一,就是能力功能,现有的东西功能能力不全面。又看到另外OPENSTACK等,又遇到另外的问题,功能太全面,功能太全面不用就可以了,这里有一个重要的命题,假定大炮可以打死蚊子的话,大炮的使用成本如何承担?开源软件成为推动业界发展重要的模式,但是的确有一个大的问题,开源软件如何使用,维护成本是否能承担?于是我们就在想,能不能简单一点,别用那么复杂的框架做那么简单的事情。
接下来要回答另外一个问题,什么成就了好软件,这是一个软件圈里,我博士论文是做软件工程的,虽然我是做通信软件。软件工程圈里最经典的一句话,什么成就了好软件。一般来说,当我们回答这样一个命题的时候,首先就是回答另外一个命题,什么是好软件。
第一,好软件,是不是说,我把我所有的开发人员都使用最牛,所谓编程大牛,就一定能做出好的软件,不一定。原因很简单,软件需要固定的成熟期,成熟期只能缩短,而不能被终结,或者一定需要一段时间来成熟。实际上,我们就要清楚,我们为什么说现在在我们向企业提供私有云解决方案之前,我们会在网上建一片公有云,让用户用,原因很简单,就是解决软件成熟周期的问题。这不是今天重点谈的问题,今天谈的是死软件,什么叫死软件?代码无法维护的软件,被称为死软件。代码不能被维护,有两个原因,第一,代码过旧,没有人维护,第二,代码过大,难以维护。我们的问题就来了,我们把大规模、功能非常全面的软件作为基础吗?不敢,原因很简单,就是因为它是死软件。通过软件过程解决好软件,不现实,原因很简单。如果是这样的话,世界上就不再有垃圾软件了。通过软件人才,首先成本就承受不了,大家都知道。
今年实际上在我人生以来受刺激比较大的一年,包括我的学生,今年找工作,最低工资年薪17万,开玩笑,他们绝对不止这个钱,但就有人付这个钱,原因很简单,公司把他们作为软件人才储备起来。反过来,这样的人是否真正能做出一个好软件,不能。给大家引述一个当年Unix设计的一个论调,好模型成就一个好软件,如何看待他们使用的模型,这是需要跟大家探讨的。Unix为什么这么好,成就这么多年的软件过程。好模型从哪里来,我们关注PaaS的时候,关注好软件、好模型的时候,重点是后面两个。第一,一定要用成熟的技术满足核心的需求。第二,一定作为项目的技术负责人,我们每个人一定要做一件事情,就是一定要限制创新的规模。在一个项目中,新开发的组件必须尽可能的被缩减,为什么?只有旧软件,才经历过,完成软件成熟期之后,才能被称为活的软件。这种情况下,限制创新规模是今天要跟各位探讨的重要内容,于是跟大家讲我们PaaS做什么事情。
首先,我们这个平台希望关注草根,说白了,草根遇到什么问题,两个字,缺钱。大家走到今天,除了大型企业不愁钱,愁流程之外,小企业没有一家不缺钱的。对于企业来说,就是开源节流,第一,就是降低硬件成本,怎么降低?云计算技术诞生之初,云出现之前,我们为不同的应用和设置,配置不同的硬件资源,做硬件配置的时候,不得不安全硬件预估的峰值进行配置,中国运营商所有的系统都是按这种方式配置,不幸的是这个平台资源利用率很低,云计算出现,在一个平台上同时托管多个业务的时候,把A业务不用的峰值调给B使用,从而让资源高效的得以利用。2009年,全球数据中心平均工作负载是在5%到40%之间,意味着最棒的数据中心,资源利用率只有40%,至少有一半的资源被浪费了,怎么解决这个问题?就是一句话,云计算是解决这个问题的很好的方式。
第二,重点探讨的内容,就是软件成本。不管是做企业,还是做服务,我们以往就是自己搞定所有的一切,自己要做一个网站,至少现在能想到的事情,用户登录要做,文件存储要做,数据库要做,都是需要自己做。我们说传统的数据研发存在大量的重复研发,不断的重复造轮子,大大拉高的软件成本,应该有一个统一的软件基础的平台,这个平台任何的一个企业,当他想要开发自己的应用软件的时候,可以怎么办?基于这个平台完成开发,从而降低每一个具体产品开发工作量。
统一的软件基础,避免了研发,但是这个里面,隐含了另外一点,就是软件基础应该是叫可持续发展的。当一个新的能力组件被开发出来的时候,能力组件应该很容易被加入到现有的平台当中,加入到现有的软件基础当中,非常重要。管理成本没有太多可说的。这张图是传统的电信运营商的业务上线的流程,走商务流程,完成硬件采购、软件开发、系统联调、上线运行、分成结算,业务需要这么复杂的流程,才能把应用和能力发布的时候,这种模式显然不合适的。为什么?复杂的技术,商务流程大大增加了人力物力的投入,拉长应用推出周期,提高了成本。有没有办法解决这个问题,在座各位如何看待,中国电信运营商采用这个模式进行业务提供和管理。原因很简单,因为任何的一个SP做了垃圾业务做了黄赌毒业务,板子都是打他们,为了进行这样的业务,不得不负责。
今天,一个企业所管理的IT资产越来越多了,服务器、虚拟机、交换机、存储、数据库,大量的IT资产,都需要被管理。有没有一个方法能够完成管理,这是管理成本。接下来说开源。
节流,省下硬件成本、软件成本等,目标很明确,开源,怎么有收入,后Appstore时代,一个应用想要脱颖而出越来越难,于是我们可以看到,开发者,企业应用开发者,还是企业,都面临一个问题,需要新的能力支持开发新的业务。大家都知道,有成功的企业,就是利用到很好的能力,就是定位能力,就是新的能力的诞生,导致一个新的应用的诞生。这是能力应用开发者的意味。反过来我们要看,围绕新能力,挖掘最终用户的需求,是当前开发者非常关键的内容,促使应用脱颖而出的事半功倍的手段。但同时,提供能力,谷歌GAE的能力,提供能力是提供新应用之后的新蓝海,我们提供应用的方面不足。邮电大学就是提供应用不足,但是提供能力非常强,作为一个科研组织,做不到这一点,很多企业没有这样的成本,承担应用运营成本、市场调研成本,没有办法承担。但是一个企业可以做什么?可以把懂得、最核心了解的能力封装出来,让其他人使用。
未开发者提供应用托管运行环境,不需要购置软件、硬件,不需要关注运维,大大降低应用提供者的进入门槛,支持高可扩展性,以能力运营的方式向开发者提供云管端的能力。不可能说能力在这儿,就对最终用户发布,中国这片土地上,想要做业务平台,而同时又不对应用进行审核,这件事情本身很危险。我们提出这样的模式,任何应用的提交,会先提交到我们的平台上,平台会进行审核,审核之后,我才会让最终用户可以访问和使用。同时,在我们平台上的应用,可以适用于平台提供的一系列能力。而同时,应用提供方向能力提供方支付费用,能力提供方通过我们的平台得到该得到的能力使用费用。这是这个平台非常重要的流程。
简化应用流程,没有太多可说的,只是想说,传统电信的模式是不可取的,我们提出另外一种模式,什么样的模式,就是你想去发布一个应用的时候,只要先把你的应用发布到平台,完成应用审核之后,才能让最终用户访问。
总结一下核心需求。第一,提供应用运营环境,提高资源利用率。什么是云?我们经常看到有一些企业自己做了一个Web网页,说这就是云了,为什么?是通过互联网向用户提供服务的。www诞生起,这个事情就是这样的。云并没有做到以前任何前人做不到的事情,云只是降低了做那件事情的成本,怎么降低?云提高资源利用率,降低了服务提供者的运营成本,因此提高利用率。第二,提供应用环境,要降低应用开发复杂度,自动实现应用高可用性和高可扩展性,以及降低迁移成本。还要提交应用管理模式,还提供能力,包括平台内建好的能力,也鼓励第三方开放的能力。
接下来介绍一下模型的部分,当我们设计一片云的时候,前面所有的部分,是跟大家探讨我们想要做什么,分析完之后,我们想做的事情比较清楚了,提供一个面向企业的应用推广环境,有两个特点,  应用简单的迁移和能力商店,这是非常重要的特点。接下来如何做?第一,提供运行环境,首先最重要的是分配资源,分配资源,前面一定有有一个定语,高效的分配资源。怎么做?在传统的PaaS云模型中,任何一个应用来了以后,只要创建多个实力,然后创建相应的实力,为这个实力做到相应的物理资源,就是最简单的PaaS运行模式,有一堆服务器和资源,把应用找一台硬件资源和硬件服务器部署完就可以了,这就是简单的应用托管的模式。也许我们可以做得更好,怎么做?我们引入一个中间层,叫容器层,容器是PaaS平台非常重要的技术概念,封装多种类型的应用,换句话说对我们平台层面,在我们看来,一个JAVAWeb应用跟虚拟机完全等同,用相同的调度算法进行调度,什么呢?为这个容器选择相应的硬件资源,这是容器的概念。为什么要支持虚拟机?原因很简单,要降低应用成本。容器是我们资源平台的单位,资源分配很简单,首先为容器选择容器资源,创建容器,在容器当中部署相应的实力,是应用部署的过程。经过这样的抽象,大家会发现,一个PaaS的平台,调度过程是非常简单,或者说非常的一致。无非是为容器选择资源,把应用放在容器里。这个时候,不管应用是一个虚拟机,还是一个JAVAweb应用,都非常容易和一致。容器的实现对我们来说很简单,我们抽象出来一个标准的容器,为这个容器提供一套标准的API,大家看现在的容器支持哪些。比如说JAVAweb的Jetty服务器,包括VMware等,封装成标准的容器,经过适配层,适配层提供的是标准通用的接口,这一点真的有意义。
我们现在这个平台大概有4、5家国企在用,为什么强调国企?他们上的规模还是很大,不同的国企,当大家跟大型企业打交道的时候,大家如何感觉,大型的企业,往往会有一些技术倾向。比如说我们跟企业交流的时候,对他们来说什么都不重要,就要求一点,PaaS云中用的虚拟机,必须是VMware的。为什么?我们就觉得VMware好。还有就想用Xen,为什么?不告诉你。这样的场景非常多。
这个时候既然提供解决方案,对我们来说,我们又不像清华一样,我们不做虚拟机部分,我们就想办法通过容器的概念支持各种类型的虚拟机,这是我们的理念。既然不做,那就开放一点,通用一点。
接下来就是高效性,在于这样的问题,我们提供了一个叫做决策者、执行者和代理者的模式。所谓的资源调度,或者所谓的云计算的高效的资源分配,无非就是两个过程。
第一,对现有硬件资源的运行状况的采集,采集完之后,一定会进行中间的调配和调度。非常重要的模式,提供物理资源代理,在每一个硬件平台上装资源代理,安装自己写好的JAVA的软件,装好之后,代理会收集物理资源当前的负荷状况,然后会把这个资源状况报告给资源控制,资源控制再把相应采集来的资源信息上报给资源调度,资源调度就做一件事情,是整套系统当中的大脑,维护资源调度算法,维护一系列的算法。刚才主持人有三个问题,我想重复一个问题,一个应用会部署到所有的服务器,这自然是很好的方式,我们做资源调度的时候,一个应用真的部署在几百台服务器吗?我们不是这样做的,为应用配置一个预置,预置可以修改,目前配置的就是任何一个配件不少于三个副本,三和所有,在调度算法层面,看到的优化是不一样的。所有硬件资源部署副本的时候,大化实现应用高可靠性和分担。三,是在有限环境中,能够大化支持更多的应用。资源调度算法无所谓好坏,只有是否合适。
因此当我们进行资源调度的时候,当我们看见一个应用部署,一个应用去部署,一个应用动态扩容,应用动态缩融的时候,资源动态,通过物理资源代理,收集的硬件资源为这个选择相应的硬件资源,这个过程非常复杂的。这个世界上没有一种普适的资源算法。最小一片云多少服务器,假定建设一片云,就三台服务器,难道不是云吗?资源能动态调度,是云,但是当你的服务器数量非常非常少,而你所承载的应用数量非常多的时候,这个时候关注的是尽可能充分利用硬件资源。
第二阶段,服务器到百台的时候,最关注的是什么?服务器规模一旦到百台的时候,最关注的事情一定是电费,可不可以以节电为目标优化调度算法,有,邮电大学有一系列相关的论文,支撑这个事情。面向节电的资源调度,当你服务器超过千台的时候,最重要的是提高系统营收,这又是另外一个模式。高利用率,就是云出现的原因,我们这个地方,第一现有算法有很高的利用率,第二,为什么在前一张图单独引出来资源调度的模块,重要的原因就是要实现资源调度算法的差别化,可以根据不同的应用场景,修改资源调度的算法,这一点非常重要。
从我们现在的研究结果来看非常重要的目标,没有任何一种资源调度算法是普适的,可用性的实现,没有什么可说的,无非就是多级监控的模式,有大量的资源,通过主采用的监控者,监控硬件资源高可用性,主备用采用浮动IT.应用管理环境,这个叫做域名,做的是负荷分担或者消息转发,任何一个应用过来,分配相应的硬件资源,分配完之后,这里很重要的一点,这个时候按照我们的理念,是绝对不会允许用户能够访问这个应用,为什么?他还没有通过审核,通过域名分配一个受限访问域名,平台管理者,应用审核者,可以通过这样的通路进行审核,审核之后,平台管理员会再次真正的把应用部署到平台上,这个时候,域名管理才分配一个公开访问的域名。只有当获得公开访问的域名,用户才可以使用,提交审核和应用的模式。并不是任何一个应用拿来就可以分配资源的,一定要经过审核的。
提高能力,我们有一个能力框架,在我们这里指完成能力的运营,能够因为能力被使用而收费,提供一个API,每年超过2.5万次,就可以收钱,一个能力提供者通过平台发布的时候,向能力框架注册资费,一旦完成注册,后面都是一样,先通过平台管理员审核,之后才去部署。能力发布完一个,任何使用者要应用的话,要完成能力的订购。如果是一个API,要签约,使用地图的API,合同就是同意这个经费使用API,通过代理使用了,任何一次能力的API被调用,通过能力框架完成一次计费操作。这个框架叫做能力运营框架。这一点也是我们现在做的云海项目,跟市面上PaaS云非常大的区别。
安全不得不讲,我们提出巡逻者和审查者的模式,会有完全独立于平台的巡逻者。如果我把我的巡逻者部署到平台上,一旦平台被攻破的话,什么都剩不下,于是我们提供完全独立平台的巡逻者,跟平台各个组件进行交互,然后进行相应的安全审查。比如Web安全异常的扫描,流量的监控等,完成这些任务的时候,有一个审查者进行保证,同时审查者和巡逻者是独立于平台的,从而保证我们有一个相当于完全第三方安全控制模式,对平台进行管控。我们自己的组件,日志管理是最常规的,属于基本能力。通用能力的框架,不展开了。
这是我们整个北邮云海概念的全图,这是具体的实现,我们一系列的功能模块,大家一看就会发现,原来我们的功能模块很简单,无非是AppMaster做任务,App反向代理完成真正消息的转发,一个通用的容器。
首页,用我们自己的能力,用户认证,我们项目组开发的Web应用,不需要自己登录一个模块,统一的完成注册登录,出详尽的报表。任何一个人,在这个平台上可以发布应用,可以在这个地方看到应用列表,也可以创建新的应用,非常简单,配置应用标识、应用名称、应用简单描述,点创建,就可以出现了。当你刚刚把应用发布到平台上的时候,没有UI,原因很简单,因为没有被审核,这个时候把应用开发包传到我们的平台上,另外就是SVN的模式,这个都一样,把我的服务提供在SVN的服务器上,上传到我们的平台上,这里会给一个提示,10个工作日之内给一个明确的响应,是否能运行和发布。一旦发布运行之后,就可以把域名给用户使用。同时还提供虚拟机的服务。虚拟机服务大的好处,就是可以提供一系列陈述的虚拟机的模板,比如说LAMP,SAE提供非常棒的功能,对现有LAMP的重现,我们的虚拟机可以告诉大家,就是一个标准的LAMP就是标准的Linux服务器上安装的虚拟机,可以提供非常好的应用兼容性。还提供了能力商店,现在能力比较简单,提高用户健全认证、电子邮件、My  sql数据库服务,使用的话,就是进行相应的付费。最后就是域名管理。
域名本身是一种能力,大家想,如果在我的平台上,没有应用推广,就没有域名管理,十台服务器需要用户来用,于是可以为你指定的,在平台上申请的虚拟机的IP和端口进行域名指向。不但能做到这点,还能做到按比例分发,购买十台虚拟机,端口流量分发在虚拟机上,这是很重要的能力,就是域名管理能力。
主持人:谢谢,我们有一个名额。
提问:我有两个问题,第一个问题,应用架构在能力之上的。
北邮国家重点实验室云计算副教授徐鹏:对。
提问:能力也是应用提供出来的,或者是底层架构提供出来的,有一些应用是其他应用之上的。之前说到功能太全面,或者功能不够的概念,我们做开发和能力通用的时候,经常遇到一个问题,一个应用,或一个能力本身具备一部分的东西,偏偏有一部分东西没有,自己提供能力的时候,怎么考虑能力的可用性和同用性。
第二个问题,就是应用副本的问题,全部的架构副本,还有一个预置的架构方式副本,最理想的状态应该是按需动态的分配副本。这样的副本管理的时候,现在在云海上有没有支持,或者预想以后能支持动态的架构的副本。
北邮国家重点实验室云计算副教授徐鹏:第一,首先在我们的平台上,对平台用户管理来说,一个应用提供者和能力提供者完全一样。只需要在我们的平台上,把你的应用,或者你的能力,能力对我们来说也是一个应用,发布到平台上就可以使用。这里确实有一个问题,万一平台现有提供的能力,没有办法用,怎么办?这正是这个平台存在的价值所在。意味着应用对能力的需求是多样化的。而多样化的市场,才能带来真正的应用。A提供的应用不可用,也可能直接促成B的出现,这就是市场的多样化,就像平常做应用一样,同类的应用,塌房游戏千千万万,就是塌房应用能力的问题。这个平台提供的潜在可能,就是能力开发的时候,放在平台上让第三方使用,因为能力的开发获得另外一部分收入,而不是能力仅服务一个服务。
第二,动态扩展,我们平台很完美的实现了实地的动态扩展。一个应用来部署,现在的算法很简单,任何一个实例来了,创建三个副本,一定放在当前三台最轻载的服务器上,通过App发现流量增加的时候,找轻量级的服务器创建新的副本,就是动态的,不需要管理。同时发现任何一个副本损失掉了,各种原因都有可能。会找另外一台轻量级的服务器,捕捉副本,保证这个平台自动的实现同样的定向扩展。相应的也可以做能量的收缩,再缩也不会少于三个,就是初始的三个和最后的三个,这是平台的调度算法。

北邮国家重点实验室云计算副教授徐鹏:高校老师上来自我介绍,最难的是你们到产业界来干吗,这确实是比较麻烦的事儿。简单介绍一下我们团队的背景,邮电大学,也不是玩自己的校园网,邮电大学最经典的玩法是这样的,我们一般来说,是作为技术提供方,向第三方提供我们的技术平台,然后支撑第三方。我们相当于躲在后面的团队。我们团队做了哪些?大家是上海电信的手机用户,每一条短信都会经过我的代码。如果大家当年打过201电话,大学校园的201电话,恭喜你,你们都用过我们做的201卡,是上海电信短信中心也是我们做的,这就是我们的团队。

我们最早是做智能网的,智能网是做什么的?大家都知道,如果说做电信这个行当,很多听说过智能网,就是在传统电信网上,为多种电信增值业务提供运行平台。这个地方,有很多人已经有感觉了,这东西是什么?这个东西就是早些年的PaaS原型。最早我们并没有想着说做云,我们只想提供一个高弹性,能够高效利用资源的底层平台,提供各种应用的运行环境。后来终于有云的名字,何乐而不为,既然可以叫PaaS云,为什么不叫呢,这样来定的PaaS云。

那么今天,在演讲中,会给大家带来四部分的内容。首先一个引言,我们最初的考虑是什么?最后有两点内容,是比较重点的内容,会介绍我们这片云所面对的核心需求是什么?同时我们提出来一个什么样的模型,最后简单给大家看一下,我最后给大家看界面,告诉大家,我们真的做出来了。

引言,简单给大家一个截图,毕竟走到今天,PaaS不好说被做烂了,至少被用烂的一个词。我们经常说做PaaS云的时候,经常需要解释的是这片云跟别人的云有什么区别,这是第一点区别,我们不单提供应用的环境,PHP、JAVA,我们反着的,PHP是将要发布的,JAVA是已经发布的,提供标准的JAVAWEB的托管,我们还提供虚拟机的托管,为什么?原因很简单。我们曾经做过一系列的调研,企业的应用想往云平台迁移的时候,很难有某种应用环境能够支持无缝的迁移。为什么?可以支持标准PHP库,没有问题,但是有大量的企业应用依赖于第三方的库,你的环境不能提供第三方的库存。我们退了一步,当你能用我们的应用托管环境的时候,请你用,用不了,就是给你虚拟机,为虚拟机提供高可用性扩展,高可扩展性扩展,提供高的可应用的兼容性,或者高的可移植性,这是云的第一个特点。

第二个特点,能力上,大家如何看待今天,做应用的人最幸福也最难,为什么?尤其是Appstore出现之后,一个应用开发者想让自己的应用脱颖而出,越来越难。一个数字很能说明问题,一个苹果的应用商店,有35万种应用,你的应用想脱颖而出非常难。我们看到一个新的机会,就是能力。能力本身是可以用来挣钱,什么是能力?比如说我想去做一个地图服务,但是最底层的定位,地图的PIO、POI信息都没有,怎么办?很简单,就是可以用第三方的能力。
第三,我们做什么的。我们开始做云的时候,大的抉择就是做什么,公有云还是私有云?首先被我们否定的就是我们自己运营公有云,原因很简单。假定我信北邮能运营好公有云,你们是不信的,一个高校很难运营公有云的。是否有另外一条思路,我们原来最擅长的是给别人做赌具,而不是自己开赌场,我们做的是一个平台,一个基础架构,这个架构任何第三方可以拿过来搭建私有云,或者运营公有云。这是我们要做的工作。不是像SAE一样,是一个公有云,我们做不了,原因很简单。大家看一下北京邮电大学的主页,就知道了,这样的高校,或者这样的科研机构,没有任何的运营能力。因此我们做的是一个私有云,或者说我们做的是一个PaaS云的解决方案。

接下来,这个故事就很有意思了。最初的PPT,底下的红字写的是云海山寨谁,发现有SAE,就没有好意思说要山寨SAE.大家起步时间差不多,我们2008年,他们2009年初,起步的时候,我们调研了业界相关的产品。首先映入眼帘一定是SAE,就是在PaaS层上。没有什么可说的,各个方面都是PaaS的标杆,提供一系列很棒的特性。比如说本地的开发测试,沙箱,平滑扩展能力,应该说,基本已经为PaaS制定这样的标杆。但是我们在这个地方,真正眼前一亮不是最初的调研,而是去年GE的宣布,2012年1月1号开始,对日点击率超过2.5万次的用户,对MapAPI日访问量超过2.5万次的用户开始收费了。真正给我大的触动。其实告诉我们一个非常有意思的事情,与其当所有的开发者都在应用开发这片红海中挣扎的时候,为什么不开发一些能力出来呢?让别的应用提供者基于我的能力简化开发,在这个地方再说什么是能力。先举个例子,在座的各位如何看待最近脱库的问题,有很多其他方面的原因。反过来谈另外一个故事,在座各位如何看待一个最简单,或者最常用的用户登录模块的开发,简单吗?很简单。最简单的很简单,只要做一次,简单的数据库操作,输入用户名密码匹配一下就可以了,但是大家知道不可能,这绝对不是一个工业用的用户健全的认证模块应该具备的素质。反过来真要想做一个工业级的健全认证,或者用户登录的模块,开发量非常大。

用户密码是否需要加密存储?所有的输入是否都能防止攻击。同时还要考虑用户的注册要如何实现,是否需要做电子邮件确认?如果要是关注这个的话,关不关注用户在什么时候完成的注册,是不是关注用户在什么时候完成登录,所有问题都考虑清楚的时候,会出现发现,原来一个注册模块这么难实现。但是这个GE给我大的触动,就是也许有某些厂商,某些开发者能够提供一个能力,就是简单,基于用户登录的服务就可以了,任何一个服务,不想做登录,就可以用我的能力来完成你的用户登录模块实现就可以了。所有的复杂步骤不需要再考虑,关注的是跟独特理解相关应用的内容,是需要考虑的。

SAE有一个很牛的平台,我们仔细分析之后发现一件事情,他们做的东西我们做不了。为什么?SAE的盈利模式很简单,公有云的盈利模式,而且提供应用商店,这并不是邮电大学关注的,我们作为解决方案供应商,不是最关注这个问题,我们关注的是将来被私有云拿过去的解决方案。现在有很多大的企业,他们需要建设自己的私有云,当搭建私有云的时候,要解决一系列现实的问题。现实性的问题,最重要的有两点。

第一,平台建设过程是要平滑的,或者足够可控,因此这个地方他们需要一个可控的、可维护的代码,搭建自己的私有云。这是第一条。

第二,企业应用还需要两条,高应用兼容性和简单的应用移植,简单的应用移植非常难,因为大量的企业应用基于大量第三方库的实现,这种情况下,简单的提供应用的托管运行环境是非常难实现的,为什么?依赖库的问题,保证应用环境高效安全的时候,往往会限制大量第三方库的使用,这个很容易理解。于是说,我们可以提供虚机的方案,简单把应用装在虚机上就可以了,提供最简单的针对虚机的流量分发。这是相关的应用,同时,能力上限又非常重要,企业想开发应用,自己最关注的是最熟悉企业应用逻辑的开发,而不是大量的支撑组件的开发,这就是能力的定位。

我们大概明白自己要什么,提供一个应用环境,支持简单迁移,支持应用高兼容性,同时易于部署的。国内云计算建设中,政府主导的云计算建设中,有一个非常大的误区,云一定是大的,事实上这是不对的。云未见得很大,因此我们有一个概念,一片最小的云需要多少台服务器,真正云最重要的一点,当你用最小的硬件代价,完成云计算建设的时候,后期服务器能不能平滑加进去,这才是云的魅力。因此我们说,明确自己的目标以后,该如何做?应该说,邮电大学是最早做PaaS云之一,不敢说最早。TANSO跟IBM合作的,做JAVA的运行环境,当时就开源了,不建议大家下这个代码,这个代码很烂,2007年的时候,做了一个最简单的PaaS云的托管方式,当年还不叫PaaS云。

接下来,邮电大学,国内主流智能网厂商应用运行环境都是我们提供技术代码,我们有一个非常完整的面向应用托管的运行环境。实际上就像程先生讲的,Runtime原来做过,分析下来发现一个事情,那个东西只是解决了传统的,或者需要云解决的基本运行环境的问题,真正云运行起来,对运行环境的要求,远远超过云覆盖的范围了。第一,就是能力功能,现有的东西功能能力不全面。又看到另外OPENSTACK等,又遇到另外的问题,功能太全面,功能太全面不用就可以了,这里有一个重要的命题,假定大炮可以打死蚊子的话,大炮的使用成本如何承担?开源软件成为推动业界发展重要的模式,但是的确有一个大的问题,开源软件如何使用,维护成本是否能承担?于是我们就在想,能不能简单一点,别用那么复杂的框架做那么简单的事情。
接下来要回答另外一个问题,什么成就了好软件,这是一个软件圈里,我博士论文是做软件工程的,虽然我是做通信软件。软件工程圈里最经典的一句话,什么成就了好软件。一般来说,当我们回答这样一个命题的时候,首先就是回答另外一个命题,什么是好软件。

第一,好软件,是不是说,我把我所有的开发人员都使用最牛,所谓编程大牛,就一定能做出好的软件,不一定。原因很简单,软件需要固定的成熟期,成熟期只能缩短,而不能被终结,或者一定需要一段时间来成熟。实际上,我们就要清楚,我们为什么说现在在我们向企业提供私有云解决方案之前,我们会在网上建一片公有云,让用户用,原因很简单,就是解决软件成熟周期的问题。这不是今天重点谈的问题,今天谈的是死软件,什么叫死软件?代码无法维护的软件,被称为死软件。代码不能被维护,有两个原因,第一,代码过旧,没有人维护,第二,代码过大,难以维护。我们的问题就来了,我们把大规模、功能非常全面的软件作为基础吗?不敢,原因很简单,就是因为它是死软件。通过软件过程解决好软件,不现实,原因很简单。如果是这样的话,世界上就不再有垃圾软件了。通过软件人才,首先成本就承受不了,大家都知道。

今年实际上在我人生以来受刺激比较大的一年,包括我的学生,今年找工作,最低工资年薪17万,开玩笑,他们绝对不止这个钱,但就有人付这个钱,原因很简单,公司把他们作为软件人才储备起来。反过来,这样的人是否真正能做出一个好软件,不能。给大家引述一个当年Unix设计的一个论调,好模型成就一个好软件,如何看待他们使用的模型,这是需要跟大家探讨的。Unix为什么这么好,成就这么多年的软件过程。好模型从哪里来,我们关注PaaS的时候,关注好软件、好模型的时候,重点是后面两个。第一,一定要用成熟的技术满足核心的需求。第二,一定作为项目的技术负责人,我们每个人一定要做一件事情,就是一定要限制创新的规模。在一个项目中,新开发的组件必须尽可能的被缩减,为什么?只有旧软件,才经历过,完成软件成熟期之后,才能被称为活的软件。这种情况下,限制创新规模是今天要跟各位探讨的重要内容,于是跟大家讲我们PaaS做什么事情。

首先,我们这个平台希望关注草根,说白了,草根遇到什么问题,两个字,缺钱。大家走到今天,除了大型企业不愁钱,愁流程之外,小企业没有一家不缺钱的。对于企业来说,就是开源节流,第一,就是降低硬件成本,怎么降低?云计算技术诞生之初,云出现之前,我们为不同的应用和设置,配置不同的硬件资源,做硬件配置的时候,不得不安全硬件预估的峰值进行配置,中国运营商所有的系统都是按这种方式配置,不幸的是这个平台资源利用率很低,云计算出现,在一个平台上同时托管多个业务的时候,把A业务不用的峰值调给B使用,从而让资源高效的得以利用。2009年,全球数据中心平均工作负载是在5%到40%之间,意味着最棒的数据中心,资源利用率只有40%,至少有一半的资源被浪费了,怎么解决这个问题?就是一句话,云计算是解决这个问题的很好的方式。

第二,重点探讨的内容,就是软件成本。不管是做企业,还是做服务,我们以往就是自己搞定所有的一切,自己要做一个网站,至少现在能想到的事情,用户登录要做,文件存储要做,数据库要做,都是需要自己做。我们说传统的数据研发存在大量的重复研发,不断的重复造轮子,大大拉高的软件成本,应该有一个统一的软件基础的平台,这个平台任何的一个企业,当他想要开发自己的应用软件的时候,可以怎么办?基于这个平台完成开发,从而降低每一个具体产品开发工作量。

统一的软件基础,避免了研发,但是这个里面,隐含了另外一点,就是软件基础应该是叫可持续发展的。当一个新的能力组件被开发出来的时候,能力组件应该很容易被加入到现有的平台当中,加入到现有的软件基础当中,非常重要。管理成本没有太多可说的。这张图是传统的电信运营商的业务上线的流程,走商务流程,完成硬件采购、软件开发、系统联调、上线运行、分成结算,业务需要这么复杂的流程,才能把应用和能力发布的时候,这种模式显然不合适的。为什么?复杂的技术,商务流程大大增加了人力物力的投入,拉长应用推出周期,提高了成本。有没有办法解决这个问题,在座各位如何看待,中国电信运营商采用这个模式进行业务提供和管理。原因很简单,因为任何的一个SP做了垃圾业务做了黄赌毒业务,板子都是打他们,为了进行这样的业务,不得不负责。

今天,一个企业所管理的IT资产越来越多了,服务器、虚拟机、交换机、存储、数据库,大量的IT资产,都需要被管理。有没有一个方法能够完成管理,这是管理成本。接下来说开源。
节流,省下硬件成本、软件成本等,目标很明确,开源,怎么有收入,后Appstore时代,一个应用想要脱颖而出越来越难,于是我们可以看到,开发者,企业应用开发者,还是企业,都面临一个问题,需要新的能力支持开发新的业务。大家都知道,有成功的企业,就是利用到很好的能力,就是定位能力,就是新的能力的诞生,导致一个新的应用的诞生。这是能力应用开发者的意味。反过来我们要看,围绕新能力,挖掘最终用户的需求,是当前开发者非常关键的内容,促使应用脱颖而出的事半功倍的手段。但同时,提供能力,谷歌GAE的能力,提供能力是提供新应用之后的新蓝海,我们提供应用的方面不足。邮电大学就是提供应用不足,但是提供能力非常强,作为一个科研组织,做不到这一点,很多企业没有这样的成本,承担应用运营成本、市场调研成本,没有办法承担。但是一个企业可以做什么?可以把懂得、最核心了解的能力封装出来,让其他人使用。

未开发者提供应用托管运行环境,不需要购置软件、硬件,不需要关注运维,大大降低应用提供者的进入门槛,支持高可扩展性,以能力运营的方式向开发者提供云管端的能力。不可能说能力在这儿,就对最终用户发布,中国这片土地上,想要做业务平台,而同时又不对应用进行审核,这件事情本身很危险。我们提出这样的模式,任何应用的提交,会先提交到我们的平台上,平台会进行审核,审核之后,我才会让最终用户可以访问和使用。同时,在我们平台上的应用,可以适用于平台提供的一系列能力。而同时,应用提供方向能力提供方支付费用,能力提供方通过我们的平台得到该得到的能力使用费用。这是这个平台非常重要的流程。

简化应用流程,没有太多可说的,只是想说,传统电信的模式是不可取的,我们提出另外一种模式,什么样的模式,就是你想去发布一个应用的时候,只要先把你的应用发布到平台,完成应用审核之后,才能让最终用户访问。

总结一下核心需求。第一,提供应用运营环境,提高资源利用率。什么是云?我们经常看到有一些企业自己做了一个Web网页,说这就是云了,为什么?是通过互联网向用户提供服务的。www诞生起,这个事情就是这样的。云并没有做到以前任何前人做不到的事情,云只是降低了做那件事情的成本,怎么降低?云提高资源利用率,降低了服务提供者的运营成本,因此提高利用率。第二,提供应用环境,要降低应用开发复杂度,自动实现应用高可用性和高可扩展性,以及降低迁移成本。还要提交应用管理模式,还提供能力,包括平台内建好的能力,也鼓励第三方开放的能力。

接下来介绍一下模型的部分,当我们设计一片云的时候,前面所有的部分,是跟大家探讨我们想要做什么,分析完之后,我们想做的事情比较清楚了,提供一个面向企业的应用推广环境,有两个特点,  应用简单的迁移和能力商店,这是非常重要的特点。接下来如何做?第一,提供运行环境,首先最重要的是分配资源,分配资源,前面一定有有一个定语,高效的分配资源。怎么做?在传统的PaaS云模型中,任何一个应用来了以后,只要创建多个实力,然后创建相应的实力,为这个实力做到相应的物理资源,就是最简单的PaaS运行模式,有一堆服务器和资源,把应用找一台硬件资源和硬件服务器部署完就可以了,这就是简单的应用托管的模式。也许我们可以做得更好,怎么做?我们引入一个中间层,叫容器层,容器是PaaS平台非常重要的技术概念,封装多种类型的应用,换句话说对我们平台层面,在我们看来,一个JAVAWeb应用跟虚拟机完全等同,用相同的调度算法进行调度,什么呢?为这个容器选择相应的硬件资源,这是容器的概念。为什么要支持虚拟机?原因很简单,要降低应用成本。容器是我们资源平台的单位,资源分配很简单,首先为容器选择容器资源,创建容器,在容器当中部署相应的实力,是应用部署的过程。经过这样的抽象,大家会发现,一个PaaS的平台,调度过程是非常简单,或者说非常的一致。无非是为容器选择资源,把应用放在容器里。这个时候,不管应用是一个虚拟机,还是一个JAVAweb应用,都非常容易和一致。容器的实现对我们来说很简单,我们抽象出来一个标准的容器,为这个容器提供一套标准的API,大家看现在的容器支持哪些。比如说JAVAweb的Jetty服务器,包括VMware等,封装成标准的容器,经过适配层,适配层提供的是标准通用的接口,这一点真的有意义。

我们现在这个平台大概有4、5家国企在用,为什么强调国企?他们上的规模还是很大,不同的国企,当大家跟大型企业打交道的时候,大家如何感觉,大型的企业,往往会有一些技术倾向。比如说我们跟企业交流的时候,对他们来说什么都不重要,就要求一点,PaaS云中用的虚拟机,必须是VMware的。为什么?我们就觉得VMware好。还有就想用Xen,为什么?不告诉你。这样的场景非常多。

这个时候既然提供解决方案,对我们来说,我们又不像清华一样,我们不做虚拟机部分,我们就想办法通过容器的概念支持各种类型的虚拟机,这是我们的理念。既然不做,那就开放一点,通用一点。

接下来就是高效性,在于这样的问题,我们提供了一个叫做决策者、执行者和代理者的模式。所谓的资源调度,或者所谓的云计算的高效的资源分配,无非就是两个过程。
第一,对现有硬件资源的运行状况的采集,采集完之后,一定会进行中间的调配和调度。非常重要的模式,提供物理资源代理,在每一个硬件平台上装资源代理,安装自己写好的JAVA的软件,装好之后,代理会收集物理资源当前的负荷状况,然后会把这个资源状况报告给资源控制,资源控制再把相应采集来的资源信息上报给资源调度,资源调度就做一件事情,是整套系统当中的大脑,维护资源调度算法,维护一系列的算法。刚才主持人有三个问题,我想重复一个问题,一个应用会部署到所有的服务器,这自然是很好的方式,我们做资源调度的时候,一个应用真的部署在几百台服务器吗?我们不是这样做的,为应用配置一个预置,预置可以修改,目前配置的就是任何一个配件不少于三个副本,三和所有,在调度算法层面,看到的优化是不一样的。所有硬件资源部署副本的时候,大化实现应用高可靠性和分担。三,是在有限环境中,能够大化支持更多的应用。资源调度算法无所谓好坏,只有是否合适。

因此当我们进行资源调度的时候,当我们看见一个应用部署,一个应用去部署,一个应用动态扩容,应用动态缩融的时候,资源动态,通过物理资源代理,收集的硬件资源为这个选择相应的硬件资源,这个过程非常复杂的。这个世界上没有一种普适的资源算法。最小一片云多少服务器,假定建设一片云,就三台服务器,难道不是云吗?资源能动态调度,是云,但是当你的服务器数量非常非常少,而你所承载的应用数量非常多的时候,这个时候关注的是尽可能充分利用硬件资源。

第二阶段,服务器到百台的时候,最关注的是什么?服务器规模一旦到百台的时候,最关注的事情一定是电费,可不可以以节电为目标优化调度算法,有,邮电大学有一系列相关的论文,支撑这个事情。面向节电的资源调度,当你服务器超过千台的时候,最重要的是提高系统营收,这又是另外一个模式。高利用率,就是云出现的原因,我们这个地方,第一现有算法有很高的利用率,第二,为什么在前一张图单独引出来资源调度的模块,重要的原因就是要实现资源调度算法的差别化,可以根据不同的应用场景,修改资源调度的算法,这一点非常重要。

从我们现在的研究结果来看非常重要的目标,没有任何一种资源调度算法是普适的,可用性的实现,没有什么可说的,无非就是多级监控的模式,有大量的资源,通过主采用的监控者,监控硬件资源高可用性,主备用采用浮动IT.应用管理环境,这个叫做域名,做的是负荷分担或者消息转发,任何一个应用过来,分配相应的硬件资源,分配完之后,这里很重要的一点,这个时候按照我们的理念,是绝对不会允许用户能够访问这个应用,为什么?他还没有通过审核,通过域名分配一个受限访问域名,平台管理者,应用审核者,可以通过这样的通路进行审核,审核之后,平台管理员会再次真正的把应用部署到平台上,这个时候,域名管理才分配一个公开访问的域名。只有当获得公开访问的域名,用户才可以使用,提交审核和应用的模式。并不是任何一个应用拿来就可以分配资源的,一定要经过审核的。

提高能力,我们有一个能力框架,在我们这里指完成能力的运营,能够因为能力被使用而收费,提供一个API,每年超过2.5万次,就可以收钱,一个能力提供者通过平台发布的时候,向能力框架注册资费,一旦完成注册,后面都是一样,先通过平台管理员审核,之后才去部署。能力发布完一个,任何使用者要应用的话,要完成能力的订购。如果是一个API,要签约,使用地图的API,合同就是同意这个经费使用API,通过代理使用了,任何一次能力的API被调用,通过能力框架完成一次计费操作。这个框架叫做能力运营框架。这一点也是我们现在做的云海项目,跟市面上PaaS云非常大的区别。

安全不得不讲,我们提出巡逻者和审查者的模式,会有完全独立于平台的巡逻者。如果我把我的巡逻者部署到平台上,一旦平台被攻破的话,什么都剩不下,于是我们提供完全独立平台的巡逻者,跟平台各个组件进行交互,然后进行相应的安全审查。比如Web安全异常的扫描,流量的监控等,完成这些任务的时候,有一个审查者进行保证,同时审查者和巡逻者是独立于平台的,从而保证我们有一个相当于完全第三方安全控制模式,对平台进行管控。我们自己的组件,日志管理是最常规的,属于基本能力。通用能力的框架,不展开了。
这是我们整个北邮云海概念的全图,这是具体的实现,我们一系列的功能模块,大家一看就会发现,原来我们的功能模块很简单,无非是AppMaster做任务,App反向代理完成真正消息的转发,一个通用的容器。

首页,用我们自己的能力,用户认证,我们项目组开发的Web应用,不需要自己登录一个模块,统一的完成注册登录,出详尽的报表。任何一个人,在这个平台上可以发布应用,可以在这个地方看到应用列表,也可以创建新的应用,非常简单,配置应用标识、应用名称、应用简单描述,点创建,就可以出现了。当你刚刚把应用发布到平台上的时候,没有UI,原因很简单,因为没有被审核,这个时候把应用开发包传到我们的平台上,另外就是SVN的模式,这个都一样,把我的服务提供在SVN的服务器上,上传到我们的平台上,这里会给一个提示,10个工作日之内给一个明确的响应,是否能运行和发布。一旦发布运行之后,就可以把域名给用户使用。同时还提供虚拟机的服务。虚拟机服务大的好处,就是可以提供一系列陈述的虚拟机的模板,比如说LAMP,SAE提供非常棒的功能,对现有LAMP的重现,我们的虚拟机可以告诉大家,就是一个标准的LAMP就是标准的Linux服务器上安装的虚拟机,可以提供非常好的应用兼容性。还提供了能力商店,现在能力比较简单,提高用户健全认证、电子邮件、My  sql数据库服务,使用的话,就是进行相应的付费。最后就是域名管理。

域名本身是一种能力,大家想,如果在我的平台上,没有应用推广,就没有域名管理,十台服务器需要用户来用,于是可以为你指定的,在平台上申请的虚拟机的IP和端口进行域名指向。不但能做到这点,还能做到按比例分发,购买十台虚拟机,端口流量分发在虚拟机上,这是很重要的能力,就是域名管理能力。

主持人:谢谢,我们有一个名额。

提问:我有两个问题,第一个问题,应用架构在能力之上的。

北邮国家重点实验室云计算副教授徐鹏:对。

提问:能力也是应用提供出来的,或者是底层架构提供出来的,有一些应用是其他应用之上的。之前说到功能太全面,或者功能不够的概念,我们做开发和能力通用的时候,经常遇到一个问题,一个应用,或一个能力本身具备一部分的东西,偏偏有一部分东西没有,自己提供能力的时候,怎么考虑能力的可用性和同用性。

第二个问题,就是应用副本的问题,全部的架构副本,还有一个预置的架构方式副本,最理想的状态应该是按需动态的分配副本。这样的副本管理的时候,现在在云海上有没有支持,或者预想以后能支持动态的架构的副本。

北邮国家重点实验室云计算副教授徐鹏:第一,首先在我们的平台上,对平台用户管理来说,一个应用提供者和能力提供者完全一样。只需要在我们的平台上,把你的应用,或者你的能力,能力对我们来说也是一个应用,发布到平台上就可以使用。这里确实有一个问题,万一平台现有提供的能力,没有办法用,怎么办?这正是这个平台存在的价值所在。意味着应用对能力的需求是多样化的。而多样化的市场,才能带来真正的应用。A提供的应用不可用,也可能直接促成B的出现,这就是市场的多样化,就像平常做应用一样,同类的应用,塌房游戏千千万万,就是塌房应用能力的问题。这个平台提供的潜在可能,就是能力开发的时候,放在平台上让第三方使用,因为能力的开发获得另外一部分收入,而不是能力仅服务一个服务。

第二,动态扩展,我们平台很完美的实现了实地的动态扩展。一个应用来部署,现在的算法很简单,任何一个实例来了,创建三个副本,一定放在当前三台最轻载的服务器上,通过App发现流量增加的时候,找轻量级的服务器创建新的副本,就是动态的,不需要管理。同时发现任何一个副本损失掉了,各种原因都有可能。会找另外一台轻量级的服务器,捕捉副本,保证这个平台自动的实现同样的定向扩展。相应的也可以做能量的收缩,再缩也不会少于三个,就是初始的三个和最后的三个,这是平台的调度算法。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2023-03-13 10:31:00
国内资讯 从碳足迹到竞争力 数据中心创新设计趋势前瞻
数据中心是数字经济的核心支撑,设计是数据中心建设和运营的第一步。 <详情>
2023-03-01 19:20:00
国内资讯 IDCC 2022精彩回顾!科华液冷微模块获IDC创新产品大奖!
2月27日-28日,第十七届中国IDC产业年度大典在北京如期而至!围绕“解码可持续发展”,IDCC 2022全方位关注数据中心行业的产融协同、绿色低碳、创新科技,推动数字新基建领 <详情>
2023-02-14 09:40:00