04月24日的CSDN在线培训中, 用友软件PaaS混合云负责人白小勇(@quickbundle),带来了课程“ PaaS平台在企业IT中的应用”,就企业在对各种主流PaaS架构、PaaS与业务如何结合、如何实施PaaS等问题进行了探讨。
为了帮助大家更好的复习和总结此次培训中学到的技术点,让各位学员更快的掌握相关技术要点,少走弯路,CSDN整理了本次培训最后的QA如下:
Q:AWS提供的数据库服务RDS,或是大数据服务EMR等,这些服务算是PaaS吗?
这属于一个概念问题,谁有IaaS和PaaS的概念定义权和解释权,谁就是权威的。但是很可惜,在这个问题上,我没发现这么一个能获得大部分用户支持的权威组织。
而在我国工信部电信研究院标准所发起的中国数据中心联盟第一次全体大会上(2014年3月11日,三亚),对可信云的若干划分中把云数据库(RDS)归到IaaS服务中,而不是PaaS服务。
但从我个人的理解上,我更倾向把RDS和EMR服务划到PaaS,同时这也能代表一部分PaaS服务商的观点。
Q:aPaaS 和 iPaaS区别大吗?
这两个概念是被Gartner于2011年提出来的。从Gartner摘选定义如下:
Application platform as a service (aPaaS) is a cloud service that offers development and deployment environments for application services.【我的理解:aPaaS侧重于为应用提供开发和部署环境,例如Pivotal的Cloud Foundry产品 http://cloudfoundry.org/】
Integration Platform as a Service (iPaaS) is a suite of cloud services enabling development, execution and governance of integration flows connecting any combination of on premises and cloud-based processes, services, applications and data within individual or across multiple organizations.【我的理解:iPaaS侧重于把流程、服务、应用、数据等各种资源整合起来,以更好地开发、运营、IT治理,例如Dell的Boomi产品 http://www.boomi.com/】
从Gartner的定义来看,这两种PaaS的问题域是不同的,aPaaS侧重技术栈的垂直整合,而iPaaS侧重技术栈的水平整合。但从当前的发展趋势来看,我个人认为二者有加速融合的趋势。
Q:想构建高可用的大型网站是不是用PaaS架构更好呢?
高可用、高性能的大型网站应用,关键是应用本身的去中心化、scale up、scale out等设计,这三个特性并非PaaS提供给应用的。但如果应用有了这样的设计,现在的主流PaaS产品能给应用提供一个更好的承载平台(相对传统中间件来说),例如PaaS的快速实例弹性扩展、应用健康监控及恢复等特性。因此也可以说构建一个高可用网站,选择PaaS架构是更好的选择。
Q:PaaS发展不如IaaS和SaaS,您怎么看?
SaaS从上世纪90年代末的ASP(Application Service Provider)演化而来,已经发展了十几年,而且SaaS商业模式和市场发展最为成熟,针对不同行业的SaaS都有形成收入规模的服务商。
IaaS要解决的问题是计算资源能力标准化(计算、存储、网络,面向企业IT部门传统采购硬件和基础设施集成的优化),人们对IaaS领域的诉求也相对清晰,同时一套IaaS产品一般能满足多数的行业的计算能力标准化需求。
而PaaS要解决的问题是应用生命周期的标准化(开发、运维、集成,面向企业IT部门更广的问题域做优化),PaaS的发展特点如下:
- PaaS起步晚于SaaS和IaaS;
- PaaS要解决应用生命周期这一层问题,需要等待用户自身已经发生质变,并且用户已经试图去优化DevOps和Integration了,那么PaaS能为此类用户提供一个很好的平台;而在国内,很多企业IT的的应用生命周期管理还停留在早期阶段,其开发运维体系有待进化到一定程度,才有上PaaS的需要。
- 从IaaS=>PaaS=>SaaS,越往上行业性越强。而在PaaS这一层行业差异性需求已经暴露出来,因此一套标准PaaS产品难以像IaaS一样各行业通用,也为PaaS推广增加了难度。
- PaaS还有一种用法是作为资源切分更细、响应更敏捷、成本更低廉的PaaS公有云,但目前这个细分市场的用户接受度如何,还有待于我们用时间验证。
Q:IaaS、PaaS、企业SaaS三者之间界限正趋于模糊,将来会不会统一?
这三层之间的技术栈相互渗透一直在发生,尤其是IaaS和PaaS的边界很难严格界定了。但绝对意义上的统一,我认为不会出现,因为技术发展的方向还是专业化分工、解耦,同时产业链格局一旦形成后也是一个壁垒。
Q:如果PaaS与IaaS有结合的必要,那与DaaS和FWaaS的结合呢?是相对分离呢?还是相互穿插呢?
DaaS是Database as a Service?FWaaS是FireWall as a Service?
DaaS为应用提供标准化的数据库能力,而FWaaS给应用和数据看家护院,二者既相对分离,又相互关联(或相互穿插)。
Q:PaaS最关键的作用是什么?现在有哪些企业在用?
这个问题仁者见仁,智者见智。我个人认为:PaaS最关键的作用是解决应用全生命周期的各种问题(开发、测试、集成、部署、运维),使用户更快捷、更省钱、更好。【下图是一张通用的、PaaS可能的作用领域】。国内外不乏各大互联网公司、行业用户的案例。
Q:您感觉国内企业对建立私有PaaS的接受程度如何?推广上有什么阻力?
国内企业对建立私有云PaaS的接受程度,取决于国内企业在内部应用生命周期的发展阶段,暴露出来的痛点(比如应用开发的各种臃肿、迟钝、昂贵、不稳定)是否能被PaaS平台解决或缓解。而PaaS推广方面的阻力,来自于传统中间件和传统应用开发流程的思维惯性,需要我们深思如何用接地气的、能解决实际痛点的打法去打破传统思维惯性?
Q:很多企业的标准还是 webSphere/webLogic+Oracle/MSSQL,有支持这样环境的PaaS吗?
如果是以VM为颗粒度的PaaS(也有人叫Instance PaaS),一般都是支持各种商用中间件、数据库的。而以container为颗粒度的PaaS(也有人叫Framework PaaS),需要具体产品具体分析,一些商业PaaS产品宣称支持。
Q:我们在组织专家组决策技术方案选项时,推Cordys BOP4遇到了较大阻力,用户、周围开发人员还是停留在J2EE上,怎么面对这些人推进?
Business Operations Platform可以看作是Cordys的PaaS产品,在企业内部的推广BOP,我觉得还是针对企业的差异化情况、针对企业内部特定人员的差异化需求,找到其真正的痛点(例如流程的不统一)给出可行解决方案,并找对关系人(有影响力+有利害关系),因此这问题属于实施方法论领域,而非单纯的技术问题。
Q:从私有PaaS到公有PaaS,有哪些需要考虑?技术?用户?
私有PaaS,从技术上侧重考虑围绕应用的流程优化(或DevOps)、通过PaaS更好的整合各种服务、统筹调度以更高效的利用资源等,用户群体是内部各部门/各分支机构。
公有PaaS,从技术侧重考虑租户隔离、安全性、资源配额、服务能力开放、自助服务等,目前用户群侧重于中小企业或初创团队。
Q:PaaS是否集成了敏捷开发的产品开发流程管理?
PaaS是个壳,你可以往PaaS里集成各种敏捷开发的流程管理工具,并在此基础上形成适合自己企业的Dev和Ops体系。
有一些PaaS(例如CloudBees公有云)的特色功能就是开发云,已经内置了这方面的功能。
Q:PaaS能解决I/O瓶颈吗?
PaaS是一种管理软件,和应用的I/O瓶颈无直接关系。
Q:PaaS能与Hadoop集成吗?
Hadoop可以作为一种Service集成到PaaS中。
和传统手工维护的Hadoop相比,PaaS上的Hadoop实现了自动化管理,降低了集成和运维工作量。同时,如果Hadoop计算节点及其资源利用率,能被PaaS上的scheduling模块调度和优化,在特定的大规模计算集群场景下这种调度能节约资源。
Q:PaaS怎么集合多系统,更好地实现各系统这间的交互,实现单点登陆?
PaaS集成多系统,建议是面向服务的架构(可能用到json、restfull、消息队列)、松耦合的、可扩展的,需要针对特定案例具体设计优化,并无统一标准。
身份认证(或单点登录)可以从OAuth、OpenID、SMAL等选型。
Q:关于异构的问题,CF是如何解决的?
如果是Cloud Foundry上的异构应用组件之间的调用,CF在runtime期间让他们直接调用。也可以把ESB产品(例如开源的MuleESB)作为一种Service集成到CF平台中,通过ESB实现系统间调用。
CF对windows平台的异构支持,有第三方开源项目IronFoundry。
Q:CloudFoundry能独立安装各个模块吗?或离线下载build pack?
Cloud Foundry的各个组件可以独立安装,如果你能找到适用场景,也可以单独安装某个模块使用。
BuildPack是Heroku的开源项目,可以单独下载。同时BuildPack涉及到的第三方LIB、SDK等资源可以单独搭建内网私服,以避免被墙。
Q:高密度的Docker容器,针对运行容错,特别是一个容器宕机,会影响整个物理机上的其它容器。这个PaaS有什么好的解决方法?
Docker是个进程,进程崩溃影响到宿主机上的其他进程,这问题可能属于bug领域吧。PaaS是管理Docker这类容器的管理软件,从PaaS角度可以加强对容器的监控、故障快速恢复,以降低此类问题带来的故障损失。
Q:PaaS如何与Moonshot这类的高密度新型平台的结合?甚至有没有必要脱离X86平台或者多平台的结合?
Moonshot是指HP的新一代低功耗服务器,基于Atom/ARM?PaaS是个管理软件,被管理的对象可能是资源、过程、业务等。因此PaaS对所谓“高密度新型资源”的管理支持也是一个趋势。
Q:PaaS在什么行业领域应用比较广泛呢?在电信行业情况如何呢?
PaaS在各种公有云、垂直行业平台等领域,应用相对广泛。在中国三大运营商也有分别都有应用案例,例如中国移动的PaaS公有云、中国联通的大企业私有云项目等。
Q:PaaS是兼容多平台(.NET, Java, PHP等)的软件开发平台吗?
以vm作为颗粒度的PaaS完全兼容多平台,以container作为颗粒度的PaaS可以兼容多平台(要视具体产品而定),而以共享单进程的沙箱作为颗粒度的PaaS不一定兼容多平台(往往锁定语言)。下图是一个PaaS参考划分模型,纵轴就是技术栈粒度的划分:
Q:如果选择使用PaaS,用户将最重要的程序和数据毫无保留地托付给PaaS服务商,这就涉及安全的问题,PaaS目前有什么解决方案吗?
数据安全问题正是PaaS公有云市场推广的一个痛点,全同态加密目前距离商用还有很大距离,因此对密文检索目前业界尚无有效的完整解决方案。先从技术上探讨,在PaaS上降低用户数据泄露风险有三种方案:
- 应用流、云存储流的做法。新增数据流程:用户手握key+对数据在客户端AES加密=>metedata+数据密文传到服务端=>通过从metadata预提取重要关键词建立索引(例如title、算法分析后的热词)=>存储索引+二次加工后存储数据密文。 用户取数据流程是:key-value查询(或按重要关键词查询)=>返回数据密文=>用户手握master key+客户端AES解密。
- 密码流、安全理论流的做法。把AES这些重型的东西,扔到云上。通过类似三权分立机制解决可信:装正确算法的内存CPU + 关机后的TPM + 平台认证PKI。
- 传统安全工程界、或硬件加密机流的做法。部署专用的可以存大量的key硬件计算设备到后台(或所谓云端),通过加固安全边界的CPU来解决可信。
以“ 云计算大数据 推动智慧中国 ”为主题的 第六届中国云计算大会 将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。 需要购买的朋友,请抓住这最后的机会,点击报名!