BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

阮志敏谈云计算与SOA

| 作者 阮志敏 发布于 2011年4月29日. 估计阅读时间: 不到一分钟 | 智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?CNUTCon即将为你揭秘!

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建设存在如下问题:

  1. 不同的应用系统拥有不同的基础设施(硬件)和应用基础设施(中间件);
  2. 每个新应用都要建设一个新“烟囱”,建设周期长;
  3. 基于峰值规模设计,系统资源利用率低;
  4. 扩展困难;
  5. 没有统一的技术标准,运维成本高;

在云计算概念普及之前,企业已经在尝试解决这个问题,解决的思路是:

  1. 在基础设施层:虚拟化。利用虚拟化的基础设施提高物理资源的利用率和供给速度。
  2. 在应用基础设施层:SOA化。
  3. 在应用层:集中化。比如原来是一个地市分公司建设一套OA系统,后来是整个省公司只建设一套OA系统;原来结算在每个省公司进行,后来全部集中在集团处理。

我们来分析一下SOA化。SOA之前,企业应用集成的方式是EAI,但是由于EAI缺乏统一的标准,集成完后又产生了新的孤岛。我们来看看围绕SOA的一些关键字,就不难看出SOA与传统EAI的区别,这些关键字是SOAP、Web Service、服务、互操作、重用、ESB、服务编排、BPM、复合应用、业务敏捷等。因此SOA的目标是使IT基础架构更加灵活并且可重用,以最终实现业务敏捷性。

我们再看看围绕云计算的一些关键字,这些关键字是多租户、共享的资源池、弹性、动态伸缩、自服务、按需使用、基于Internet、快速供应、IT资源利用率等。企业利用云计算进一步地去解决它所面临的核心问题,但主要目标是提升IT资源的利用率、降低IT成本,促进企业IT建设从粗旷型方式到集约型方式的转变。云计算出现后,企业解决烟囱式问题的思路是:

  1. 在基础设施层:从虚拟化进一步扩展到IaaS。相比于虚拟化,IaaS增加了共享的资源池、自服务及统一的管理、监控和计量。
  2. 在应用基础设施层:基于SOA架构风格上逐步将应用迁移到PaaS平台上。从技术上讲,SOA的核心Building Block如ESB、BPM中间件是位于应用基础设施这层,因此SOA与PaaS之间的对比或许更加合理。下面会对这两者之间的关系进行分析。
  3. 在应用层:企业会考虑更多地直接使用一些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


感谢张凯峰对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

独到的见解! by liu sunny

感谢作者的贡献!

哈哈 by 李 志然

了解一下

SOA与PaaS是相辅相成的 by 宋 辉

作为一套架构理念和方法论,SOA帮助企业实现了IT服务的高内聚和低耦合; 在刚刚进入云计算的时代, 如作者所言, 大部分企业即使采纳了云方案, 也不可能抛弃原来的IT设施与应用, 正好可以借助于SOA的方法, 将本地原生应用, 私有云和公有云中的应用"粘合"起来,形成灵活的混合云方案。理想情况下,资源还可以在这三者之间迁移,从而应对不同时期的负载,或者进行故障恢复。

Re: SOA与PaaS是相辅相成的 by 阮 志敏

同意你的观点。

SOA和云计算试图解决的问题是不同的 by 冯 希顺

SOA和云计算试图解决的问题是不同的:SOA试图解决的问题是架构设计问题(包括业务和技术),云计算试图解决的是成本问题。当然,随着云计算的发展,已经开始影响架构设计了。另外,经常看到有人用Gartner的预测来证明问题,这个有点过了,预测用来参考一下就行了,不能奉为圭臬。

Re: SOA和云计算试图解决的问题是不同的 by 柴 爱军

确如上位所说,若从IaaS的基础设施云化角度看,云计算确实首要想解决的问题是不降低性能的同时如何降低成本。但从PaaS、SaaS开始,已不仅仅关注成本,弹性等特性,未来必将形成主流的自有架构,只是现在的发展还未清晰明朗,也是大有作为的领域。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

6 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT