|
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。
it知識庫:云計算與SOA之我見,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。