小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Docker 興衰記:關于開源的一些思考

 張問驊 2021-05-10

Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called “dockershim” which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. (#94624, @dims) [SIG Node]

上述引言來自 Kubernetes 1.120 的 Release Note,標志著 Docker 的喪鐘進入尾聲。事實上,當 2018 年 Docker 創(chuàng)始人 CTO Solomon Hykes 宣布離職時,Docker 和公司的命運已是江河日下。在復雜商業(yè)利益的驅(qū)使和一意孤行的錯誤決策下,從 2016 年至今誕生了 CRI、OCI 等標準和 Containerd、Runc、Docker-shim、CRI-O 等眼花繚亂卻、功能盤龍交錯重疊的項目,Kubelet 和容器運行時的調(diào)用鏈路復雜冗長且多次變化,整個生態(tài)為此苦不堪言。

回想 1981 年 IBM 推出 PC 時,采用了非常開放的標準,凝聚了硬件和軟件的生態(tài),迅速占據(jù)市場第一把交椅。開放也導致了廣大廉價而有競爭力的兼容機出現(xiàn),漸漸蠶食 IBM 的市場份額。于是 1987 年 IBM 從開放走向封閉,推出一款不再兼容外部硬件的機器 IBM PS/2,徹底走上了一條不歸路,失去市場的同時失去了 PC 產(chǎn)業(yè)話語權(quán)。讓我們再次回顧 Docker 從一鳴驚人再到由盛而衰的歷史,并思考開源商業(yè)、技術和文化和內(nèi)在邏輯和一些教訓。

圖片


小船出海

PaaS 歷來是兵家必爭之地,通過類似 Container 技術將應用封裝并交由編排系統(tǒng)管理,將給 DevOps 帶來巨大的效率和成本優(yōu)化。2002 年誕生的 linux namespace 和 2006 年誕生的 cgroup 為此奠定基本技術基礎,此后 Google 和百度依次建設了 Borg 和 Matrix 平臺,并取得巨大的成功;與此同時開源界也誕生了 Cloud Foundry 等項目。但在外人看來,Borg 和 Matrix 只聞其名,未見其實;而 Cloud Foundry 一直不慍不火,未得到廣泛的普及。

究其根本原因乃是對應用(交付)的標準抽象的不過友好。以 Cloud Foundry 為例,它針對每種語言指定了一系列的標準,比如目錄、可執(zhí)行文件、二進制等等。這用在內(nèi)部場景用無可厚非,絕大部分上規(guī)模的公司都會為應用設定一系列的規(guī)則,比如編碼、配置、打包、運行環(huán)境和依賴,并形成各自的特色的標準;但是放眼整個生態(tài),這種要求過于苛刻而缺乏普及性。Docker 真正革命之處在于開創(chuàng)了基于鏡像交付應用的先河,它把應用的代碼、配置和所有用戶態(tài)層次依賴的整合成一個鏡像,保證了運行環(huán)境的高度閉環(huán)和統(tǒng)一,對宿主機的依賴僅限于內(nèi)核,而內(nèi)核的 posix 接口非常穩(wěn)定和兼容,所以保證了 docker 鏡像具有一次制作,四處運行的強大兼容強大威力。

2013 年,成立三年的 dotCloud(Docker 公司前身) 在 PaaS 平臺產(chǎn)品商業(yè)化走到窮途末路時選擇了開源核心引擎 Docker,換來的是柳暗花明又一村。這種輕量級虛擬化、語音無關、可移植性強的技術給出完美的應用交付標準,直擊用戶痛點,立馬一石激起千層浪。這一年,Docker 迅速成長為云計算領域最受歡迎的項目,諸多巨頭逐步增加了對 docker 的支持,很多應用軟件的交付也提供了 docker 鏡像;這一年,dotCloud 更名為 Docker,注冊了 Docker 商標,出售了 PaaS 平臺產(chǎn)品,全力轉(zhuǎn)向 Docker 技術研發(fā)和生態(tài)建設。

此后的兩年里,Docker 的發(fā)展可謂順風順水,生態(tài)版圖持續(xù)擴大,從 linux 到 windows,從云計算到廣義的應用市場,已儼然成為容器的標準。即使 Google 和 CoreOS 強勢推出競品 lmctfy 和 rkt,面對已成氣候的 Docker 毫無招架之力。伴隨生態(tài)的成功,Docker 前后拿下 4000萬刀和 9500萬刀的兩輪重要融資補充糧草。當 2016 年夏天 DockerCon 舉辦時,Docker Hub 鏡像總下載數(shù)量高達 40 多億次,甚至一度傳出微軟欲以 40 億美金收購這家只有數(shù)百人的公司!

群雄逐鹿

技術的持續(xù)發(fā)展離不開商業(yè)化的支持,Docker 作為一家創(chuàng)業(yè)公司從出身就背負著商業(yè)化的根本任務。盡管取得生態(tài)和技術上的巨大成功,帶來了普世的巨大價值,卻面臨著商業(yè)化的巨大挑戰(zhàn)。和其它通用而基礎的開源技術一樣,比如操作系統(tǒng) linux、編譯工具 gcc、虛擬化技術 qemu-kvm,開源決定了 Liscense 之路不通,而單一的技術無法帶來服務的溢價。打造 PaaS 平臺層次的產(chǎn)品便成最具備可行性之路,和 2013 年賣掉 PaaS 平臺相反,2014 年 Docker 收購 Fig 項目,以此推出編排產(chǎn)品 Docker Swarm,拉開了編排領域群雄逐鹿的帷幕。

開源的長河充滿了合作和競爭,推動著生態(tài)不斷發(fā)展和演進。這一年,Mesos 背后的公司 Mesospheres 推出 Marathon 項目;Google 基于 Borg 推出開源版本的編排項目 Kubernetes。和 Google、Redhat 等深諳道理的老玩家相比,年少氣盛的 Docker 公司顯得不易相處,2014 年 Docker 項目最早積極貢獻者 CoreOS 不久后分道揚鑣,和 Google、Redhat 創(chuàng)建了 OCI 規(guī)范,定義了容器運行時標準,妥協(xié)之下 Docker 公司從 libcontainer 捐獻出 RunC 項目作為符合 OCI 標準的容器運行時。2015 年 Google、Redhat 等共同發(fā)起了 CNFC 基金會,并迅速增加了 Prometheus、Etcd、Helm、CNI 等眾多知名項目,生態(tài)發(fā)展的風向標逐步由 Docker 轉(zhuǎn)向 Kubernetes,開始建造了堅固的護城河。

當時間來到 2016 年時,一切塵埃落定,遠去了鼓角爭鳴,Kubernetes 已成了容器編排領域的絕對標準。和暴發(fā)戶 Docker 如日中天變得專橫獨斷相比,K8S 民主化的風格和 Plugin 的架構(gòu)迅速的吸引了周邊的生態(tài)伙伴;其次 K8S 源自于 Google 基礎設施領域多年的寶貴實踐和升華,其設計的理念和抽象形態(tài)更貼近本質(zhì)的需求。

即使 K8S 贏得編排的標準,由于 Docker 已成容器的標準,所以早期的 Kubelet 內(nèi)嵌 Docker 客戶端,默認其為容器的運行時,因而從 Kubelet 到容器運行時的代碼整體比較路徑簡短優(yōu)雅 —— 容器的歸容器、編排的歸編排。但之后 Docker 公司祭出以自殺八百、損敵一千的姿態(tài)做出損人不利己的騷招。在面對 Swarm 的失敗后,由于 Docker 名聲和美譽廣為人知,于是公司將 PaaS 平臺的能力沉淀到名為 Docker 產(chǎn)品(甚至集成了 K8S),并將 docker 項目改名為 moby,壓上名氣這張最后的籌碼孤注一擲。

群雄逐鹿過程中,Docker 和 K8S 之間的糾葛埋下廣大同行深受其苦的坑,從 Kubelet 到運行時主要經(jīng)歷了如下調(diào)用鏈路的變更,誕生了一堆臨時和更多湊熱鬧的項目,給廣大的開發(fā)者帶來沉重的心智負擔,留下一地雞毛。

+-----------------------+    +---------+    +-----------+
| Kubelet(Dockerclient) | -> | Dockerd | -> | Container |
+-----------------------+    +---------+    +-----------+

+--------------+    +-------------+    +---------+    +------------+    +------+    +------------+
| Kubelet(CRI) | -> | Docker-shim | -> | Dockerd | -> | Containerd | -> | Runc | -> | Containers |
+--------------+    +-------------+    +---------+.   +------------+    +------+    +------------+

+--------------+    +----------------+    +------------+    +------+    +-----------+
| Kubelet(CRI) | -> | CRI-Containerd | -> | Containerd | -> | RunC | -> | Container | 
+--------------+    +----------------+    +------------+    +------+    +-----------+

+--------------+    +------------+    +------+    +-----------+
| Kubelet(CRI) | -> | Containerd | -> | RunC | -> | Container | 
+--------------+    +------------+    +------+    +-----------+

最佳選擇

有些歷史被成為絕唱,那是因為沒如果和重來。但是似曾相識的故事總是在不斷的輪回,上世紀八十年代,藍色巨人坐擁擁無人可撼動的市場霸主地位,當它試圖以一己之力關閉兼容機的大門時,換來了作繭自縛。巔峰時期的 Docker 在生態(tài)上雖然取得了巨大的成功,但它的地位和當年的 IBM 絲毫不能相提并論,當然,這也是馬后炮式的分析。

讓我們站在 Docker 的曾經(jīng)的巔峰上,俯瞰整個應用的交付標準唯我獨尊,Docker hub 囊括了海量應用鏡像,和下一個 “vmware” 相比,微軟拋出區(qū)區(qū) 40 億美金收購的橄欖枝又是多么的微不足道,我想換成任何人都愿意躍躍欲試,放手一搏向 PaaS 平臺進軍。當錯失閃爍瞬間的機會后,便是土崩瓦解般的故事,2018 年創(chuàng)始人兼 CTO 離職,2019 年裁員,2020 年 dockerhub 離奇的推出限速下載。

從商業(yè)的視角來看,基礎而通用的開源技術項目本身價值和需求重大,但是成功的商業(yè)故事卻寥寥無幾。開源注定賣 License 之路不通,單一的基礎技術很難帶來服務的溢價,技術培訓、二次開發(fā)的收益則是杯水車薪,而捐助等對于一家數(shù)百人的公司更天方夜譚,所以特別對于基礎通用的技術來說,開源幾乎不可能成為商業(yè)模式。但是從另外一個角度來說,開源更是一種市場策略,它可以快速試錯,推廣產(chǎn)品和思路,獲得用戶粘性,構(gòu)建生態(tài)的護城河。如果順著這個思路,從短期盈利的價值來看,Docker 公司賣給微軟和 AWS 是中策,背靠著金主爸爸和強大的云計算服務;從長遠的生態(tài)和普世價值角度來看,我認為 Redhat 收購 Docker 應該是最佳的選擇,以 Redhat 的智慧,或?qū)砣轿坏墓糙A和持久的繁榮。可以說,對于絕大部分做基礎通用的開源技術產(chǎn)品的創(chuàng)業(yè)公司來說,被巨頭收購已是最好的結(jié)局。

