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