為佈局雲端,Google 把最重要的秘密開源了

In Google I trust

Google 的技術是雲計算開源化的主要推動力之一,Hadoop、NoSQL 類數據庫等開源軟體都源於 Google 的技術。但搜索巨頭本身對於自身技術的開源態度卻有點糾結。這種糾結主要源於不想放棄自身的這一競爭優勢,但是在微軟、VMware、EMC 等紛紛擁抱開源的大趨勢下,Google 終於意識到在開源的環境下推進自己雲戰略的重要性,哪怕把它最大的秘密部分開源化也在所不惜,現在這一戰略已經初見成效

Craig McLuckie 把想法告訴了 Urs Hölz​​le,但這位 Google 全球數據中心網絡的監管人並不喜歡這個想法。

McLuckie 跟 Google 西雅圖分部的兩位工程師希望把 Borg 再造成一個開源項目。Borg 是管理調度 Google 從搜索到地圖等一切服務所需資源的軟體工具,正是有了它,Google 才能將一個個計算任務打包分配到它龐大的全球網絡。多年以來,Borg 一直是 Google 保守得最好的秘密之一。而 McLuckie 想把它的藍圖(至少是部分藍圖)共享給網路。

「我們第一次去找 Urs 時,他對這個想法實際上是不高興的,」 McLuckie 說:「因為我們要做的是把營運 Goolgle 的秘密武器作為開源技術拱手讓人。」

但 Hölzle 等 Google 要員最終批准了這一項目—Kubernetes 這個名字起源於古希臘,是船長或者駕駛員的意思。今天是它推出 1 週年的日子,過去 12 個月,已有超過 370 名工程師給項目提交了 12500 份“commit”,他們當中大部分都不是 Google 的人,其中就包括 3 名頂級貢獻者(總共六位)。

Kubernetes 代表了 Google 在雲計算領域與 Amazon、微軟等努力進行競爭時的戰略轉變。傳統上,Google 對於驅動其在線帝國的基礎技術的保護是非常嚴的—Borg 就是很好的一個例子,且從某種程度上來說仍然如此。但現在 Google 已經是一家對雲計算態度非常認真的公司,它正在邀請別的公司和開發者在自己的基礎設施之上做網站、開發應用(注:類似 Amazon 當年做 AWS 的路子),邀請其他公司在其基礎設施之上開發運行應用,所以開源更多的是面向整個軟體社區做出的一種平等交換。

Kubernetes 最初是由 McLuckie 和其他兩位工程師 Joe Beda 、Brendan Burns 一起構思的,他們都是 Google 雲服務的開發團隊成員。在他們看來,Kubernetes 這個開源項目開源推動開發者使用 Google Compute Engine,這項云服務可為外部構思和開發者提供「虛擬機器」,在虛擬機器上面幾乎可以跑任何代碼,而 Kubernetes 則為代碼的跨環境運行(雲服務、本地數據中心)提供有效的管理手段。Hölzle 最終同意這一點值得犧牲掉保留自己代碼的優勢。

「雲對於 Google 來說絕對是勢在必行,」 McLuckie 說:「我們必須用新的方式運營。我們必須把自己的專長帶給社區。」

  • Google 的演進

Google 的舉動也是對雲計算崛起所推動的更大轉變的響應。現在開發者很容易就可以在一堆機器上面開發軟體,而且往往都是用開源的。在那麼多機器上跑專用軟體的成本高昂,滿足特定需求很困難。無論是提供像 Google Compute Engine 這樣的服務,還是為此類服務開發軟體,現在的雲公司都必須擁抱開源。微軟也已經意識到這個不爭的趨勢,為了推動其 Azure 雲計算服務的發展而擁抱開源。VMware 和 EMC 也已經這樣做了。

但 Google 的態度有點掙扎。它的技術是雲計算領域開源力量崛起的主要推動力之一。只是這家公司一直對開源運動保持著適當的距離。現在它走得更近了。

