近25年來,開源軟件在企業領域遍地開花。隨著我們開始進入到速度和可擴展性至關重要的云計算環境,開源軟件在扮演一種更為重要的角色。幾家重量級開源廠商在如何奠定基礎?為什么理查德?斯托爾曼說“不要做開源軟件”?
25年前,自由軟件之父理查德?斯托爾曼(Richard Stallman)開發出了GNU通用公共許可證;之后的這些年間,自由和開源軟件(FOSS)已經在計算領域遍地開花:Linux、Apache HTTP服務器、MySQL及更多此類技術出現在全球各地的眾多企業。如今開源同樣在日益支撐云計算。
Byran Che是紅帽公司的產品管理高級主管,負責云操作產品、管理軟件和紅帽企業MRG(紅帽的消息傳遞、實時和網格平臺)。他說:“開源無疑是擴建云技術方面的基石。如果你看一看服務器領域的市場份額,如果關注傳統的數據中心,就會發現約70%的服務器運行在Windows平臺上,約330%運行在Linux平臺上。如果你關注人們選擇使用什么操作系統在云環境中開發應用程序,會發現這個比例完全倒過來。”
Che表示,道理很簡單:面對新環境,你得從頭開始構建一個全新的架構,而開源為你提供了最好的價值。
他說:“就算你達到亞馬遜的規模或谷歌的規模,也無須支付許可費。”
成本并不是讓開源模式在云領域具有優勢的唯一因素。Che還提到,開源能夠圍繞某個項目建立起社區,因而推動快速創新。
他說:“這其實才是開源的看家本領。亞馬遜、谷歌、Facebook,以及在擴建所有這些云應用程序、基礎架構和服務的所有廠商,他們都在使用開源來完成。事實上,使用開源軟件是他們以自己所需的步伐快速創新的唯一途徑。他們等不及供應商走完整個開發周期。”
SaaS是否違反了自由軟件的原則?
但開源在云環境中到底在做些什么?對斯托爾曼來說,自由軟件有濃厚的政治意味(他很鄙視開源這個術語)。他聲稱,云計算、尤其是軟件即服務(SaaS)本身不可能是自由的。
斯托爾曼在2010年由《波士頓評論》發表的一篇文章中寫道:“SaaS和專有軟件導致了相似的不良后果,但因果機制不一樣。就專有軟件而言,原因是你擁有和使用的軟件副本更改起來很困難或屬于違法;而至于SaaS,原因是你使用的軟件副本不歸你所有。”
“許多自由軟件支持者天真地以為,只要為服務器開發自由軟件,就有望解決SaaS的問題。”他補充說,“對于服務器運行方來說,服務器上的程序最好是自由軟件;如果這些程序是專有軟件,它們的所有者將掌控服務器。這對運行方來說不公平。但是如果服務器上的程序是自由軟件,就無法保護你服務器用戶免受SaaS的影響。這為運營方賦予了自由,而不是為你用戶賦予了自由。”
斯托爾曼的觀點根源于自由軟件與開源軟件在理念上的分歧。斯托爾曼表示,開源運動是一種開發方法,實際注重讓源代碼可用。另一方面,自由軟件運動宣揚的是一種道德立場,表明了用戶應該如何使用軟件。
對斯托爾曼來說,自由軟件必須為用戶提供四種基本的自由:
1. 按用戶要求運行程序的自由
2. 研究和更改源代碼以符合用戶要求的自由
3. 重新發行軟件精確副本的自由
4. 重新發行用戶修改版的軟件副本的自由
雖然開源軟件的定義和自由軟件的定義幾乎一模一樣,但是說到云計算,它們似乎大相徑庭。
斯托爾曼寫道:“發布服務器軟件源代碼確實造福于社區:技能比較嫻熟的用戶可以搭建類似的服務器,也許還可以更改軟件。但這些服務器都無法讓你掌控在其上面所做的計算工作,除非它是你的服務器。其余的都將是SaaS。SaaS始終讓你受到服務器運營方的掌控,唯一的補救辦法就是不要使用SaaS!不要使用別人的服務器對你提供的數據做自己的計算工作。”
與此同時,開源行業正在狂熱地推出全面的云服務:基礎架構即服務(IaaS)、平臺即服務(PaaS)、SaaS以及數據存儲即服務(DaaS),開源行業還涉足云管理服務。
開放云的屬性
Che表示紅帽公司信奉開放云,他稱開放云具有七個關鍵屬性:
1. 它是開源的。Che說:“那是你構建一切系統的基礎。”
2. 它基于協作開發。他說:“圍繞某個項目會有一個切實可行的、獨立的社區。這樣的社區一定要有;否則它成了發布源代碼的專有軟件公司。”
3. 它基于并沒有被專有技術牢牢束縛的開放標準和開放格式。
4. 它為你賦予了使用自有知識產權的自由。
5. 它讓用戶有權選擇基礎架構。用戶可以選擇所需的基礎架構提供商和云服務提供商。
6. 它有開放的應用編程接口(API)。Che說:“它要有可插入性和可擴展性。它不能被默認情況下你擁有的東西所限制。”
7. 它要能夠移植到其他云。它不能讓你被某一家提供商牢牢鎖定。
Che說:“我們需要開放云的其中一個方面是,讓你能夠面對不同云環境,擁有互操作性和可移植性。我應該能夠管理覆蓋所有這些不同技術的混合云。”
開源云避免被提供商鎖定
Apache Deltacloud朝互操作性和可移植性方向邁出了一大步,這是紅帽公司在2009年發起的一個項目,后來歸Apache軟件基金會所管,該項目在2010年成為該基金會的一個頂級項目(TLP)。Apache軟件基金會試圖借助Deltacloud,解決一個還沒有完全冒出來,但可能會在今年幾年顯得很緊迫的問題:云鎖定。
紅帽首席軟件工程師兼Apache Deltacloud項目主席David Lutterkort說:“最大的挑戰是,云計算領域的發展日新月異,用戶們忙于弄清楚如何最好地利用云,云鎖定對他們來說目前還不是擔心的一大問題。該問題還沒有引起大家的重視。”
Deltacloud其實是一種API,通過抽象機制消除云與云之間的差異。它讓用戶使用一套API,就能夠管理不同IaaS云中的資源。它實際上可以作為眾多云外面的包裝器來加以實施,讓云計算用戶不必處理每個云的API的細枝末節。
標準制定機構也聯合起來,制定開放式、互操作的標準。2009年,幾家領先的標準開發組織(SDO)成立了云標準協調工作組,旨在協調不同標準開發組織在開發云標準方面的工作。成員包括:云安全聯盟、云標準用戶協會、分布式管理任務組(DMTF)、歐洲電信標準協會(ETSI)、美國國家標準和技術研究所(NIST)、開放式網格論壇(OGF)、對象管理組織(OMG)、開放云聯盟(OCC)、結構化信息標準促進組織(OASIS)、存儲網絡行業協會(SNIA)、國際開放標準組織、零售行業技術標準協會(ARTS)和TM論壇。
Lutterkort還是分布式管理任務組(DMTF)的董事會成員,該任務組正在制定一項名為云基礎架構管理接口(CIMI)的標準,該標準將創建任何云都可以使用的一套標準API。
由Red Hat推動的Aeolus項目是另一個前瞻性的開源項目,它實際上力求建立一種開源云代理系統。作為一個獨立項目,Aeolus提供了一整套一致的工具,以便建立和管理跨多個云環境的虛擬機組。該項目包括以下組件:
?Aeolus Conductor提供了一種方法,以便為用戶提供云資源,管理用戶對那些資源的訪問和使用,以及控制用戶在云環境的實例。
?Aeolus Composer提供了一種方法,以便利用通用模板建立針對特定云的鏡像,那樣用戶就能自由地使用兼容的鏡像,選擇所需的云。
?Aeolus Orchestrator提供了一種方法,井然有序地管理大批實例,從而讓用戶能夠自動調用單單一個云上或橫跨多個云的一組不同實例,配置實例以及告訴實例關于對方的情況。
?Aeolus HA Manager提供了一種方法,使得云中的若干實例或者大批實例具有高可用性。
致力于開放云領域的絕非只有紅帽這一家。Rackspace Cloud和美國宇航局的OpenStack IaaS云計算項目掀起了動靜,該項目同樣通過Apache軟件基金會來運作。Openstack項目的目標是,讓任何一家機構都有能力創建和提供在標準硬件上運行的云計算服務。