正如《大教堂和集市》所言:“開放式的文化會最終勝利,這或許不是因為”開放”在道德上正確,或者”封閉”在道德上錯誤,而只是因為開放式合作可以在一個問題上投入多幾個數(shù)量級的技術工時,封閉的世界無法贏得這樣的競爭?!碑?Docker 開源時,它以新穎的理念解決應用交付的巨大痛點,描繪了 PaaS 的新藍圖,吸引了廣泛的合作者。但是 Docker 的管理者既沒有充分的識別和吸收他人優(yōu)秀的想法,更沒有良好的人際關系、交流技能和人格魅力。先后和 CoreOS、Redhat、Google 等開源巨頭分道揚鑣,最后又為一己之利和生態(tài)背離。開源生態(tài)的發(fā)展如一股大洪流滾滾向前,只能順勢和引領,不可阻擋,妄圖借壟斷之勢損壞普遍大眾的利益的行為只會被這股洪流沖垮和拋棄。

回首這八年,Docker 已到棺蓋定論之時,它掀起了一場轟轟烈烈的 PaaS 革命,給 DevOps、云原生等帶來了巨大的理念突破和奠定技術基礎;而管理者的戰(zhàn)略和戰(zhàn)術的種種失誤措施良機,接連敗北,丟失了商業(yè)市場,失去了生態(tài)和名聲,拉下一地雞毛。數(shù)年以后,容器一詞依舊盛行,而 Docker 或?qū)o人提及,唯有一聲嘆息。

來源:

http:///%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3/2021/03/09/docker_story.html

圖片

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多