InfoQ于4月23日在北京组织了主题为“企业架构在互联网环境下的挑战”的Oracle技术沙龙。“云计算与SOA有什么区别?”这是Oracle讲师做完企业私有云PaaS解决方案的讲演后,提问环节中观众提出的第一个问题。回答这样的问题是颇具挑战性的,不同背景的人会有不同的理解,也不是一两句话能够解释清楚的。我个人的职业经历正好和SOA、云计算有很大的关系,因此希望和大家分享下我个人对这两者及企业软件领域的一些看法和理解。
过热(Hype)中的云计算
云计算起源于大型互联网企业,成本和指数级的业务增长压力使他们非常关注于IT资源的利用率和应用的可扩展性。云计算动态的、可伸缩的、基于互联网的IT服务交付模式很快产生共鸣,得到政府、企业和IT软硬件厂商等的一致认同。大家一致认为云计算将是继PC革命、互联网革命之后的第三次IT革命。
然而,在Gartner 2010 Hype Cycle(下图)上,云计算位于炒作期的顶峰,而SOA早在2009年就已经位于成熟期,更不在2010的图上。对于SOA来说,人们已经不再谈SOA是什么、能做什么、怎么落地,而是谈论SOA的最佳实践。对于经历过SOA潮流的人来说,应该会有非常深的体会。
图片来源:Gartner 2010 Hype Cycle (如果看不懂Hype Cycle这个图,请看这篇文章)
面向企业的云计算解决方案,特别面向企业的私有云PaaS产品和解决方案,仍处于创新(研发)和市场整固阶段,离进入主流应用阶段仍有相当的距离。Oracle的现有私有云PaaS解决方案本质上是对已有产品如Fusion中间件及Oracle数据库等的重新包装,宣传和抢占市场的意义更大一些。这一套东西同样也是构成Oracle SOA解决方案的根基。这就不难理解为什么人们听完讲演后会提出“Oracle的云计算和SOA有什么区别?”这样的问题。
如果想更深入理解SOA和云计算的区别和共同点的话,需要深入分析企业IT问题的根源,以及SOA和云计算所要去解决的问题和所能带来的价值。
企业IT架构面临的核心问题
企业软件和互联网有很多差异,本质的区别在于企业必须直面其“遗留系统(Legacy Apps)”,企业必须保证其核心应用系统的稳定,导致其核心应用系统的生命周期会很长。所以,企业面临的核心问题如何解决长期以来形成的“烟囱式(Silo)的企业计算环境”,如下图所示:
烟囱式的企业计算环境和IT建设存在如下问题:
- 不同的应用系统拥有不同的基础设施(硬件)和应用基础设施(中间件);
- 每个新应用都要建设一个新“烟囱”,建设周期长;
- 基于峰值规模设计,系统资源利用率低;
- 扩展困难;
- 没有统一的技术标准,运维成本高;
在云计算概念普及之前,企业已经在尝试解决这个问题,解决的思路是:
- 在基础设施层:虚拟化。利用虚拟化的基础设施提高物理资源的利用率和供给速度。
- 在应用基础设施层:SOA化。
- 在应用层:集中化。比如原来是一个地市分公司建设一套OA系统,后来是整个省公司只建设一套OA系统;原来结算在每个省公司进行,后来全部集中在集团处理。
我们来分析一下SOA化。SOA之前,企业应用集成的方式是EAI,但是由于EAI缺乏统一的标准,集成完后又产生了新的孤岛。我们来看看围绕SOA的一些关键字,就不难看出SOA与传统EAI的区别,这些关键字是SOAP、Web Service、服务、互操作、重用、ESB、服务编排、BPM、复合应用、业务敏捷等。因此SOA的目标是使IT基础架构更加灵活并且可重用,以最终实现业务敏捷性。
我们再看看围绕云计算的一些关键字,这些关键字是多租户、共享的资源池、弹性、动态伸缩、自服务、按需使用、基于Internet、快速供应、IT资源利用率等。企业利用云计算进一步地去解决它所面临的核心问题,但主要目标是提升IT资源的利用率、降低IT成本,促进企业IT建设从粗旷型方式到集约型方式的转变。云计算出现后,企业解决烟囱式问题的思路是:
- 在基础设施层:从虚拟化进一步扩展到IaaS。相比于虚拟化,IaaS增加了共享的资源池、自服务及统一的管理、监控和计量。
- 在应用基础设施层:基于SOA架构风格上逐步将应用迁移到PaaS平台上。从技术上讲,SOA的核心Building Block如ESB、BPM中间件是位于应用基础设施这层,因此SOA与PaaS之间的对比或许更加合理。下面会对这两者之间的关系进行分析。
- 在应用层:企业会考虑更多地直接使用一些SaaS应用。
PaaS就是云环境中的应用基础设施,也就是中间件,因此PaaS也可以说是中间件即服务,Middleware as a service。中间件的类型非常多,事务型中间件、消息中间件、远程过程/对象调用中间件、应用服务器、数据库服务器、ESB、BPM等等。在传统On-premise部署方式下用到的中间件在云部署下也是要用到的。Gartner把PaaS分成两类,APaaS(application platform as a service)和IPaaS(integration platform as a service)。APaaS主要为应用提供运行环境和数据存储,能够将On-premise下部署的简单三层架构的应用直接部署到APaaS;IPaaS主要用于集成和构建复合应用。
鉴于企业现有IT的复杂性及目前PaaS平台的能力,是不可能将所有On-premise方式部署的应用一次性部署到云端的,因此On-premise、私有云、公有云将在很长时间内共存。在这种情况下,SOA架构风格能够非常好的支持On-premise、私有云、公有云的共存,如下图所示:
企业IT架构的演进
本文并不想直接去回答云计算、PaaS和SOA的关系和区别。我想用下面的这面这张企业架构演进图来作为这篇文章的总结,希望以此来给大家的一些启发,使得大家等够更多地从技术演进的历史来理解新事物。
从图中我们可以清楚看到企业架构在大型机时代、客户机-服务器时代、互联网时代和云计算时代的演进过程,以及每次演进的业务驱动力和技术驱动力。
从大型机时代物理上的集中,到云计算时代云端的集中,似乎是一个轮回……
关于作者
阮志敏,企业级PaaS平台CloudTao创始人,长期专注于企业软件领域,同时深受互联网技术影响,曾在CORDYS中国,摩托罗拉和惠普中国任职。他的个人博客是:http://www.cloudtao.org/external/blog/taoofcloud;新浪微博是:http://weibo.com/taoofcloud。
相关推荐
基于云计算与SOA框架的高校招生信息管理系统.pdf
本书堪称云计算与SOA融合之经典著作。书中介绍了企业架构中存在的问题,云计算的价值、优缺点和适用场景;解释了向云计算转型的技术细节、支撑技术和最佳实践方法;帮助你客观评估自己企业中云计算和SOA的可行目标,...
基于云计算与SOA的高校数据交换平台建设.pdf
云计算和SOA.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
基于研究软件系统架构的发展方向的目的,通过从各方面对云计算与SOA 这两种架构的分析,比较了两种 架构的架构模型、应用场景等特点,对两种架构在已有应用中的交叉与结合进行了总结,推翻了业界对于云计算即 ...
SOA环境下的云计算创新
基于SOA的云计算框架研究.pdf
SOA与云计算_竞争还是融合,详细介绍了SOA,web service、ESB企业服务总线技术,对企业应用集成进行了详细介绍。
基于SOA的云计算框架模型的研究与实现,SOA与云计算的特性以及融合的模式
NULL 博文链接:https://chipmat.iteye.com/blog/1164247
基于SOA架构与云计算技术的ERP系统设计方案.doc
基于SOA架构与云计算技术的ERP系统设计方案.docx
基于SOA的云计算体系研究
基于SOA的云计算流域模拟模型集成架构的研究.pdf
基于SOA的云计算体系研究.pdf 基于SOA的云计算体系研究.pdf基于SOA的云计算体系研究.pdf
云计算与SOA融合 Cloud Computing and SOA Convergence in Your Enterprise Cloud Computing and SOA Convergence in Your Enterprise
基于SOA与云计算的数字化校园研究与实现.pdf
第一章:大数据与云计算 1.何为大数据? 海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。 2.大数据具有4V+1C的特征 (1)数据量大:存储...
基于SOA架构与云计算技术的ERP系统设计方案与对策.doc