當(dāng)IT咨詢公司OpenCredo準(zhǔn)備在七個月內(nèi)為一家主要保險商推出三個新應(yīng)用程序時,它為自己設(shè)定了三個目標(biāo):縮短開發(fā)時間,,允許客戶頻繁變動,,以及建立一個能夠處理不可預(yù)知流量高峰的系統(tǒng)。
首席執(zhí)行官Russel Miles表示,,通過使用
Cloud Foundry開源框架以及其他開源軟件,,OpenCredo解決掉了“一些繁重的工作”,,例如配置虛擬機和調(diào)整存儲卷的大小。該開源框架可以讓開發(fā)人員在本地編寫代碼,,與客戶共享,,以及自動化集成、測試和應(yīng)用程序組件的部署等操作,。
除了上述優(yōu)勢外,,Cloud Foundry還可以更簡單的擴展應(yīng)用程序,而無需停機時間,。此外,,基于該框架與其他開源軟件的合作方式,新功能可以在幾分鐘內(nèi)添加,,而不需要幾小時,。
即使有這么多好處,像Cloud Foundry這樣的
開源云框架仍然處于演進過程中,。很多框架只能夠管理物理服務(wù)器或者單機應(yīng)用程序,,導(dǎo)致需要更先進功能的客戶不得不創(chuàng)建自己的框架。然而,,這些框架提供了很高的價值,它們能夠掩蓋
云計算設(shè)置的復(fù)雜性,,并且開源模式很具有吸引力,。
了解基礎(chǔ)知識
“框架”一次用來描述簡化云應(yīng)用程序的創(chuàng)建、部署和管理的任何事物,,包括從開發(fā)工具到中間件到數(shù)據(jù)庫服務(wù)等,。在服務(wù)器、存儲和網(wǎng)絡(luò)層面的是基礎(chǔ)設(shè)施即服務(wù)(
IaaS)框架,,而在較高水平應(yīng)用程序運行的是平臺即服務(wù)(
PaaS)框架,。
最流行的IaaS框架包括
OpenStack、Eucalyptus和Ubuntu云基礎(chǔ)設(shè)施,。Citrix近日宣布他們正在將之前專有的CloudStack IaaS平臺作為開源Apache項目的一部分,。Gartner分析師Lydia Leong表示這絕對是“大新聞”,因為與“不穩(wěn)定”和“漏洞百出”的OpenStack相比,,CloudStack更加穩(wěn)定,,且更適合生產(chǎn)過程。
主流PaaS框架包括Heroku,、Cloud Foundry(由VMware支持)以及Red Hat的OpenShift--- 基于Red Hat Enterprise Linux,,支持各種語言和中間件。
Opscode聯(lián)合創(chuàng)始人Jesse Robbins表示,,用戶經(jīng)常使用多種框架和相關(guān)工具,。例如使用OpenStack來配置服務(wù)器,,使用Opscode Chef創(chuàng)建“食譜”來描述服務(wù)器應(yīng)該如何進行配置。在線備份供應(yīng)商Backupify首席技術(shù)官Matt Conway表示,,平臺運行的“堆棧”越多,,用戶必須做的工作就越少,但是同時他們對基礎(chǔ)設(shè)施組件的控制也就越小,。
除了簡化云端應(yīng)用程序的創(chuàng)造,,大多數(shù)框架聲稱它們能夠幫助在公共云和私有云間更簡單地移動云部署以最低的成本獲得最好的服務(wù)。例如,,Eucalyptus提供一個Amazon EC2兼容的API,,能夠在Ubuntu Linux上運行,“這樣為EC2編寫的應(yīng)用程序就能夠移植到運行Eucalyptus的用戶自己的數(shù)據(jù)中心,,”Conway表示,,“Deltacloud是Red Hat發(fā)起的開源項目,旨在創(chuàng)建一個‘云API’將你的應(yīng)用程序從供應(yīng)商(例如亞馬遜)提取出來,,并且它會將你的請求發(fā)送到真正的亞馬遜API,。”
對于在線存儲供應(yīng)商CX公司而言,OpenStack提供了使用除亞馬遜外其他云供應(yīng)商的靈活性,,CX公司首席技術(shù)官Jan Vandenbos表示:“如果亞馬遜的服務(wù)變得過于昂貴或者不適合的話,,我們就可以選擇其他供應(yīng)商。”
Accenture公司高級系統(tǒng)和技術(shù)團隊高管Anthony Roby表示,,“框架”這個詞經(jīng)常被濫用,,Eucalyptus和OpenStack等產(chǎn)品“根本就不是框架”,而是“你可以擴展或者用來建立你自己的基礎(chǔ)設(shè)施云的產(chǎn)品”,。然而,,大多數(shù)觀察家將框架定義為用于為用戶創(chuàng)建基于云的服務(wù)的軟件構(gòu)建塊。
開源的作用
開源項目包括非營利性組織發(fā)起的“純粹的”與任何商業(yè)供應(yīng)商都無關(guān)的開源項目,,以及從領(lǐng)先供應(yīng)商獲得資金,、營銷和開發(fā)幫助的項目。
Canonical公司云業(yè)務(wù)主管Kyle McDonald表示,,為Ubuntu提供開源支持的Canonical開始吸引“財富50強以及各種中小企業(yè)和初創(chuàng)公司”對開源的興趣,。該公司大部分的OpenStack業(yè)務(wù)來自希望降低軟件成本的財富1000強企業(yè)。
PaaS框架供應(yīng)商WSO2公司副總裁Chris Haddad表示,,在過去五年中,,“人們對于開源的認識有著翻天覆地的變化。”隨著開源軟件質(zhì)量的提升,,以及來自大型供應(yīng)商的支持,,他表示,“大型企業(yè)并沒有將開源產(chǎn)品視為一種威脅,事實上,,由于經(jīng)濟的不確定性,,將你的公司交給另一家公司并不是一個很好的決定。”
Conway表示,,與滿足特定經(jīng)濟目的而開發(fā)應(yīng)用程序的企業(yè)開發(fā)人員不同,,開源貢獻者“編寫軟件是因為這是他們喜歡做的事情”。
雖然大部分開源產(chǎn)品的早期用戶(例如Chef)是向其他客戶出售服務(wù)的云供應(yīng)商,,Robbins表示,,他看到目前在銀行、大型媒體公司和其他正在建立自己私有云的企業(yè)中,,開源產(chǎn)品正在快速地普及開來,。
然而,大多數(shù)用戶尚未將關(guān)鍵應(yīng)用程序移動到云中,,因為他們并沒有提供適當(dāng)IT監(jiān)管和安全的工具,,Red Hat云業(yè)務(wù)部門產(chǎn)品管理和營銷高級主管Bryan Che表示,Red Hat的OpenShift將幫助滿足這些需要,,通過Hat Enterprise Linux內(nèi)已經(jīng)存在的安全機制,。
State Street解決安全問題的辦法是從不直接從網(wǎng)上獲取開源軟件,而只通過可信賴的合作伙伴來獲取開源軟件,,總架構(gòu)師Kevin Sullivan表示,,“我們可以獲得支持結(jié)構(gòu)以及軟件。”此外,,他表示,,該公司還會仔細檢查合同以確保遵守許可協(xié)議的條款,并且會掃描所有開源軟件以排除惡意代碼,。
Haddad表示,WSO2 Stratos已經(jīng)解決了這些需求,,他們使用的是不僅支持應(yīng)用程序開發(fā)和部署,,而且還支持集成、規(guī)則,、業(yè)務(wù)流程管理,、治理、復(fù)雜事件處理和身份管理的產(chǎn)品,。
值得懷疑的好處?
一些觀察家質(zhì)疑開源框架是否真的能夠提供他們聲稱的優(yōu)勢,,例如云供應(yīng)商間的可移植性。“Eucalyptus復(fù)制了一些亞馬遜API,,但是如果你使用的是亞馬遜中Eucalyptus不支持的功能,,你就沒辦法了,”Roby表示,,“同樣的,,如果你想運行Java應(yīng)用程序和使用Spring(應(yīng)用程序開發(fā))框架,,你將得到很多支持。”但是,,一旦客戶開始使用數(shù)據(jù)存儲等無法通過Spring訪問的功能,,這些功能將無法在不同供應(yīng)商中正常運行。如果無法移動基礎(chǔ)服務(wù)以及應(yīng)用程序代碼,,你根本無法獲得這種可移動性,。
對于開源,用戶(或者一組用戶)在理論上可以提取源代碼,,并根據(jù)自己的需求進行調(diào)整,。然而,很少有用戶愿意這樣做,,Roby表示,,“如果你是一家大型電信運營商,你可能會考慮更改代碼,,但是大多數(shù)企業(yè)都不會這樣做,。他們最不想要的就是擁有某產(chǎn)品的特定變體,他們需要自己支持,,而且不能利用社區(qū)其他人的升級,。
創(chuàng)造一個獨特的開源“產(chǎn)品”通常不是大多數(shù)企業(yè)想要的,除非不得已這樣做,。
全球軟件開發(fā)公司Persistent Systems云技術(shù)實踐高級主管Shriram Nataraj表示,,圍繞開源存在各種言論,“如果你有具體需求并且平臺具有內(nèi)置元素可以使你的工作更簡單”,,那么你可以考慮使用Microsoft Azure或Salesforce.com的Force.com等專有框架,。“如果你已經(jīng)是Salesforce客戶,想要將部分工作負載轉(zhuǎn)移到一個不同的平臺,,F(xiàn)orce.com將是一個不錯的選擇,。如果你已經(jīng)是Office 365客戶,并且有工作負載在微軟的.Net框架,,那么則可以考慮Microsoft Azure,。”
能夠與開源框架良好配合的往往包括(由喜歡較新開源工具的開發(fā)人員開發(fā)的)實驗性云應(yīng)用程序,還有大學(xué)或研究實驗室等開發(fā)的應(yīng)用程序,,大學(xué)或?qū)嶒炇覔碛袑W(xué)習(xí)和研究這些新技術(shù)的技能,,或者對專門功能(例如龐大數(shù)據(jù)庫或高級分析)有特定需求。
VMware云和應(yīng)用程序服務(wù)副總裁Jerry Chen表示,,使用開源框架開發(fā)的典型的應(yīng)用程序包括Web和社交應(yīng)用程序,,以及移動或者面向客戶的網(wǎng)站,當(dāng)企業(yè)需要快速部署應(yīng)用程序以及根據(jù)需要擴展應(yīng)用程序時,這些開源框架頁也很有用,。
老舊應(yīng)用程序往往不會被考慮在列,,這些應(yīng)用程序需要的硬件或者軟件可能不受Web支持。“雖然能夠?qū)⒑芏鄶?shù)據(jù)中心應(yīng)用程序從本地服務(wù)器遷移到虛擬云服務(wù)器,,但投資回報率并不那么明顯,,”軟件和服務(wù)供應(yīng)商Black Duck Software公司高級主管Bill Weinberg表示,“可能存在潛在的安全問題,、吞吐量瓶頸和可用性等問題,。”
對于復(fù)雜的應(yīng)用程序,OpenStack和Cloudscale比Eucalyptus更加值得選擇,,Nataraj表示,,因為它們能夠更好地隱藏網(wǎng)絡(luò)的復(fù)雜性。例如,,對于一個需要用戶“從不同IP范圍連接”的應(yīng)用程序,,用戶可能需要編寫自定義代碼來使用Eucalyptus,但是對于OpenStack,,實現(xiàn)這些網(wǎng)絡(luò)連接所需要的“交換機”已經(jīng)存在,。
Nataraj表示,參與開源項目的開發(fā)人員的數(shù)量和質(zhì)量同樣可以說明該項目的質(zhì)量如何,,如果涉及來自多個公司的開發(fā)人員,,供應(yīng)商鎖定將不太可能是一個問題。
Roby建議應(yīng)該側(cè)重于供應(yīng)商的承諾水平,,而不是社區(qū)的承諾水平,,“這些成功的產(chǎn)品是由小部分人開發(fā)的,社區(qū)很大程度上是提供反饋,,也許還做測試或者提供文件,。”
Miles還警告說:“如果這些公司都沒有準(zhǔn)備依靠這些產(chǎn)品獲得收入,那么這些公司隨時可能撒手走人,,而產(chǎn)品將沒人支持,。”
一些開源開發(fā)人員對其軟件制定的非常規(guī)許可條款,例如要求“軟件必須用于好的目的,,而不是惡意目的”,將會讓企業(yè)法律部門皺眉頭,。此外,,更嚴重問題是要求公司與社區(qū)其他成員共享任何改善功能的許可條款,這意味著企業(yè)可能需要向競爭對手暴露其“最佳做法”,。
大多數(shù)受訪專家都表示,,主流許可條款(例如Apache的條款)并沒有這些麻煩的要求。Conway表示,其工作人員的技能與他與其他人分享的代碼一樣重要,。他還指出,,開源讓他可以利用其他人做出的改進。
開源云框架能夠幫助企業(yè)快速在私有云和公共云間部署Web應(yīng)用程序,,以滿足不斷變化的業(yè)務(wù)需求,。但是要獲得這些優(yōu)勢,IT架構(gòu)師必須從不同供應(yīng)商的框架中進行篩選,,看看他們的框架是否能夠提供他們需要的易用性來滿足他們特定的需求,。