摘 要:

IT工作者梦想着云计算能将他们从纷繁的无意义的劳动中解脱出来,依托SaaS,PaaS,IaaS实现快速的为客户提供丰富的应用,系统虚拟化作为一种重要的手段,已经在各种研究、产品中作为云计算宣传的亮点占据着人们的视角。但是,大量的虚拟化还停留在操作系统级别,本文从以应用成为为中心,提供一种从IaaS平台到PaaS平台的实现方案,改变游戏规则。

关键词: 云计算;应用程序虚拟化;应用程序模式;PaaS生命周期

0 引言

过去的几年,涌现了众多私有云产品,云计算从一个被认为是炒作的概念到实实在在的普通人耳熟能详的产品中成熟起来了。但是,人们依然被一些观念误导着,依托大量的X86集群资源池以及虚拟化操作系统就有可能被断定为:这就是云计算。实则不然,系统虚拟化只是IT设备进化中重要的里程碑。

NIST( National Institute of Standards and Technology )已经正式的发表云计算的定义,这个非常复杂的允长的定义不但明确了云计算的特点,而且还涉及了IaaS,PaaS,SaaS的模型,以及公有云,私有云,混合云的界定。我们可以从NIST对云计算的定义中,总结出下面的几点,作为判断云计算的依据:

* 依托互联网技术,大范围可达

* 随需应变,云内自理

* 资源池

* 快速响应,弹性策略

* 服务管理

这里并没有太多涉及虚拟化操作系统的东西,甚至虚拟化操作系统都没有明确的指明。当然虚拟化系统使得自适应、资源池、随需应变方便了不少。可以判定的是,将很多虚拟机,存储设备,服务器整合到一个云的环境的整体方案才是最关键的。

所以,虚拟化并没有在完成了系统的虚拟后停止了,它开始向上层推广。可以利用下面这张图展示当应用程序和中间件虚拟化后带来的优势。

图 0-1  虚拟化进化路线

在CPU实现虚拟化以后,就可以灵活的变动CPU的参数,在内存实现虚拟化以后,就可以灵活的改变内存,在网卡实现虚拟化,就可以灵活的配置网络,而操作系统的虚拟化,带来了对底层硬件变化的快速识别,立即生效,无论是网卡还是存储空间。如果应用程序实现了虚拟化,是不是可以带来更多的改变,更多的灵活,更加纯净的云计算环境?

1 私有云的PaaS

通过对Oracle,Vmware,IBM私有云厂商产品的模式,可以得到目前PaaS的主流方案。例如,Vmware提出的Cloud Foundry方案,由于Vmware在x86虚拟化上炉火纯青的技艺,用户对Cloud Foundry趋之若鹜。在Cloud Foundry,开发人员可以灵活的使用各种已经集成进Cloud Foundry的产品,如Rabbit MQ,MySQL等,但是还无法做到满足开发人员任意应用程序的灵活策略方案。而IBM的Cloudburst则使用WebSphere Cloudburst Appliance实现了任意镜像的灵活策略,很多工作都花在了根据用户需求,提供丰富的镜像,通过IBM提供的P-system服务器,这种做法达到了先进的任务指标。

图 1-1 Vmware Cloud Foundry

图 1-2 IBM WebSphere Cloudbrust

图 1-3 IBM Cloudbrust P-system

当静下来思考的时候,如果对应用程序进行抽象,是否能带来前所未有的革命,这一改变游戏规则的想法有着极大的挑战。

2 以应用程序为中心

1.PaaS的概览

在IT技术日新月异的发展中,去寻找一个合适的方案来满足应用程序虚拟模式的实现可以有很多种,最关键是怎样适应千变万化的需求。虽然不同的应用程序功能各异,但是,在私有云环境下面,将不同的应用程序的生命周期进行抽象,可以按照安装,配置,上线,关系,升级,下线,重启,将其分成各个阶段,行为相同的应用程序看成是同属于一个模式。

图 2-1 PaaS Manager

PaaS Manager 作为PaaS的实体存在,管理着不同的模式和运行的实例,虚拟的系统是虚拟机的群集,更靠近传统的PaaS解决方案,应用程序模式则是新的模式。

2.模式的含义:应用程序的生命周期

孵化中的鸡蛋壳终于碎了,一个新的生命来到了世上,它们会无忧无虑,会犯错,会纠正,成长,生病,痊愈,随着时间的失去,最终走到尽头。应用程序也是一样的,开始只是一个好的想法(灵感的碰撞),然后孕育(开发),出生(上线),她也要学习(测试、补丁和QA),从事生产,最后被关闭。

一个模式就是在PaaS中管理应用程序的生命周期,为了将目标应用程序导入到云的环境中(注意,这里并不是指将应用程序做到虚拟机镜像中,然后管理镜像文件),势必要对该应用程序建立模式。

图 2-2 应用程序模式

为一个应用程序建立模式,就是分析出:

(1) 应用程序需要的环境(如 内存容量,磁盘大小,CPU参数,端口及依赖第三方应用程序)