過去 10 年,Google 開發出軟體來管理軟體在其成千上萬台機器上的運行。它疑心很重,把運行大規模機器的能力視為自己的競爭性優勢,不想讓人看到這一軟體的面目。然後,過了幾年,Google 會時不時公佈 1、2 篇相關技術的論文,開源界就會開始山寨 Google 的技術,很多技術都是這樣,如 MapReduce 催生了 Hadoop,BigTable 公佈出來後,一大堆“NoSQL”數據庫就如雨後春筍般冒出來了。

Borg 的情況大抵也是一樣的。幾年前,Twitter 和加州大學伯克利分校的工程師開發了一款名為 Mesos 的工具,現在,它成了 Twitter、Airbnb 等知名網路服務的基礎。還有好些項目也在圍繞著 Docker 容器技術(Borg 的運作也是這樣,將軟件打包進軟體「容器」然後通過 Google 網絡到處交付出去)開發類似的工具。

不過現在在雲業務需求等力量推動下,Google 正在改變角色。它分享出來的不僅僅只是一篇研究論文,把一些小的在線基礎設施開源,而是把整個體系轉變成開源項目(至少在某種程度上)。

如 B​​urns 所述,他和 Beda 、McLuckie 都看到了有很多其他項目正在利用 Borg 及容器技術的想法,所以他們認為 Google 可以幫助推進這件事情。「我們感覺大家在把一塊塊碎片拼接完整是遇到了困難,」他說:「我們有那個圖案。我們有 10 年的經驗,知道怎麼把碎片拼到一起。」

誠然,Kubernetes 並不是開源的 Borg。它沒有 Borg 或者 Borg 的繼任者 Omega 那麼複雜。從目前情況來看,它不能管理那麼多台機器。「我們仍在朝著接近 Borg 同等規模努力,」Beda 說:「Kubernetes 初期關注的焦點是核心概念要對。」

但是 Borg 和 Omega 的部分開發​​者也在做 Kubernetes,其中包括 Uber 的工程師 Eric Brewer、John Wilkes 及 Brian Grant。有做過的人來做 Kubernetes 對於這個開源項目來說意義重大,而這個項目的未來目標是糾正 Borg、Omega 的錯誤,最終超越這兩位前輩。

在這個對開源如此器重的世界裡,這是 Google 參與競爭的最好方式。對於很多人來說,容器就是軟體開發的未來。而 Google 現在正扮演著這個未來的領導角色。

  • 隨便跑

不過,曾在 Pivotal 幫助開發過類似系統的 Mark Kropf 質疑 Google 對這個項目的態度究竟有多認真,他指出 Beda 已經離開了公司。而雲服務提供商 Digital Ocean 的 CEO Ben Uretsky 則認為,Kubernetes 等系統的應用情況並沒有那麼廣泛。「容器技術尚未成熟,」他說:「我們還處在炒作週期的頂峰。」

但無論 Kubernetes 的命運如何,從很多意義上來說,它仍指出了軟體開發的未來。

Google 在自己的數據中心使用著自己的軟體容器。不過 1 年前推出 Kubernetes 時,它找到開源的 Docker 作為搭檔。當 Docker 母公司尋求將自己的容器技術與某些自己的軟體工具進行捆綁時,Google 和 Kubernetes 項目卻開始擁抱 Docker 的替代品 Rocket—一個完全獨立的容器格式。

McLuckie 強調,Kubernetes 現在同時支持 Docker 和 Rocket。他希望業界最終能回歸到一個獨立的容器格式去,但他解釋說這不是選邊站。他說,Kubernetes「應該成為瑞士。」聽起來有點理想主義,但這是雲公司必須幹的事情:提供開源軟體,然後隨便別人怎麼用。McLuckie 說:

正在發生的這場顛覆要比任何一家公司都要大。

  • 延伸閱讀

開源是一種生活態度!六個針對 open source 的大哉問

Google 大神指點:雲端時代的企業安全從撤掉防火牆開始(咦?)

經濟部加速育成計劃開跑,要拿百萬獎金給雲端等五大產業新創來搶

被逼上梁山只能依了,蘋果 WWDC 最大亮點:開源 Swift

(本文轉載自合作夥伴《36Kr》;未經授權,不得轉載)


以上内容由IFTTT自动发布,原文地址:http://buzzorange.com/techorange/2015/06/15/google-says-future-cloud-computing/

Related Articles

0 评论 :

发表评论

Quote Of The Day