當前位置:
首頁 > 科技 > Kubernetes 會迎來類似 Hadoop 的結局嗎?

Kubernetes 會迎來類似 Hadoop 的結局嗎?

作者:Matt Asay是Adobe的開發者生態系統主管。加盟Adobe之前,Asay在多家開源公司擔任過要職。

複雜性會要了Kubernetes的命嗎?

Kubernetes不會是因自身重量而崩潰的第一個大型開源項目,但支持者稱Kubernetes的情況不一樣。

Kubernetes目前可能是開源人士的寵兒,但此前的Hadoop同樣一度備受推崇。Hadoop最終壽終正寢,就因為用起來特別難。雖說Kubernetes取得了長足進步,但正如第一資本公司(Capital One)的Bernard Golden所說,「運作起來仍然不是件輕鬆愉快的事兒」。這麼說已很委婉了,有人毫不客氣地稱Kubernetes「體驗讓人討厭得要命」。

Kubernetes正迎來類似Hadoop的結局嗎?

可能不是。Hadoop日益變得更複雜,但Kubernetes變得越來越容易。雖然Kubernetes本身可能永遠不會「很容易」,但其複雜性與Hadoop的複雜性大不一樣,這為Kubernetes在未來幾年仍是一種行業標準鋪平了道路。

Hadoop,越來越複雜

不妨先來說說Hadoop。Apache Hadoop在大致相當於「MapReduce」時異常複雜。不過隨著時間的推移,Hadoop在不斷演變;雖然這種演變帶來了功能更強大的選擇,但那些選擇數量激增。它們也未必很容易協同運行。正如Tom Barber所說:「Hadoop實際上做什麼?MapReduce被Spark取代,Spark又被其他東西取代,依次類推。當然你可以插入很多組件,但它依然很笨拙。」

為何笨拙?VMware的Jared Rosoff精闢地分析了這個問題:「Hadoop的複雜性來自這個事實,即典型的Hadoop環境基本上由幾十個獨立而複雜的系統組成,這些系統有著不同的生命周期和管理模型。」Flume、Chukwa、Hive、Pig和ZooKeeper等等。這些名字聽起來不錯,但讓它們協同運行起來如同噩夢。Host Analytics的首席執行官Dave Kellogg認為,Hadoop是「一整套複雜的解決方案」,所有這種複雜性來源於用戶。

然而,與Kubernetes最不一樣的是用於擴展Hadoop的模型。正如Rosoff特別指出,「Hadoop並沒有考慮人們會如何擴展它,結果出現的生態系統包括不相兼容的擴展件。」他繼續說,與之相反,「Kubernetes做得很好的一點是,精心設計了擴展Kubernetes的方式。容器運行時介面(CRI)/容器存儲介面(CSI)/容器網路介面(CNI),這些operator確保隨著更多的供應商加入進來,它們在以合理有序的方式加入。」換句話說,不像Hadoop及其不兼容的擴展件,「Kubernetes在擁有眾多operator後仍然是Kubernetes。」

Kubernetes,可控的複雜性

這倒不是說Kubernetes很簡單。作為Kubernetes的開發者之一,Heptio(VMware)的Joe Beda完全有資格宣稱「Kubernetes是個複雜的系統。」他繼續說,這種複雜性多少必不可少,因為「它做了很多事,帶來了新的抽象。」每個人一直都需要所有這些抽象(和花哨的附加功能)嗎?並非如此。「我確信許多使用Kubernetes的人使用較簡單的技術也能應付過去。」

Beda強調,不過對於那些需要Kubernetes的人來說,Kubernetes未必比人們已經熟悉的其他系統來得複雜。可能一個是「新的」複雜系統,另一個是「舊而舒適」的複雜系統:

作為工程師,我們往往低估我們自己帶來的複雜性,高估我們需要學習的複雜性。如果你使用Jenkins、Bash、Puppet/Chef/Salt/Ansible、AWS和Terraform等創建一套複雜的部署系統,最終會得到你感到舒適的獨特的複雜性系統。它有機地生長,因此不覺得複雜。

但是請外人幫助開發這樣一個有機生長的系統很困難。他們可能知道一些工具,但你把它們組合起來的方式卻是獨一無二的。竊以為,這就是Kubernetes增值的地方。Kubernetes提供了解決一組常見問題的一組抽象。隨著人們圍繞那些問題加深理解、增強技能,他們在更多的情況下會更有成效。仍面臨陡峭的學習曲線!但是這種技能組合現在很寶貴,在諸多環境、項目和工作之間可以移植。

明白要點了嗎?與存在於你可能在X公司構建的某個部署系統中的複雜性不同,你在Kubernetes方面遇到的複雜性可以跟隨你從一個公司到另一個公司。這麼一來,它的複雜性變得比其他這些系統低得多,因為知識可以移植。換句話說,「學習一次,到處適用。」

學習一次,到處適用

反過來,這種學習比Hadoop要容易得多。與Hadoop不同,Kubernetes是一個更容易熟悉起來的系統,這一方面是由於它可以運行的場景。正如Gareth Rushgrove所寫,「你可以在本地運行Kubernetes,比其他類似的例子(Docker Desktop、Kind和MicroK8s)要容易得多。降低准入門檻使人們更容易熟悉起來,這降低了感知的複雜性。」

正如雲原生計算基金會的首席技術官Chris Aniszczyk強調的那樣,這點也有所幫助:雖然「分散式系統本質上很複雜,但Kubernetes的優勢在於,全球各大雲提供商和多家供應商都提供Kubernetes合規/認證的託管版本(無分支),幫助大多數用戶應對大規模管理的複雜性。」儘管如此,Tamal Saha表示,可能重要的問題是「從Kubernetes試圖解決的問題來看,Kubernetes是否很複雜。」對他來說,答案是否定的。

「Kubernetes會淪為Hadoop嗎?」這個問題的答案也是否定的。Kubernetes已經過了那個階段。是的,正如一位評論人士所說,Kubernetes是「一種複雜的編排工具,並不適用於所有使用場景。就像我們行業的眾多工具一樣,學習、使用和理解也需要花時間。『幾小時』是不夠的。」這是解決複雜問題的複雜工具。正如Beda所說,但存在「有意的複雜性和偶發的複雜性」。Hadoop飽受後者之苦,而Kubernetes面臨的是前者。

由於諸如此類的原因,我們會看到Kubernetes繼續作為容器編排領域的行業標準而蓬勃發展。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲頭條 的精彩文章:

網信辦:《數據安全管理辦法(徵求意見稿)》
2019年Q1 SD-WAN 市場份額:VMware 20.3%、思科 13.1%、華為 5.9%

TAG:雲頭條 |