(2) 应用程序的安装,运行,升级,关闭命令的触发条件,这些条件可以被脚本完成(如 Python,Shell)

3.应用程序进入PaaS

应用程序的模式弄清楚之后,还需要完成两项任务,这两项任务就是为了将应用程序带进云里。

(1) 配置文件 config.json /metajson.json/template.vm

config.json用来定义应用程序需要的CPU,硬盘,32bit/64bit OS,以及应用程序的组成部分,如J2EE应用程序需要tomcat和war,每个部分具备对应的script.package

metadata.json 用来定义每个模式部署时需要的信息,如root密码,开放的端口

template.vm 用来定义虚拟机的格式,如 KVM/ESX

(2) 安装文件 和 Script.package

安装文件就是产品的发行版文件

Script.package 是负责程序的安装和启动等工作的脚本

以上文件和PaaS Manager 捆绑之后的,用户使用它们部署应用就如堆积木。可以如下图表示:

图 2-3 PaaS 环境下的应用程序

首先使用已经被定义的应用程序模式创建虚拟系统,然后就等待虚拟系统的建立,在部署的时候,会根据提示,填入必要的信息,这一切都是Plugin的功劳。如果理想的模式还没有被定义,那么就需要新建一种适合的模式,模式是由各种plugin组装的,每个plugin对应一种应用程序,每个应用程序又对应不同的parts,如J2EE的应用程序可能由MySQL,Tomcat,WAR文件组成,那么在metadata中定义parts及各自的参数,在pattern的编辑页面定义参数之间的关系。

一个定义好的模式是下面这个样子:

图 2-4 编辑完成的App Pattern拓扑图

因为agent 的存在,监控instance的运行情况变得很简单,agent反馈的信息可以及时的传递到PaaS Manager,PaaS Manager 可以自主的对instance进行管理,如动态的增加集群,增加存储空间等。

图 2-5 PaaS Manager 中实例的监控和管理

这样看上去很美好,整个的过程也并不复杂,因为作为一个解决方案,PaaS的设计必须能满足针对应用程序虚拟化的需求,而将系统的调优,存储,路由规则,组件间运行情况交给PaaS平台本身去管理,而用户只要专心的做好虚拟应用程序的模式就行了。在模式的建立的时候,那些影响系统的策略,将被plugin封装到pattern中,如下图,用户必须能够在建立模式的时候,使用PaaS Manager内建的策略模式进行配置:

图 2-6 动态响应策略配置

PaaS Manager 工作的一个指导原则就是:平台工作的越多,用户的工作就会越少。为此,必须将已经成熟的管理任务交给平台,而用户无需在日常维护中花费什么精力,这些工作必须在系统运行后,就由PaaS Manager自行打理,这一切都是借助于 Plugin,Agent的力量。

那么从无到有部署一个Virtual Application 的过程是怎样的呢?请看下面这张图:

图 2-7 将Enterprise Application领进云端

因为得到了恰当的划分,每个切面只需完成属于自己的功能,开发人员的工作需要得到软件的安装包,证书和使用文档,然后划分需要开发的plugin,parts,script,最后将这些都上传到PaaS Manager中。然后就可以使用了。整个过程对于开发人员而言是愉快的,没有长时间的学习周期,Plugin的开发是使用PaaS Manager提供的API完成,开发完成后是一个OSGi的bundle,OSGi平台具备稳定,跨平台,发布/订阅事件模式的框架,成为了Plugin的理想承担者,而其余的工作量都是脚本模式。

3 结束语

以应用程序为中心保证了既有的系统皆可将其应用程序抽象成模式,而后迁移到云内,开发人员真正的从备份,拷贝,安装,配置的枷锁中解脱出来。其带来了云计算的新鲜的空气将惠及台前及幕后的IT工作者。作为一个IT开发人员,必须以产品功能越多,生产力越能得到提升为基准点来做研究。基于应用程序模式的PaaS环境,很适合“一切都可以云端”的共同理想。

参考文献:

[1] 朱近之.智慧的云计算.电子工业出版社.2010.3 : 77-80.

[2]Greg Boss,Padma Malladi. IBM 云计算白皮书.

[3] Micheal Armbrust,Armando Fox.Above the Clouds -A Berkeley View of Cloud Computing.[2009-8]

[4]谢浩,高济.基于NGPD的PaaS云计算平台实现.[2011.5]

[5] IBM PureApplication System manages the complete life cycle of your virtual application.

[7] Borja Sotomayor,Ian Foster.Virtual Infrastructure Management in Private and Hybrid Clouds.[2009]

posted on 2012-07-25 08:12 cpegtop 阅读(351) 评论(0)  编辑  收藏

