趙貴根
“云計(jì)算”熱正席卷全球。作為一種按需交付服務(wù)的商業(yè)模式,云計(jì)算為企業(yè)提供了一種快速部署和應(yīng)用IT技術(shù)的方法。不過,云計(jì)算也給IT人員帶來了不小的麻煩。他們很長時(shí)間以來一直致力于SOA的治理行動(dòng),多年來對(duì)Web服務(wù)環(huán)境實(shí)施生命周期管理的IT人員剛剛看到一點(diǎn)成績,而如今需要對(duì)這些策略進(jìn)行修改,以應(yīng)對(duì)部署得越來越多的基于云計(jì)算的服務(wù)。因?yàn)榛谠朴?jì)算的服務(wù)很可能根本不在他們的控制范圍之內(nèi)。
從某種程度上,云計(jì)算對(duì)SOA治理來說是好事情。因?yàn)樵朴?jì)算的存在使得治理變得非常關(guān)鍵。
從理論上講,云幾乎具有交付一切服務(wù)的能力,從應(yīng)用到中間件、到應(yīng)用平臺(tái),從存儲(chǔ)、到流程處理再到硬件資源,都可以采用訂閱的方式按需交付。然而,在云計(jì)算的世界里,IT人員如何才能進(jìn)行有效的管理呢?
云之所以引發(fā)了人們對(duì)治理的關(guān)心,是因?yàn)樵谱屛覀儼研湃蔚倪吔鐝钠髽I(yè)內(nèi)部擴(kuò)展到企業(yè)以外。這一變化引發(fā)了一個(gè)新的問題,那就是把云服務(wù)與企業(yè)內(nèi)部的應(yīng)用整合起來是一個(gè)巨大的難題。
換句話說,云讓SOA治理復(fù)雜化了,如果沒有有效的治理,任何人、任何時(shí)候,只要他愿意都可以部署一個(gè)新的云服務(wù),他也能調(diào)用這個(gè)服務(wù),或者能把這個(gè)服務(wù)集成到日趨復(fù)雜的消息系統(tǒng)中。
在缺少治理的環(huán)境中,相似的云服務(wù)的規(guī)劃和優(yōu)化將變得異常困難。另外,隨隨便便就部署的那些云服務(wù)也可能破壞業(yè)已建立的信任關(guān)系,這種信任關(guān)系是生產(chǎn)性BOA環(huán)境的基礎(chǔ)。
簡單來說,云服務(wù)可能繞過最有效的關(guān)于服務(wù)治理的實(shí)踐規(guī)范。由于很多IT功能甚至所有IT功能都沒有經(jīng)過IT部門而被外包出去,IT部門就很難依據(jù)之前建立的策略來規(guī)范這些云服務(wù),包括服務(wù)的組合、集成、安全、管理等實(shí)際上都脫離了IT人員的監(jiān)管。
更進(jìn)一步說,云服務(wù)與企業(yè)核心SOA環(huán)境存在本質(zhì)上的區(qū)別,IT人員往往并不知道哪些最佳治理實(shí)踐(如果有的話)適合新的環(huán)境。而且在大多數(shù)公共云或者私有云環(huán)境中,也缺乏企業(yè)以前部署的用以支持Web服務(wù)的很多組件,比如服務(wù)注冊(cè)、服務(wù)級(jí)別管理代理和控制臺(tái)。
云環(huán)境是無記錄、無支持以及非標(biāo)準(zhǔn)化服務(wù)的溫床。只要設(shè)想一下,無需IT部門的批準(zhǔn),使用者就可以訪問外部提供的云服務(wù),這一點(diǎn)就不言自明。
另外,外包的云服務(wù)很有可能根本就不符合各種Web標(biāo)準(zhǔn),如XML、SOAP、WSDL、UDDI等,而企業(yè)內(nèi)部的SOA環(huán)境都是基于這些標(biāo)準(zhǔn)建立的。
隨意使用的公共云服務(wù)可能導(dǎo)致對(duì)現(xiàn)有IT環(huán)境的破壞,更為嚴(yán)重的是它還可能阻礙IT部門對(duì)這些不足進(jìn)行修正。一旦這些不邀自來的客人在企業(yè)的日常運(yùn)營中站穩(wěn)腳跟,IT部門會(huì)發(fā)現(xiàn)自己陷入了無休無止的監(jiān)控,以及強(qiáng)迫它們符合服務(wù)的設(shè)計(jì)、維護(hù)、安全以及版本等各種最佳實(shí)踐。
云計(jì)算的另一個(gè)問題是人們對(duì)云計(jì)算的陌生。也許隨著云計(jì)算的日益普及、并最終成為主流,這一擔(dān)心會(huì)煙消云散,但是畢竟還需要一段時(shí)間。
就企業(yè)部署云服務(wù)來說,最好的方法是有選擇性地外包一些特定的應(yīng)用和基礎(chǔ)設(shè)施服務(wù),而不是不分青紅皂白盲目跟風(fēng)。因此,在云和SOA治理方面的首要決策是決定哪些服務(wù)應(yīng)由哪個(gè)公共云來提供,從而避免企業(yè)內(nèi)部不必要的重復(fù)。
復(fù)雜
在眾多有關(guān)云服務(wù)的宣傳中,盡管我們很難看到關(guān)于在云服務(wù)環(huán)境中進(jìn)行SOA治理的案例報(bào)道,但是,大多數(shù)公共云服務(wù)供應(yīng)商還是為管理應(yīng)用、虛擬機(jī)以及部署在它們自己環(huán)境中的服務(wù)級(jí)別等提供了治理工具。
如今,能提供對(duì)運(yùn)行于各種各樣公共云與私有云上的服務(wù)進(jìn)行管理的工具的供應(yīng)商也是越來越多。但是,目前云計(jì)算環(huán)境尚不太成熟,所以過去這些SOA治理工具供應(yīng)商現(xiàn)在還無法提供有效的工具,來管理基于云的應(yīng)用、交易、消息傳送和服務(wù)級(jí)別。
而且,即使云服務(wù)真的成為主流,這些服務(wù)也從一開始就是按照SOA的治理規(guī)范創(chuàng)建的,在管理它們時(shí)仍然面臨很多挑戰(zhàn)。這些困難源于云計(jì)算這一新模式本身的特點(diǎn):基于專有技術(shù)的公共云、虛擬資源池以及通過Mashup組合服務(wù)等。
全面的SOA治理要求用統(tǒng)一的策略來管理所有的應(yīng)用、平臺(tái)、網(wǎng)絡(luò)域(在一個(gè)稍微復(fù)雜一些的企業(yè)網(wǎng)絡(luò)環(huán)境下,這一點(diǎn)就非常困難),或者在各個(gè)自治域之間按照一定的規(guī)范建立聯(lián)盟(或者聯(lián)邦)。
管理企業(yè)內(nèi)部或者B2B供應(yīng)鏈的SOA聯(lián)邦是非常復(fù)雜的,因?yàn)樾枰褍?nèi)部的應(yīng)用域與一個(gè)或者多個(gè)外包商(如亞馬遜、Google、微軟、Salesforce.com等)提供的公共云服務(wù)聯(lián)系起來,形成一個(gè)整體。要想達(dá)成目的,你需要有贏得諾貝爾和平獎(jiǎng)的談判技巧。
操作性
隨著云計(jì)算市場(chǎng)解決了各種各樣的聯(lián)邦問題,接下來,服務(wù)供應(yīng)商和企業(yè)用戶就可以訂立多層次的協(xié)議,包括身份管理、服務(wù)級(jí)別管理、存儲(chǔ)管理以及其他值得關(guān)注的核心問題。
而現(xiàn)在,在企業(yè)SOA環(huán)境與公共云服務(wù)之間幾乎沒有任何統(tǒng)一的策略,因而那些選擇公共云服務(wù)的企業(yè)面臨巨大的風(fēng)險(xiǎn)。
如果企業(yè)之前沒有和這些公共云提供商達(dá)成任何關(guān)于云服務(wù)的穩(wěn)定性和可用性的協(xié)議,就基于這些供應(yīng)商提供的公共云服務(wù)來構(gòu)建自己的業(yè)務(wù)系統(tǒng),將給業(yè)務(wù)帶來風(fēng)險(xiǎn)。因?yàn)榧词惯@些公共云服務(wù)保持接口不變,其具體行為仍然可能發(fā)生變化,而用戶也許根本就不知道。
SOA有一個(gè)最基本的原則,即分布式應(yīng)用環(huán)境必須與平臺(tái)無關(guān),SOA治理的基礎(chǔ)設(shè)施也要遵循這一原則。比如,在純SOA環(huán)境中,外部的API應(yīng)該與具體實(shí)現(xiàn)它的平臺(tái)無關(guān)。
然而,率先體驗(yàn)云計(jì)算的企業(yè)常常違背這一基本原則,它們把自己的應(yīng)用建立在一些公共云服務(wù)上,而很多服務(wù)采用的恰恰是專有的API、專有的開發(fā)工具、特殊的虛擬層和特殊的治理策略,雖然很多云服務(wù)為符合開放的SOA和Web 2.0標(biāo)準(zhǔn)已經(jīng)做了一定程度的修改,但并不徹底。
復(fù)雜性
大多數(shù)的SOA治理僅僅關(guān)注了企業(yè)IT環(huán)境的表面,比如僅僅管理了一部分運(yùn)行在應(yīng)用層的服務(wù)以及那些符合XML、SOAP、WSDL以及核心SOA規(guī)范的Web服務(wù)。而實(shí)際上,很多公共的云服務(wù)還提供更深層的按需服務(wù),從應(yīng)用層到軟件開發(fā)平臺(tái)、集成中間件再到硬件層。比如,虛擬的、基于網(wǎng)格的“硬件資源作為服務(wù)”的資源池就是一種非常受歡迎的云服務(wù),能提供非常大的處理能力和存儲(chǔ)空間。
由于上述原因,隨著云服務(wù)形式和種類的日益豐富,對(duì)云計(jì)算環(huán)境進(jìn)行治理已經(jīng)超過了目前SOA治理工具的能力范圍,云計(jì)算環(huán)境使得對(duì)所有的服務(wù)進(jìn)行統(tǒng)一的規(guī)劃、實(shí)際、提供、監(jiān)控和控制的想法幾乎成為不可能。
事實(shí)上,有一功能被證明是進(jìn)行云治理的殺手級(jí)應(yīng)用,這就是阻止未經(jīng)允許的虛擬機(jī)在公共或私有的虛擬基礎(chǔ)設(shè)施上運(yùn)行。這一問題有時(shí)被稱為是“虛擬機(jī)蔓延”,虛擬機(jī)蔓延不僅帶來了維護(hù)上的麻煩,而且還會(huì)消耗CPU、存儲(chǔ)和網(wǎng)絡(luò)資源。
越來越多的商業(yè)性的管理工具提供了控制虛擬機(jī)蔓延的功能,而且不受限于一個(gè)具體虛擬化平臺(tái)。同時(shí),虛擬化平臺(tái)的供應(yīng)商,如VMware、Citrix、微軟和一些公共云服務(wù)供應(yīng)商也把這一功能作為它們的管理工具的主要賣點(diǎn)。有時(shí)候,這一功能被稱為“實(shí)例管理”,是傳統(tǒng)的SOA治理工具所不具備的。