作者:民工肖某
目前在Paas领域,Docker应该是最热门的一个话题,我试图做一篇简要的分析。由于笔者理解水平,很多要点可能只能做到点到为止。在开始正题之前,这第1篇文章,我想很多人需要有个Q&A来梳理下基本的概念:
- 什么是Paas,为什么它不如Iaas/Saas那么引人注意?
// Paas基本定义Platform as a Service (PaaS),细分的概念有aPaas(application)/iPaas(integration),详细来讲, aPaas是应用主导的垂直整合的技术栈,侧重应用开发及部署环境;而iPaas是技术栈的水平整合,侧重产品的全生命周期管理,开发、数据、服务、资产等,形成一体化的产品运营。
这样讲有点枯燥,看看Google/AWS的案例,Google的App engin(不好意思,我曾用这个账号来翻墙);AWS的WEB API,为各种开源平台所调用的开放能力;国内比如天翼的开放能力平台,也是类似开放出短信验证、应用计费、电话充值的能力。。简单说,API是典型的Paas能力,当然架构本身更是。
说到Iaas/Saas,大家的理解会更加深刻,Iaas做公有云、私有云的运营,标准化计算能力;Saas有很多的服务提供商,商业模式和市场已经很成熟了。但Paas比较受忽视的原因是,大家期待Paas能像Iaas一样形成通用的框架,但往往忽视了Paas向上对接的是各行业的流程,专业性的差异决定了Paas异构的需求,所以Paas是紧密配合IT服务的标准化过程的,当我们企业应用的ITIL越来越普遍时,Paas的作用也会越明显。 - Paas的关键作用是什么?业内有哪些Paas解决方案?
// Paas作为产品生命周期管理的规范,主要涉及了开发、集成、部署、运维等几块。目前国内对IT服务平台化要求,侧重在开发、集成方面,比如敏捷开发、集成开发、组件化等;部署、运维在国外更为普遍,比如devops在ASW。开发方面,LANMP架构得到web服务普遍的认可;同时对中间件集成也是集成管理的重要手段;而在自动化运维方面,更多的能力还只是停留在基础设施的虚拟化及弹性配置上,应用能力共享遇到了比较大的阻力;
业内目前在Paas上也分为商业、开源的两大派系;开源方面主要有cloud foundry(vmware),openshift(REH),stratos(WSO2),cloudify和docker。今天就会重点说说docker。 - Docker能干什么?它有什么优势,以后发展趋势如何?
// 前面说到了docker,它主要是用于 构建持续集成( CI )/ 持续部署环境( CD )、打包和批量发布程序,以及搭建独立的 PaaS平台等,它优势在于不依赖于任何语言、框架或系统,任意的应用(app),任意的编译资源(image),都可以在docker中反复迭代和混用;简而言之,Docker 搬运的是集装箱( Container ),集装箱里装的是任意类型的 App ,开发者通过 Docker 可以将 App 变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。
关于aPaaS和iPaaS还是有点晕。
提供API的都是aPaaS,比如App engine, AWS的WEB API;提供应用环境的都是iPaaS, 比如docker。我理解的对不对?
还有下面一大堆Paas如何划分aPaas和iPaas?
foundry(vmware),openshift(REH),stratos(WSO2),cloudify,websphere, weblogic, jboss, 等等,还有什么PaaS?
aPaas更多和application做绑定,基于编程语言、运行环境和通用服务的技术栈的容器,但iPaas强调的是产品的全生命周期管理,build-ship-run,基本靠框架来实现。
从云服务来看,Paas是产品开发方法论的新工具,只有企业开始引入软件的敏捷开发,业务的流程自治等,Paas才算是找到用武之地。
Paas选择的框架很多,上层应用接口很丰富,重点是企业找到了合适的治理方法,那所有的workflow就顺畅了。Paas跑在云上,是顺着workflow故事的下一集了,站在巨人的肩膀上,嘿嘿~