很多人都知道 emc 這個公司,知道它是一家全球頂尖的存儲産品供應商,但是很多人卻不知道 emc 也是一位開源先鋒。
前一段時間去參加 emc world 2016大會[1],在大會上的見聞了種種新技術,也第一時間聽到了不少最新披露的消息。這期間,令筆者非常吃驚的是,emc 在開源方面的步伐之大,遠在很多同侪之上。

emc {code} 在 emc world 2016 上
對 emc 的印象
原本印象中,emc 是一個以硬體和專有軟體為主的廠商,在開源方面不會有太多的積極性,而且存儲方面的專有軟體也未必适合開源。
emc 是一家已經成立了30多年的老牌 it 公司,也是全球第六大的企業軟體廠商。以過去的經驗來看,這種類型的公司通常在采用新技術方面和公司戰略方面會比較穩健,但是近些年随着 emc 公司在開源戰略方面的部署,其不僅僅在原本的存儲市場、企業軟體市場方面繼續着保持上司地位,也逐漸将其影響力帶到了開源領域。
在聽了一場由 emc {code}[2]的 jonas rosland 和 stephanie carlson 做的演講之後,筆者發現 emc 已經緊密的融入了整個開源生态方面,不但與包括 linux 基金會、openstack 基金會、github 等在内的各個開源社群形成了緊密的合作,而且在組建自己的開源社群 emc {code} 方面已經做出了長足的發展。
emc 在開源方面的工作
emc {code} 開源社群
emc 的開源社群,與他們開源的各種項目奇奇怪怪的名字相比,起了一個不算出奇的名字 {code}。這個名字代表着一句他們的開源戰略:community onramp for developer enablement,這句願景似的智語如果用中文來描述,可以解釋為:“讓開發者進入高速通道的社群之路”。
emc {code} 建立兩年來,目前已經釋出了多達48 個開源項目——哦不, 49 個了,就在寫作這篇随筆的時間裡又增加了一個。僅在 2015年這一年,就向社群貢獻了超過35萬行的代碼。其中一些開源項目原本能為 emc 帶來大量的商業營收,比如 coprhd、rackhd 等,是以在開源後得到了社群的高度關注和積極參與。
community onramp for developer enablement
讓我們來看來 emc 在開源方面都做了哪些舉措:
rackhd
去年底的時候,emc 公司兌現了其為開源社群帶來重要新貢獻的承諾,以 apache 開源協定釋出了 rackhd™ (讀作rack ‘h’ ‘d’)項目。這是一個與平台無關的技術棧,旨在解決超大規模環境下管理群組織協調伺服器與網絡資源這一行業性挑戰。
現代化的資料中心是一個多供應商的存儲、網絡和伺服器的混合體,種類不斷增加的商品化硬體被用到各種超大規模場景。對資料中心工程師來說,在大量設 備上安裝低層級的作業系統、更新固件和 bios,已經成為一項複雜低效的人工任務,在超大規模環境下,難度和成本以數量級增加。 rackhd 的建立旨在囊括各種資料中心硬體的自動化,簡化這些基礎任務。
開發人員可使用 rackhd api 作為更大的組織協調系統的一個元件,或者建立一個使用者界面管理硬體服務,無需考慮底層硬體是否就緒。其目标是幫助各個組織機構加速現代化應用的部署。而這些應用依賴于大量的商品化伺服器和異構基礎設施。
目前,rackhd 支援各種基于 intel® 處理器的資料中心伺服器,以及交換機的發現和監控。
rex-ray
雖然 emc 公司旗下已經有了虛拟化領域的領軍的 vmware 公司,但是在 docker 興起之後,emc 還是積極地參與了容器領域的發展,并利用其在存儲領域的強大的技術優勢,将 docker 技術融入到其 xtremio 和 scaleio 産品中,利用簡單的 docker 存儲容器實作了共享存儲。
rex-ray 是一個存儲編排引擎,它為docker、mesos及其他容器運作環境提供了持久化存儲通路。其設計旨在囊括通用存儲、虛拟化和雲平台,提供進階的存儲功能。rex-ray 為容器提供了與廠商無關的持久存儲,為橫跨公共存儲、虛拟化和雲平台實作先進的存儲功能提供了一種簡便的集中式架構。
rex-ray率先提供卷挂載功能,允許主機從無響應的主機上重新配置設定挂載卷。這樣可確定應用程式維持對永久存儲的通路。
在 emc world 2016 大會上,emc 釋出了 rex-ray 的最新版本 0.4,新功能包括了一個可選的 c/s 模型架構,可用于中心化的控制,相容 docker 1.11 volume api,并支援 emc scaleio、xtremio、isilon和 vmax 存儲,以及支援 amazon ec2、google compute engine、openstack和rackspace 等雲存儲服務。
emc {code} 技術副總裁 josh bernstein 說,“開源和基于軟體的架構變為了我們的客戶所急需的。”
polly
在本次大會上,emc {code} 還新釋出了 polly,它提供了一個可以連接配接到容器排程器的中央存儲排程服務。它可以與cloud foundry、docker、kubernetes,、mesos 等容器排程服務協同工作,這樣,存儲就可以像計算、記憶體和網絡一樣通路了。能夠與其他計算資源一起提供存儲資源是一個革命性的飛躍,這超越了其他容器計劃,而且提升了存儲的地位,使其能夠像其他資源一樣使用。
polly 順應“排程環境中将存儲作為‘頭等公民’”這種需求而出現,其意即“多态存儲卷排程polymorphic volume scheduling”,是一種面向 cloud foundry、docker、kubernetes、mesos 以及其他排程環境的開源架構。
以前,就容器部署而言,容器排程器僅關注計算、記憶體和網絡資源。随着容器内的應用開始需要持久的後端存儲,将其作為可排程的資源使用的需求出現了。polly 充當了這樣的角色:将存儲作為一種開放架構內建到多種容器排程解決方案中。
開源容器生态系統是多種多樣的,部署方式也有所不同。多态解決方案允許代碼演變,同時保持原始算法完好無損,是以在将存儲內建到支援性生态系統中時,多态解決方案對于實作公共功能和方法是至關重要的。
coprhd
coprhd 是開源的存儲自動化軟體,将來自多個供應商的存儲集中化,并轉變成單一且可擴充的平台。現在以 apache 2.0 許可協定開源。
為了幫助企業迎戰各種變化,emc 推出了核心産品 vipr 控制器的開源版本:coprhd,向以社群為主導的開發群體開放 vipr 控制器所有的存儲自動化和控制功能代碼,以友善社群開發軟體定義的存儲自動化系統。coprhd 提供與 vipr 控制器同樣的靈活性、多種選擇、安全性和透明性,同時增強開發新服務和新應用的能力。
coprhd 是 emc 首個基于其商業軟體産品的開源項目,它的源碼具有與 emc vipr 控制器相同的核心屬性和功能。需要指出的是,coprhd 其對應的商業版本 emc vipr 控制器,emc 也将繼續提供和支援。
對 emc 開源戰略的社群反響
emc 在開源方面的舉措堅定而持續。比如其去年開源的 scaleio 就分别來自其花費了3億美金收購的公司的拳頭産品,而 scaleio 這個軟體在當初釋出時,該公司甚至不願提供試用版。至于 vipr ,我們前面提到過,它的開源版本 coprhd 和 vipr 具有相同的代碼基,而現在 coprhd 已經形成了一個成熟的開源社群。
emc 2016 大會上,參會者濟濟一堂
雖然對于 scaleio 是否算做是開源産品社群還有一些争論,但是無論如何在非産品環境中scaleio 是可以免費下載下傳使用的。
當然,從另外一方面來說,除了部分産品,如 coprhd 等少數核心産品外,社群也對 emc 開源的部分外圍産品關注不多,希望能見到更多靠近核心的産品能貼近開源戰略。
從目前 emc 開源的幾十個軟體項目中,我們可以看到,有些項目的參與者還較少。按照 emc 的産品與市場總裁 jeremy burton 所說,“如果一個開源項目沒有人參與,那不是開源,而叫做幹掉該項目。”是以,如何将這些項目找到合适的貢獻者,而不僅僅是“開放”源代碼就萬事大吉,還需要 emc 做更多的工作。至少,社群方面應該有足夠的管道來聽到 emc 在開源方面的聲音,并有合适的社群氛圍參與進社群生态的建設,才有助于 emc 開源戰略的持續發展。
開源能給 emc 帶來什麼?
開源是你的戰略的一部分嗎?
那麼為什麼 emc 熱衷于開源?開源可以為 emc 帶來什麼?
開源可以讓 emc 的軟體支援更多的第三方硬體,進而擴充了其應用場景,為客戶帶來更多的價值。
開源也可以讓他們的軟體得到更多的發展,從開源生态中汲取更多的養分。coprhd 和 vipr 的關系就類似 fedora 和 red hat 的 rhel 一樣,可以通過開源社群的貢獻、體驗,進而為企業級的産品軟體提供更多的發展的可能。
雖然,emc 還是其開源的軟體産品的主要貢獻者,但是其開源的産品也會吸引大如 intel 公司、各個研究機構和大學,小到獨立開發者這樣的開發力量參與進來。
另外,開源也為其争奪市場佔有率和對業界标準的影響有不可忽視的作用。
結語
縱觀 emc 在開源方面這兩年來的舉措,我們可以看到,部分傳統的 it 廠商已經堅定的轉向開源戰略,将開源作為其産品和業務發展的一大重要方式。
而 emc 和 dell 合并之後,筆者在和 emc 相關高層中的溝通了解到,這種開源戰略顯然會進一步延續下去,并進一步擴充到新成立的 dell 科技公司,進而吸引更多的開源社群力量參與,相對地也會進一步促進開源生态的發展。
作為開源戰略不可或缺的部分,如何在“開放”源代碼之後,将其植入開源社群的土壤,進而真正得到發展,這應該是之後 dell 科技公司和 dell emc 的一大考量的地方。