對于云平臺,如今基本就意味著開源。
提及開源技術,著實在云計算和大數據下“火”起來。面對撲面而來的云服務,無論是何種服務對于企業和用戶來說都是“熟悉的陌生人”,“熟悉”是因為知道云計算的人都能說出IaaS、PaaS和SaaS這幾個詞,但僅從其中衍生出來的云技術讓很多人“陌生”,特別是開源技術在云計算中明與暗的角力。
對于很多用戶來說,Linux就是開源的典型代表,姑且不討論是否在桌面領域崛起,但沒人否定linux在云計算方面的影響力。低成本、靈活和可定制的最基本特點,讓Linux走過20年的成功歷程,在開放的云計算市場需求下處于一個拐點。
筆者一直信奉“人在玩的時候最認真”,各個開發者也好,企業也罷,開源云平臺中的“玩具”成為他們將面對的下一個戰場,而開源技術在明與暗角力中如何演變進而發展是關鍵。究竟是什么!對于這個問題答案或許很多人并不了解,筆者不僅也要問:到底這個“火起來”的開源技術有何魅力?通過進一步的學習和了解,通過游戲+文字來熟悉開源云平臺中的“玩具”。
如同當下任何行業流行趨勢一樣,任何東西或技術只要成為市場的主流就會被廣大用戶所接受,那它一定在“明”顯示出強大的親和力,開源云平臺也不例外,而受其影響,不斷發展延伸出來類似的技術和產品將在市場上對其形成一個“暗”競爭,來平衡一家獨大的市場生態,發展的同時推動主流更加完善技術。
明:Hadoop、OpenStack、Docker變身主流開源云平臺
暗:Spark、CloudStack、Rocket助力開源云平臺成長
通常在“玩具”分為各個類別,不同東西針對玩家的興趣點也不盡相同。就拼圖玩具,通過不同的塊打造成一個完整的成品,其中有易于辨識的彩塊,也有需要通過不斷的推測的單一板塊,需要玩家不斷對整個拼圖了解才能最終打造一副成品,不僅考驗耐心、細心,更加對整體畫面的一個把握。
開源云平臺也是如此,開發者如同在拼圖中找到易于辨識的彩塊(如Hadoop、OpenStack、Docker),而隨著整體圖形的呈現,通過針對不同區域的單一板塊進行推測(如Spark、CloudStack、Rocket),可以在開源技術上拼裝成自己業務所需的云平臺。
Spark與Hadoop亦友非敵熟悉大數據的人一定對Hadoop工具不陌生,Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。之前談到Hadoop,業界總與MapReduce放在一起,但其實HDFS和MapReduce一樣都是Hadoop框架最核心的設計。筆者了解到軟件的安裝部署是需要付費,由于Hadoop在管理工具與支持服務方面的不足,企業在使用過程中很容易產生額外費用。另外,由于它沒有優化程序,專業運行環境中人工輸入代碼費用不菲,更不用提部署Hadoop集群的硬件和相關配置的成本。
正如上面談到,Hadoop有數據應用上的優勢,HDFS和MapReduce都是基礎,但并不容易部署與實施,其實如今針對Hadoop開源技術推廣,市場開發應用上主要有兩個圈子:一個是做算法、分析的圈子,另外一個是做架構、設計的圈子,如何把這兩個圈子技術有效的結合產生應用是大數據的突破點。
很多人最大的疑惑:那Hadoop技術未來真正的價值是什么?從技術特點上來說,之前提到Hadoop由采用HDFS可靠數據存儲服務,以及MapReduce技術的高性能并行數據處理服務是其優勢所在。而對于Hadoop來說,盡管提供了數據存儲和并行處理平臺,但其真正的價值來自于添加件和功能,以及Hadoop Common、Chukwa、HBase、Hive、Pig和ZooKeeper這項技術的增加功能性和新能力的子項目實現。
由此,筆者感覺Hadoop盡管應用于分布式環境,其開放的生態系統如同Linux一樣,各個IT廠商通過集成和測試Apache Hadoop的組件,并添加廠商自身的工具和管理功能來不斷擴展Hadoop生態環境。
Spark與Hadoop亦友非敵
隨著Hadoop日益成為公司處理大數據的企業平臺之選。Spark則是運行在Hadoop之上的內存處理解決方案。Hadoop最大的用戶在自己的Hadoop集群中運行Spark。Cloudera和Hortonworks在其Hadoop包中也加入Spark。
為什么會產生這種混淆?正如之前談到Hadoop由兩大部分組成:HDFS和YARN的計算引擎。其YARN最初的框架是由谷歌MapReduce用來幫助處理海量網絡抓取數據。Spark是另一個這樣的框架,談論Spark與Hadoop的“爭斗”時,開發者更喜歡Spark,而非之前MapReduce框架。
但筆者認為MapReduce不應該和Hadoop等同,只是Hadoop集群處理數據的諸多方式之一。Spark可以替代MapReduce。在過去幾年中,基于Hadoop的大數據技術涌現出創新:Hadoop從批處理SQL進化到了交互操作;從MapReduce變成了Spark等多個框架。
由此,Spark不會取代Hadoop。相反,Hadoop是Spark的基石。隨著平臺不斷變化,企業將通過商業價值的轉化使得對Hadoop和Spark技術的采用也增加。
避免功利性的開源之爭像OpenStack技術,這種背后有數千開發者和技術專家支持的項目的發展受到關注。其推出旨在打造易于部署、功能豐富且易于擴展的云計算平臺。OpenStack項目的首要任務是簡化云的部署過程并帶來良好的可擴展性。
從應用角度可以看出來,OpenStack本身是一個架構,支持客戶利用不同的計算、網絡和存儲技術來構建云,但OpenStack構建云的質量很大程度上取決于客戶所選擇的組件。VMware提供了一套專門面向OpenStack組件幫助客戶構建OpenStack云,但運行OpenStack的最佳方式是建立在VMware技術基礎之上。
會有人問到既然如此,OpenStack的意義何在?這就要從企業云計算轉型介紹,企業必須了解如何利用以及應對云計算市場中的解決方案。而亞馬遜和VMware在各自細分市場的霸主地位讓其他廠商很難望其項背。
OpenStack基金會成立推出其云開源舉措,一些之前難以與亞馬遜和VMware在云端PK的傳統IT廠商通過OpenStack開始發力云計算。由于OpenStack可支持建立云平臺,其本身是開放開源的,不同廠商可以根據市場需要,結合自己的產品和技術對其提供支持或者實現兼容,從而確保云計算市場不掉隊。
避免功利性的開源之爭
之前談及OpenStack項目,是由NASA和Rackspace合作研發的,以Apache許可證授權,并且是一個自由軟件和開放源代碼項目。盡管OpenStack平臺是開放的,眾多廠商在OpenStack上構建云產品,但是如何建立一個非商業云的標準是值得關注。
OpenStack與CloudStack(來源sebastien-han.fr)
隨著CloudStack、OpenNebula和Eucalyptus都在企業中找到了市場,廠商的加入不僅帶來了技術和資金上的支持,同時也有利于發揮各自平臺優勢,推動云操作系統的開源發展。正如在開發開源云軟件的競賽中,相比其他開源云系統OpenStack更具市場動能,有大約160個支持者,包括數據中心設備廠商思科系統、戴爾、惠普和IBM。CloudStack有大約60個支持者,包括博科、英特爾和Juniper。
曾經的思杰放棄OpenStack轉而投身CloudStack的做法,特別是在一些實際的應用場景中有所落地,顯示出似乎并未一窩蜂投入一家,而當OpenStack逐漸成熟,思杰也最終選擇回歸,但思杰明確表示不會出品OpenStack發行版,在既擴展了多個開源云平臺的支持,又在一定程度上推動市場競爭,避免著眼于功利性的開源之爭。
筆者認為,盡管存在一定市場不確定因素,但OpenStack倍受追捧是不爭得事實。如果OpenStack早日得到商業化應用,讓更多用戶體驗到云服務,把商業成果放在開放云上,建立一個非商業云的標準是值得關注。
阻擊Docker一家獨大對大多數人來說,Docker技術將成為在云計算領域下一個重大趨勢。Docker是一個開源的應用容器引擎,讓開發者可以打包應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上。曾經成為了實際上的容器格式標準,其技術可支持超過500萬個容器,而且可跨越主要操作系統和云服務平臺。但隨著CoreOS推出自己的容器rkt,并隨后發起了一項開放式的容器標準之爭便一發不可收拾。
阻擊Docker一家獨大
對大多數人來說,Docker技術將成為在云計算領域下一個重大趨勢。但一些巨頭開始發力相關領域,尤其是谷歌或將推出替代該技術的一種新支持方式。早在去年12月,Docker最早的支持者之一硅谷初創公司CoreOS公布了一個開源項目Rocket。
據了解,Docker是建立在支持谷歌龐大在線軟件之上,是一種更有效構建和操作運行Google Search、Google Maps、Gmail的方式。作為一個軟件集裝箱工具,允許開發人員打包代碼并且運行在大規模分布式系統上,并不需要考慮運行在自己的數據中心或在亞馬遜公有云服務上。
對于流行的軟件應用而言,必須要運行在大型的機器網絡上,也是唯一可以讓開發者即時獲取信息的方式。Docker可以簡化這些應用程序的創建,由此受到如此多的關注。
自支持Docker以來,憑借其影響力使得亞馬遜、微軟以及其他公司都競相加入Docker陣營。但谷歌同樣開始支持Rockert,并且集成該項技術到Kubernetes云計算軟件,宣稱是“Kubernetes項目一個重要里程碑”。
阻擊Docker一家獨大(圖片來源exoplatform)
Docker試圖提供整個行業一個通用的容器標準。如果每個人都采用這個標準,運行軟件將變得更容易。但利用Rocket,CoreOS希望提供一個新的容器標準來擺脫任何一家廠商的獨大。除了谷歌,其他大公司也正在開始支持Rocket項目,包括RedHat和VMware。
但谷歌Kubernetes項目,Pivotal軟件將繼續使用Docker和Rocket。Docker已經廣泛使用,Rocket項目成為整個行業的一個可行選擇或面臨一些挑戰。
由此,對于開源云平臺中的產品而言,眾多技術中也存在各自的特點和應用偏好,開發者們在享受主流(或市場最為推崇的)開源技術帶來的魅力同時,也會去了解其它類似的平臺特點,通過不同的“版塊”來對整個生態去學習,比較之余在不斷地完善和發展中帶給玩家更好的服務體驗。