java 私有云_[原创]私有云中实现以应用程序为中心的PaaS相关推荐

  1. python 私有云_构建私有云伴随着哪些需求?

    有些人认为私有云只是已经在本地实施的虚拟化的一种扩展,但实际上它不仅仅是一种扩展.实施私有云有助于打破数据中心的孤岛,实现快速增长.对于以安全为中心的初创企业来说,这听起来不错,不是吗?不幸的是,它也 ...

  2. python 私有云_利用Docker+NextCloud搭建私有云盘

    利用Docker+NextCloud搭建私有云盘 NextCloud 是一款开源网络硬盘系统,最新版本是15,NextCloud 源代码完全开放,你可以在开源许可协议的约束下免费使用,对于需要专业支持 ...

  3. 闲置硬盘自制nas私有云_闲置U盘不用扔,教你一招变云盘,随时随地备份数据、访问私有云...

    互联网时代,云盘成了一个让人又爱又恨的东西.爱它是因为我们可以远程访问数据,再也不需要把数据资源随时随地背在身上:恨它是因为不开会员的下载速度真的是太慢了,而且还经常和谐资源. 之前看一些博主测评,蒲 ...

  4. 闲置硬盘自制nas私有云_变废为宝!将闲置硬盘打造成你的私有云

    前段时间,对家里的老爷台式电脑进行升级,换上了SSD,淘汰下来一块320G的机械硬盘.正逢360云盘风波,虽说小编资料都在百度云上放着,但以后说不定哪天百度云也起云涌,考虑到自己资料的安全性,决定利用 ...

  5. python 私有云_用 NextCloud 搭建个人私有云

    最近更新:2nd 6月, 2017 背景交代 之前给大家写了一篇 用 ownCloud 搭建个人私有云 的文章,直到现在网盘纷纷停止服务已经有一段时间了,现在 ownCloud 的团队也弃坑了,全都跳 ...

  6. 【私有云】话说云计算的3种服务模式:IaaS,SaaS和PaaS | 燕麦企业云盘(OATOS)

    云计算发展至今,已衍生出三种服务模式:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS).云计算有4种部署方式:公有云.私有云.社区云和混合云.燕麦企业云盘(OATOS企业网盘 ...

  7. 云手机服务器系统,云手机主板 私有云手机系统 私有云手机平台 云手机服务器...

    SPECIFICATION FOR MT6771 Customer : Product model: Z750 Module Customer model: Version Designed by C ...

  8. 学校私有云盘(私有云存储)解决方案!

    随着信息技术的快速发展,给我们日常生活.办公方式和业务流程带来了巨大改变,大量数据信息被创建,各种各样的数据文件散布在每个人的多种设备.不同的网络环境中,如何有效的管理这些零散的大数据,给学校带来了很 ...

  9. 私有方法与静态私有方法_每个私有静态方法都是新类的候选人

    私有方法与静态私有方法 您是否有私有的静态方法来帮助您将算法分解为更小的部分? 我做. 每当我编写一个新方法时,我就会意识到它可以是一个新类. 当然,我不会从所有课程中选修课程,但这必须是目标. 私有 ...

  10. mysql 部署在私有云_教你在 RHEL 7 中部署私有云网盘

    OwnCloud 一款文件主机服务软件,就是我们平时使用的云存储,不过这是在自己主机的服务器上建立属于自己的私有云,OwnCloud 使用AGPLv3协议发布.本项目是基于PHP和SQLite,MyS ...

最新文章

  1. 分享2020 几个好用的ip地址归属地查询
  2. centos6.6 Kickstart无人值守安装(一):原理篇
  3. 创建安全 Windows CE 设备(转)
  4. js和css被屏蔽了,拦截器 Filter ,js、css、image等静态资源不被拦截解决方案
  5. 在HTML文件中加载js
  6. 给大一师弟师妹的一些建议
  7. 鼠标划过图片进行缩放效果
  8. 深入解剖 linux内存管理之mmap
  9. 20169217 《Linux内核原理与分析》 第十周作业
  10. 双人五子棋(C++游戏)游戏代码在最底下
  11. SQL 笛卡尔积 学习与理解
  12. WIN7专业版纯净下载:
  13. BBED处理RMAN-03009,ORA-1956
  14. sinc函数卷积_从采样点到声音:sinc函数和卷积
  15. NLP-D38-nlp比赛D7-pytorch踩坑继续刷题
  16. matlab实现降低图片的分辨率
  17. 【SHELL】shell脚本入门
  18. Linux-fsck.ext4
  19. arduino/mixly 使用HT16K33 16*8点阵
  20. YouTube-8M

热门文章

  1. linux系统双显示器怎么设置复制,在 Linux 中配置双显示器
  2. C#版OPCClient代码总结
  3. linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001
  4. 使用js制作完整轮播图 (解决最后一张切换到前面一张的动画问题)
  5. 原创玄幻小说--那时花开--第一章前序
  6. ORACLE SQL 优化的若干方法(详细)
  7. Flowable 流程实例
  8. FPGA小技巧 - 缩减运算符
  9. 2021年安全生产模拟考试(建筑起重信号司索工模拟考试题库)安考星
  10. 在线问诊第一平台微医引入智齿 构建智慧客服体系