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