Docker 如今的體量與當初的潛在愿景相比實在太過渺小,本文將帶你了解 Docker“落得如此田地”的原因和真相的細節。
Docker 還活著。盡管它近兩三年的境況并不理想,但它還在苦苦掙扎,試圖找到自己的商業價值。就在上周,Docker 宣布更改 Docker 軟件的許可條款。在不久的將來,為大企業工作的 Docker Desktop 專業用戶需要付費訂閱才能繼續使用。
與此同時,Docker 還推出了一項專門針對企業的新訂閱計劃,即 Docker Business。新條款于 8 月 31 日生效,但 Docker 給出了截至 2022 年 1 月 31 日的寬限期,以便開發人員遵守新服務協議并在有需要的時候購買付費訂閱。
不出所料,Docker 的舉措引發了開發者的討論。雖然許多人表示理解 Docker 新訂閱背后的考慮,但也表達了他們的不滿。批評主要分兩類,有些人認為 Docker 的決定開創了有潛在“危險”的先例,未來它可能會增加訂閱成本。不過,其他人表示,這種觀點并沒有考慮到團隊如果不得不依賴“維護不善”的開源軟件時,會產生更高的成本。
另一方面,人們最擔心的是企業內部采購流程的難度,這可能會“勸退”開發者繼續使用 Docker,自然而然地,不少人開始探索替代方案,包括 Minikube、Canonical 的 MicroK8s 等。
至于開發者和企業會不會覺得 Docker Desktop 的替代方案更方便,又或者選擇支付訂閱計劃所需的少量費用從而保持現有工作流程不變,還有待觀察。
Docker 的商業嘗試無可厚非,但更遺憾的是,Docker 從未成功將技術創新轉化為可持續的商業模式,還被迫在 2019 年 11 月將企業業務出售給 Mirantis。
今天,廣受歡迎的開源編排工具 Kubernetes 已經取代了 Docker 為自己設計的利潤核心 Swarm 企業容器編排工具。于是,Docker 苦心經營多年的利潤還是“泡了湯”,之后只能半死不活地掙扎求存。但是,真實的故事要比這復雜得多。近日,外媒 InfoWorld 采訪了數位前任及現任 Docker 員工、開源貢獻者、客戶及行業分析師,試圖從這個分崩離析的故事中找尋真相。
“每件事都只能淺嘗輒止”
嚴重依賴巨額風險投資、競爭格局不斷變化加上各大云巨頭都想分一杯羹,Docker 這家年輕企業面臨的壓力實際遠遠超過大多數人的想象。
Docker 從 2014 年左右開始認真考慮將自身的容器市場領先地位轉化為可變現商業戰略。2014 年與 2015 年,該公司分別用一部分風險投資收購了 Koality 與 Tutum,同時也推出了 Docker 企業支持計劃的首個迭代版本。
這些投資后來催生出了 Docker Hub 等產品——大家可以把它理解成是 Docker 鏡像的 GitHub(目前仍然存在)——最終又成就了 Docker Enterprise。但這些產品一直沒能真正受到企業客戶的認可,他們通常樂于同更成熟的合作伙伴攜手,或者是自主構建而非直接采購解決方案。因此 Docker 只能繼續努力開發客戶真正想要的產品組合。
Docker 創始人 Solomon Hykes(于 2018 年 3 月宣布從 Docker 離職)在接受采訪時指出,“我們一直拿不出優秀的商業產品,原因是我們始終無法集中注意力。我們對每件事都只能淺嘗輒止。單是維持開發者社區的增長并構建一款偉大的商業產品就已經夠難了,當時我們還需要同時開發三到四款。很遺憾,我們在這方面投入了大量精力和金錢,但沒能在任何一條道路上走到終點。”
事后來看,Hykes 認為 Docker 不應該急于開發產品,而最好能更多傾聽客戶的意見。Hykes 感嘆道,“我本來沒必要急著擴大商業產品的規模,反倒該用更多資金從社區中收集洞察見解,并建立起一支理解需求、有能力解決需求的團隊。我們在 2014 年曾經面對轉折點,但我們覺得自己等不及了,所以在急切當中做出了決定。實際上并沒那么急。”
也有人認為 Docker 過早把好東西免費發布了出來。今年年初,谷歌的 Kelsey Hightower 在采訪中表示,“他們相當于是免費推出了自己最有份量的王牌。他們已經解決了問題,而且是全面解決:設計鏡像、構建鏡像、存儲鏡像、運行鏡像。之后還剩什么?沒有空間了呀。”
Hykes 并不同意這樣的觀點。“我認為這說法不對。一般來講,核心開源產品先要創造巨大的增長,之后才能找到可行的商業化機會。很多企業都成功實現了 Docker 的商業化,只是 Docker 自己沒有。Docker 中的很多東西都可以成功商業化,只是 Docker 自己沒做成。”
例如,Red Hat 與 Pivotal(現屬于 VMware)都是 Docker 的早期合作伙伴。他們將 Docker 容器集成至自己的商業 PaaS 產品(分別是 OpenSHift 與 Cloud Foundry)當中,并為開源項目做出了貢獻。
如今回憶起來,Hykes 還覺得他混淆了“社區與生態系統”這兩個概念。Red Hat 根本“不是社區中的一部分,他們也從來不真正在乎 Docker 到底能不能成功。我們錯誤地希望讓 Red Hat 成為社區中的一部分。回想起來,這樣的伙伴關系永遠不可能給 Docker 帶來助益。”
因此,旅游科技企業 Amadeus 等早期客戶從 2015 年起轉向 Red Hat,借此填補 Docker 留下的企業應用空白。其云平臺負責人 Edouard Hubin 表示,“我們直接從先驅用戶轉型為 Red Hat 的主要合作伙伴。我們在這種模式下使用 Docker 開源版本,并由 Red Hat 為我們提供容器技術支持。容器化是顛覆虛擬化的重大技術變革的第一步,而真正改變了企業游戲規則的是容器編排解決方案。很明顯,Docker 沒能壓制住 Kubernetes,最終被迫陷入極為困難的局面。”
Docker 公司前 CEO(2013 年至 2017 年)Ben Golub 則表示,“正所謂「神仙打架、凡人遭殃」。我們都知道,這場風暴的中心其實并不在于 Docker,而是各大云服務商之間的慘烈搏殺。他們都想把 Docker 拉向自己的方向,而選擇忠于我們最初設立的價值觀與業務根基簡直像是在鋼絲上跳舞。”
這位前任 CEO 指出,隨著 Docker 的不斷發展,這一切因素都自然而然造成一種“緊張”的氛圍。Golub 回憶道,“我們希望建立起偉大的社區并通過開發者產品獲利,同時還希望打造一款出色的運營商產品,幫助客戶大規模構建并部署容器。雖然愿景在此,但我們很快意識到自身必須迅速擴大規模,而且拿不出太多時間來平衡社區發展與商業企業轉型這兩條路線……作為一家初創企業,我們每天在匆忙中做出上百個決定,之后就是祈禱自己能少犯點錯。”
與 Kubernetes 談不攏的合作:自負與傲慢
縱觀整個發展歷程,Docker 做出了很多令其追悔莫及的決定,但其中最嚴重的一個當數拒絕接受 Kubernetes 作為首選新興容器編排工具。面對這位新朋友,Docker 擺出了敵對的架勢、一意孤行地推進自己的專有 Docker Swarm 編排工具。
事實上,Docker 公司在 2014 年本來有機會與谷歌 Kubernetes 團隊開展密切合作,并在過程當中把控整個容器生態系統。
Docker 最早一批員工、也是效力時間最長的 Jérôme Petazzoni 表示,“我們最大的錯誤就是錯過了 Kubernetes。當時我們正處于集體心態膨脹的狀態,我們認為 Kubernetes 太復雜了,Swarm 一定能獲得成功。這種錯誤判斷也最終讓我們陷入了集體失敗。”
據多位親歷者證實,雙方在谷歌舊金山辦公室內展開的緊張討論中包含眾多技術細節,兩邊對于容器編排的具體實現方法也都有著明確而強烈的己見。
Kubernetes 聯合創始人、現任 VMware 公司副總裁 Craig McLuckie 表示,他曾提出將 Kubernetes 捐贈給 Docker,但雙方未能達成協議。他在采訪中提到,“兩邊確實有點互相看不起的意思。我們從 Docker 那邊感受不到任何開發經驗,感覺上這群年輕的暴發戶根本不理解分布式系統的管理秘訣。”其他在場人士也提到討論氛圍并不正式,當時的主要訴求就是尋找聯合開發的可能性。但無論如何,兩邊團隊未能達成任何統一的意見,于是最終分道揚鑣。谷歌則在 2014 年的夏季推出了 Kubernetes。
Hykes 也承認,當時 Docker 與谷歌團隊之間的關系非常緊張。“有那么一刻,我們的自負占據了上風。谷歌擁有很多既聰明又富有經驗的人才,但 Docker 這位局外人卻被勝利沖昏了頭腦。我們沒在谷歌工作過、也沒上過斯坦福大學、更沒有計算機科學博士學位。有些人不想讓對方來瞎摻和,于是這就成了一場自我之戰、「反智」之戰。最終,Docker 與 Kubernetes 團隊之間充滿意義的合作就這樣胎死腹中了。”
Docker 公司最早的一批員工、前業務發展與技術聯盟副總裁 Nick Stinemates 表示,“我們本可以讓 Kubernetes 成為 GitHub 之上頭頂 Docker 名號的一流 Docker 項目。事后看來,Swarm 的上市時間太晚,最終引發了無法挽回的失敗。”
“一方面是我們太過自負,另一方面則在于 Kubernetes 幾位聯合創始人 Joe Beda、Brendan Burns 以及 Craig McLuckie 的尖銳態度——他們對于服務層級 API 的需求有著毫不讓步的堅持,但 Docker 在技術上卻并不太關注單一 API。所以我們雙方根本無法達成一致。”Stinemates 說道。
無論如何,Kubernetes 最終贏得了容器編排之戰。
但 Craig McLuckie 也強調,他“不知道 Kubernetes 會發展到今天這個程度。事后分析太容易了,但人在局中時確實沒辦法看得那么清楚。”
高層的裂隙
在 2015 年以 10 億美元的“獨角獸”估值完成 9500 萬美元的巨額 D 輪融資之后,Docker 終于走到了炒作周期的頂峰。
Stinemates 表示,“這輪融資給 Docker 設下了極高的發展期望,也暴露出我們這家企業即將面臨的一系列根本難題。我認為當時擔任公司 CEO 的 Ben Golub 有很多想法跟 Hykes 不同,而且大家都知道兩個人出現了意見分歧。董事會大量參與、努力安撫創始人的情緒,同時也給了 CEO 足夠的回旋余地,希望推動公司走向成功。如果由 Hykes 決定,那么他會堅持以社區為導向的路線創造病毒式傳播。而在 Ben 看來,越早轉向商業運營就越能掌握主動權。這種緊張的局勢,導致我們在兩條路上都沒能走到底。”
這種態勢最終催生出兩個 Docker:面向開發人員、廣受歡迎的命令行工具兼開源項目 Docker 社區版,以及面向希望大規模采用容器的企業客戶的商業工具套件 Docker 企業版。遺憾的是,公司的行動太慢了,沒辦法把二者明確拆分開來并分別提供發展資源。
到 2018 年,裂隙開始顯現。Docker 公司逐漸無法在日益不滿的開源社區及強大的合作伙伴,與要求在生產環境中運行容器的苛刻企業客戶之間找到可行的路線。
不久之后的 2018 年 3 月,Hykes 離開了自己一手創立的公司。他在一篇博文中寫道,“作為創始人,我當然有著復雜的情緒。任何一位創業者都希望自己的公司能夠在自己離去時仍能獲得成功。我的這一天也終于到來,沒想到是以這樣苦樂參半的方式。對創始人來說,放棄一生追逐的夢想確實是種煎熬。”
如今回望過去,Hykes 倒是超脫了出來。“我意識到自己并不屬于這家公司,繼續留下也沒有什么建設性貢獻,所以我離開了……我已經失去了創業的樂趣,所以要么留下當個 CEO、要么直接告別更好。”
面對日益嚴重的資金問題,Docker 公司輪換了新的 CEO——Ben Golub 于 2017 年 5 月讓位于給前 SAP CEO Steve Singh;2019 年 6 月,前 Hortonworks CEO Rob Bearden 又從 Singh 手中接過權柄。
現在 Docker 的定位是什么
在初始投資者 Insight Venture Partners 與 Benchmark Capital 3500 萬美元的現金支撐之下,如今 Docker 的“殘軀”正在七年資深人士 Scott Johnston 的領導下,由 Docker Engine 容器運行時、Docker Hub 鏡像庫以及 Docker Desktop 軟件苦撐著。
Johnston 在采訪中表示,自己正努力“像激光般聚焦開發者的實際需求”,希望以此幫助 Docker 公司回歸本源。“我們認為 Docker 公司比以往任何時候都更強大,憑借的是三個核心:以客戶為中心、統一的上市規劃與更具生態系統友好度的商業模式。”
Johnston 決心不再重蹈過往的覆轍,專注為企業內的核心軟件開發者受眾提供價值。
Johnston 認為,“Docker 2.0”的增長機會在于為安全、經過驗證的鏡像提供新的開發者工具與可信內容,同時為以容器技術為基礎的新興計算模型(例如無服務器、機器學習及物聯網工作負載)持續提供推動力。
更重要的是,Docker 仍然是行業標準的容器運行時,目前 Docker Desktop 擁有 300 萬的可觀裝機量。此外,在 Stack Overflow 的《2021 年開發者調查》報告中,49% 的受訪者表示自己經常使用 Docker Desktop 工具。
盡管如此,人們對 Docker 的未來仍然不太看好。Stinemates 坦言,“直白一點的話,我會質疑如今的 Docker 還算不算真的存在。從職業角度來看,這真的很可悲。我再也沒遇到過能像 Docker 那樣令人興奮、充滿活力而且時刻創造出火花的企業。”
Hykes 則總結道,“公平地說,Docker 沒能把自己的業務潛力轉化成實際價值……至少目前還沒有。但我很高興 Docker 在經歷了這么多年的坎坷之后再次抓住了建立業務的機會。這證明了 Docker 項目的品牌和底子都很厚實。”