《架構師》2019年7月

卷首語: 2019年,是屬於容器技術的時代

作者:阿里巴巴高級技術專家 張磊

2019 年,全世界的開發人員都開始習慣用容器測試軟件,用容器做線上發佈,開始對容器化軟件構建和交付流程習以爲常。全世界的架構師們都在對“雲原生”侃侃而談,描繪多雲時代的應用治理方式,不經意間就把 “sidecar” 這種容器組織方式當做了默認選項。在“雲”已經成爲了大衆基礎設施的今天,我們已經習慣把“容器“當做現代軟件基礎設施的基本依賴,這就像我們每天打開 Eclipse 編寫 Java 代碼一樣自然。

往回倒數兩年, 整個容器生態都還在圍着 Docker 公司爭得不可開交,看起來完全沒有定數。當時的國內很多公有云廠商,甚至都沒有正式的 Kubernetes 服務。在那個時候,要依託容器技術在雲上託管完整的軟件生命週期,可以說是相當前沿的探索。誰能想到短短兩年之後,容器這個站在巨人肩膀上的設計,就真的成爲技術人員日常工作的一部分呢?

伴隨着容器技術普及到“千家萬戶”,我們在這兩年期間所經歷的,是現代軟件交付形式的一次重要變革。

如果不是親歷者的話,你很難想象 PaaS 乃至雲計算產業的發展,會如何因爲 2013 年一個創業公司開源項目的發佈而被徹底改變。時至今日,容器鏡像已經成爲了現代軟件交付與分發的事實標準。然而, Docker 公司卻並沒有在這個領域取得同樣的領導地位。這裏的原因相比大家已經瞭然於心:在容器技術取得巨大的成功之後,Docker 公司在接下來的“編排之爭”中犯下了錯誤。Docker 公司憑藉“容器鏡像”這個巧妙的創新已經成功解決了“應用交付”所面臨的最關鍵的技術問題。但在如何定義和管理應用這個更爲上層的問題上,容器技術並不是“銀彈”。

而相比於 Docker 體系以“單一容器”爲核心的應用定義方式,Kubernetes 項目則提出了一整套容器化設計模式和對應的控制模型,從而明確瞭如何真正以容器爲核心構建能夠真正跟開發者對接起來的應用交付和開發範式。

Kubernetes 項目一直在做的,其實是在進一步清晰和明確“應用交付”這個亙古不變的話題。只不過,相比於交付一個容器和容器鏡像, Kubernetes 項目正在嘗試明確的定義雲時代“應用”的概念。在這裏,應用是一組容器的有機組合,同時也包括了應用運行所需的網絡、存儲的需求的描述。而像這樣一個“描述”應用的 YAML 文件,放在 etcd 裏存起來,然後通過控制器模型驅動整個基礎設施的狀態不斷地向用戶聲明的狀態逼近,就是 Kubernetes 的核心工作原理了。

未來:應用交付的革命不會停止

在 2019 年這個軟件交付已經被 Kubernetes 和容器重新定義的時間點上,Kubernetes 項目正在繼續嘗試將應用的定義、管理和交付推向一個全新的高度。我們其實已經看到了現有模型的一些問題與不足之處,尤其是聲明式 API 如何更好的與用戶的體驗達成一致。

我們能夠看到,整個雲計算生態正在嘗試重新思考 PaaS 的故事。我們還能夠看到,雲的邊界正在被技術和開源迅速的抹平。我們常常把雲比作“水、電、煤”,並勸誡開發者不應該關心“發電”和“燒煤”的事情。在未來的雲的世界裏,開發者完全無差別的交付自己的應用到世界任何一個地方,很有可能會像現在我們會把電腦插頭插在房間裏任何一個插孔裏那樣自然。這也是爲什麼,我們看到越來越多的開發者在討論“雲原生”。

我們無法預見未來,但代碼與技術演進的正在告訴我們這樣一個事實:未來的軟件一定是生長於雲上的。這將會是“軟件交付”這個本質問題的不斷自我革命的終極走向,也是“雲原生”理念的最核心假設。而所謂“雲原生”,實際上就是在定義一條能夠讓應用最大程度利用雲的能力、發揮雲的價值的最佳路徑。在這條路徑上,脫離了“應用”這個載體,“雲原生”就無從談起;容器技術,則是將這個理念落地、將軟件交付的革命持續進行下去的重要手段之一。

至於 Kubernetes 項目,它的確是整個“雲原生”理念落地的核心與關鍵所在。但更爲重要的是,在這次關於“軟件”的技術革命中,Kubernetes 並不需要嘗試在 PaaS 領域裏分到一杯羹:它會成爲連通“雲”與“應用”的高速公路,以標準、高效的方式將“應用”快速交付到世界上任何一個位置。而這裏的交付目的地,既可以是最終用戶,也可以是 PaaS/Serverless 從而催生出更加多樣化的應用託管生態

“雲”的價值,一定會迴歸到應用本身。

目錄

熱點 | Hot

華爲鴻蒙或將提前推出,谷歌被曝希望與華爲繼續合作

交付程序不給錢,程序員一怒之下開源客戶項目代碼

理論派 | Theory

改進TCP,阿里提出高速雲網絡擁塞控制協議HPCC

推薦文章 | Article

蘋果發佈全新SwiftUI框架:一次編碼,五端通用

阿里P10、騰訊T4、華爲18,互聯網公司職級、薪資、股權大揭祕

觀點 | Opinion

Hadoop氣數已盡:逃離複雜性,擁抱雲計算

七牛雲許式偉:我所理解的架構是什麼

特別專欄 | Column

Kubernetes 已足夠成熟?詳細解讀 1.15 新版本的多項關鍵特性

利用CSI和Kubernetes實現動態擴容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章