IT 史上有一個經典故事。那就是在 1943 年,IBM 的董事長老托馬斯·沃森胸有成竹地告訴人們:未來 5 臺計算機就可以滿足全世界的市場。
現在我們知道,老沃森的預言有一半正在實現。就是世界正在朝著“5 臺計算機”的方向演進,當然我們也知道,老沃森只是很認真地認為世界上用到計算機的地方并不太多,而不是預見到云計算的到來。
現在,云計算已經無處不在,數字世界成為我們的棲身之所。而近年來,一個名為“云原生”的概念成為云計算領域的熱詞。原本企業家們的對話可能是“你的公司業務上云了嗎?”,而現在很多企業家要改口問下:“你的業務上了‘云原生’了嗎?”
Gartner 報告曾指出,到 2020 年,將有 50%的傳統老舊應用被以云原生化的方式改造,到 2022 年,將有 75%的全球化企業將在生產中使用云原生的容器化應用。在企業上云的趨勢下,我們正在看到越來越多的企業和開發者開始把業務與技術向云原生演進。
那么,什么是“云原生”?為什么“云原生”正在變得越來越重要?我們希望通過對“云原生”概念和其代表的整體技術思路做一次梳理,看下“云原生”能夠釋放怎樣的技術紅利。
云原生與云原生應用
“云原生”,來自于 Cloud Native 的直譯(其實叫原生云更順口),拆開來看,Cloud 就是指其應用軟件是在云端而非傳統的數據中心。Native 代表應用軟件從一開始就是基于云環境、專門為云端特性而設計,可充分利用和發揮云平臺的彈性+分布式優勢,最大化釋放云計算生產力。
技術永遠走在概念之前,在“云原生”概念正式提出以前,在企業中就已經有了云原生的實踐。比如,谷歌在 2004 年就開始使用了容器技術,2006 推出的進程容器(Process Container),就是一種具有“云原生”特征的技術實踐。
業界公認的“云原生”(Cloud Native)概念是 Pivotal 公司的 Matt Stine 于 2013 年首次提出,然后被一直沿用至今并發揚光大。
在 Matt 那里,他把云原生理解為一系列云計算技術和開發管理方法的合集,包括 DevOps、持續交付、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)和 12 要素(The Twelve-Factor App)等等。
所以,云原生從一開始就不是一項技術或一個產品,而是一種系統化的方法論和技術的集合。只有滿足“上云”特征,或者說專門面向“云”設計的應用,才可以稱之為云原生應用。
判斷一個應用是否為云原生應用,就要考察它是否具有“云”的特性,包括滿足網絡訪問、遠端部署、可擴展彈性伸縮、共享、按需使用自助服務、高可用、可遠程監控計費審計、標準化交付與位置無關等等。嚴格來講,可以用 Matt 提出的“12 要素”來作為判斷云原生應用的準則,其中最主要可以歸納為以下幾點:
1、彈性:彈性計算正是云計算的核心特征,也是云原生技術中容器的重要特征。云原生應用彈性,應該包括應用使用資源的彈性和應用實例彈性擴展的彈性。在單實例擴展資源遭遇瓶頸時,可以配合負載均衡機制實現容器實例的彈性擴展。
2、共享:我們知道云計算可以分為 IaaS、PaaS、SaaS 三種類型,分別通過這三種類型實現資源共享、平臺共享、應用共享。而云原生應用則是部署在 IaaS 或 PaaS 層,通過 SaaS 層提供開放式服務。
3、自治:云原生應用的交付一定是按照標準交付,可以在云端任何支持標準的位置部署,這樣就與位置和環境無關,同時構建應用所需要的依賴包、配置文件和后端服務等都是和應用構成一個整體,實現自治管理。使用容器的好處就是可以使得應用以標準化鏡像的方式交付和運行,而用微服務實現云原生應用,也正是符合這一自治原則的。
4、按需服務:云應用部署在云端,客戶可以根據自己的需求,通過網絡訪問,自助使用服務,不需要聯系云應用管理人員。通常會有個云應用服務目錄,每個應用服務都有使用說明,通過服務目錄可以找到適合自己滿足自身需求的應用。
此外,像高可用性、敏捷、可監控審計、可配置等特性也都是云原生應用的重要特點,但不再贅述。
總之,云原生正是云計算區別于傳統 IT 架構的根本特征,云原生應用正在成為云計算主流的服務形式。企業通過采用基于云原生的技術和管理方法而生成的應用,就能夠持續地享受到“云計算”提供的源源不斷地高效服務。
在探討云原生應用的價值前,我們先簡單了解下云原生主要使用的技術。
持續進化中的云原生技術
在云原生概念提出的 2013 年,Docker 也正式發布。Docker 的 PaaS 提供商 DotCloud 開源的一個基于 LXC 的高級容器引擎,幫助開發者把應用打包到容器中并進行發布,Docker 對于開發者來說,就如同用集裝箱貨輪來運輸貨物一樣,效率又高、(容器如同集裝箱)部署靈活性也比虛擬機更好,一經發布就成為極為流行的開源容器發布工具。
第二年,K8s(kubernetes)項目由 google 發布。在容器和 Docker 誕生之后,開發者自然而然需要工具來管理這些容器和容器化引擎。K8s 正是用來管理云平臺中多個主機上的容器化的應用,讓部署容器化的應用簡單和高效。因為 K8s 也是采用了開源形式,發布之后也大受歡迎。
2015 年,由 Google、紅帽、微軟等大型云計算廠商以及一些開源公司,共同牽頭成立了 CNCF 云原生基金會。CNCF 成立之初,就有 22 個創始會員,K8s 成為 CNCF 托管的第一個開源項目。CNCF 的目標就是致力于培育和維護一個廠商中立的開源生態系統,來推廣云原生技術。
在 2018 年,CNCF 對“云原生”的定義中,給出其代表性技術,包括容器、服務網格、微服務、不可變基礎設施和聲明式 API。在容器技術的普及中,Docker 實現了容器的可移植、輕量化、虛擬化,語言無關,大大降低了容器技術的使用門檻,而 K8s 則相當于安排容器發布的管家,解決了容器編排的全周期管理,就如同集裝箱貨輪上的船長一樣。正是這一特性,K8s 也成為了應用上云的可移植性等問題,被成為云原生技術的基石。
(K8s 架構)
微服務是什么呢?與微服務相對應的傳統的以系統為單位進行部署的單體架構,與之相比,微服務架構就是以獨立的組件為單位進行部署,是用戶可以感知最小功能集。微服務具有小而專的特性,使得開發、測試、更新效率提高,從而實現敏捷。從功能上看,微服務可以成為 Docker 的配合搭檔,使得業務流程可以按需編排,實時部署。
服務網格( Service Mesh )是指用以處理服務與服務之間通信的基礎設施層,解決了 K8s 在微服務的連接、管理和監控方面的短板,為 K8s 提供更好的應用和服務管理,成為微服務的輔助技術。而不可變基礎設施相比較于之前的可變基礎設施,具有更高的一致性和可靠性,以及更簡單,更可預測的部署過程,成為云原生應用的運維的可靠基礎架構,而聲明式 API 這可以理解為是 k8s 的編碼方式。
這些技術成為目前云原生應用主要利用的工具。當然,我們也看到云原生的技術邊界和工具集合是處在不斷變動和更新當中的。基于這些特性和工具的發展,我們看到云原生應用正在成為互聯網巨頭紛紛布局和轉向的應用方式,也成為眾多中小企業和開發者選擇應用開發的方式。那么,云原生技術到底為何越來越重要,云原生應用正在發揮哪些價值呢?
云原生,企業數字化升級的全新生產力
在回答云原生的價值之前,我們先來問下,為什么企業的應用開發要原則上云,并選擇云原生技術呢?
而這就涉及到傳統的 IT 架構方式,將開發、IT 運營和質量保障分別設置,各自獨立,開發與運營之間存在著信息“鴻溝”,開發人員希望基礎設施更快響應,運營人員則要求系統的可靠性和安全性,而業務需求則是更快地將更多的特性發布給最終用戶使用。這種被成為“瀑布式流程”的開發模式,一方面造成了開發上下游的信息不對稱,一方面拉長了開發周期和調整難度。
但是隨著用戶需求的快速增加和產品迭代周期的不斷壓縮,原有的開發流程不再適合現實的需求,這時工程師們引入了一種新的開發模式——敏捷開發。但是,敏捷開發只是解決了軟件開發的效率和版本更新的速度,還沒有和運維打通。
出于協調開發和運維的“信息對稱”問題,開發者又推出了一套新的方法——DevOps,DevOps 可以看作是開發、技術運營和質量保障三者的交集,促進之間的溝通、協作與整合,從而提高開發周期和效率。
最終實現的就是“持續交付”,讓軟件產品的產出過程在一個短周期內完成,保證軟件可以穩定、持續的保持在隨時可以發布的狀況。
而云原生的容器、微服務等技術正是為 DevOps 提供了很好的前提條件,保證 IT 軟件開發實現 DevOps 開發和持續交付的關鍵應用。換句話說,能夠實現 DevOps 和持續交付,已經成為云原生技術價值不可分割的內涵部分,這也是無論互聯網巨頭企業,還是眾多中小應用開發公司和個人,越來越多選擇云原生技術和工具的原因。
基于云原生技術帶給企業的應用開發的技術價值,直接來說就可以大幅降低企業 IT 開發和運維的成本,從而又提升企業業務的創新效率和產業價值。
對于外界而言,我們最直觀的感受就是節假日前在 12306 搶票再也沒有遇到系統崩潰,一些行政網站的體驗也不那么差了,在購物節的流量高峰時,我們的頁面也很少出現延遲或者刷不出來的情況了,而那些大型的在線直播、游戲的體驗也很流暢了。而這些有時高達數以億計的高并發流量都得益于云原生技術的快速彈性擴容來實現。
而對于企業而言,選擇云原生技術,也就不僅僅是降本增效的考慮,而且還能為企業創造過去難以想象的業務承載量,對于企業業務規模和業務創新來說,云原生技術都正在成為全新的生產力工具。
過去企業看重的辦公樓、廠房、IT 設施等有形資產,其重要性也逐漸被這些云端數字資產所超越,企業正通過云原生構建一個完整的數字孿生的新體系,而這才是云原生技術的真正價值所在。
對于整個云計算產業的發展本身來說,云原生區別于早先的虛擬機階段,也完成了一次全新的技術生產力變革,就如同近代能源革命經歷的水、煤、電的變革導致能量釋放的密度和產業規模的數量級躍遷一樣,云原生也是從云技術的應用特性和交付架構上進行了創新性的組合,能夠極大地釋放云計算的生產能力。
此外,云原生的變革從一開始自然而然地與開源生態走在了一起,也意味著云原生技術從一開始就選擇了一條“飛輪進化”式的道路,通過技術的易用性和開放性實現快速增長的正向循環,又通過不斷壯大的應用實例來推動了企業業務全面上云和自身技術版圖的不斷完善。
當然,企業業務的全面云原生化,并非一蹴而就的,企業業務的技術架構變革仍然要迎接很多的挑戰,比如傳統虛擬機模式下的運維習慣、原有的 IT 資產切換、人員的思維和管理方式變革等。不過,云原生所帶來的種種好處,對于企業的未來業務發展的優勢,已經成為眾多企業的新共識。
可以預見,更多企業在經歷了這一輪云原生的變革之痛后,能夠穿越企業的原有成長周期,跨越到數字經濟的新賽道,更好地活在即將到來的全面云化的數字時代。
責任編輯:pj
-
云計算
+關注
關注
39文章
7852瀏覽量
137681 -
容器
+關注
關注
0文章
499瀏覽量
22091 -
數字化
+關注
關注
8文章
8836瀏覽量
62027
發布評論請先 登錄
相關推薦
評論