首頁 - 關于我們 - 新聞活動 - 爲雲而生的(de)“雲原生”,爲什(shén)麽越來(lái)越重要?

爲雲而生的(de)“雲原生”,爲什(shén)麽越來(lái)越重要?

2020-10-16新聞

IT史上有一個(gè)經典故事。那就是在1943年,IBM的(de)董事長(cháng)老托馬斯·沃森胸有成竹地告訴人(rén)們:未來(lái)5台計算(suàn)機就可(kě)以滿足全世界的(de)市場(chǎng)


現在我們知道,老沃森的(de)預言有一半正在實現。就是世界正在朝著(zhe)“5台計算(suàn)機”的(de)方向演進,當然我們也(yě)知道,老沃森隻是很認真地認爲世界上用(yòng)到計算(suàn)機的(de)地方并不太多(duō),而不是預見到雲計算(suàn)的(de)到來(lái)。


現在,雲計算(suàn)已經無處不在,數字世界成爲我們的(de)栖身之所。而近年來(lái),一個(gè)名爲“雲原生”的(de)概念成爲雲計算(suàn)領域的(de)熱(rè)詞。原本企業家們的(de)對(duì)話(huà)可(kě)能是“你的(de)公司業務上雲了(le)嗎?”,而現在很多(duō)企業家要改口問下(xià):“你的(de)業務上了(le)‘雲原生’了(le)嗎?”


Gartner報告曾指出,到2020年,将有50%的(de)傳統老舊(jiù)應用(yòng)被以雲原生化(huà)的(de)方式改造,到2022年,将有75%的(de)全球化(huà)企業将在生産中使用(yòng)雲原生的(de)容器化(huà)應用(yòng)。在企業上雲的(de)趨勢下(xià),我們正在看到越來(lái)越多(duō)的(de)企業和(hé)開發者開始把業務與技術向雲原生演進。


那麽,什(shén)麽是“雲原生”?爲什(shén)麽“雲原生”正在變得(de)越來(lái)越重要?我們希望通(tōng)過對(duì)“雲原生”概念和(hé)其代表的(de)整體技術思路做(zuò)一次梳理(lǐ),看下(xià)“雲原生”能夠釋放怎樣的(de)技術紅利。

image.png


“雲原生”,來(lái)自于Cloud Native的(de)直譯(其實叫原生雲更順口),拆開來(lái)看,Cloud 就是指其應用(yòng)軟件是在雲端而非傳統的(de)數據中心。Native代表應用(yòng)軟件從一開始就是基于雲環境、專門爲雲端特性而設計,可(kě)充分(fēn)利用(yòng)和(hé)發揮雲平台的(de)彈性+分(fēn)布式優勢,最大(dà)化(huà)釋放雲計算(suàn)生産力。


技術永遠(yuǎn)走在概念之前,在“雲原生”概念正式提出以前,在企業中就已經有了(le)雲原生的(de)實踐。比如,谷歌(gē)在2004年就開始使用(yòng)了(le)容器技術,2006推出的(de)進程容器(Process Container),就是一種具有“雲原生”特征的(de)技術實踐。


業界公認的(de)“雲原生”(Cloud Native)概念是Pivotal公司的(de)Matt Stine于2013年首次提出,然後被一直沿用(yòng)至今并發揚光(guāng)大(dà)。


在Matt那裏,他(tā)把雲原生理(lǐ)解爲一系列雲計算(suàn)技術和(hé)開發管理(lǐ)方法的(de)合集,包括DevOps、持續交付、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)和(hé)12要素(The Twelve-Factor App)等等。

image.png


所以,雲原生從一開始就不是一項技術或一個(gè)産品,而是一種系統化(huà)的(de)方法論和(hé)技術的(de)集合。隻有滿足“上雲”特征,或者說專門面向“雲”設計的(de)應用(yòng),才可(kě)以稱之爲雲原生應用(yòng)。


判斷一個(gè)應用(yòng)是否爲雲原生應用(yòng),就要考察它是否具有“雲”的(de)特性,包括滿足網絡訪問、遠(yuǎn)端部署、可(kě)擴展彈性伸縮、共享、按需使用(yòng)自助服務、高(gāo)可(kě)用(yòng)、可(kě)遠(yuǎn)程監控計費審計、标準化(huà)交付與位置無關等等。嚴格來(lái)講,可(kě)以用(yòng)Matt提出的(de)“12要素”來(lái)作爲判斷雲原生應用(yòng)的(de)準則,其中最主要可(kě)以歸納爲以下(xià)幾點:


1、彈性:彈性計算(suàn)正是雲計算(suàn)的(de)核心特征,也(yě)是雲原生技術中容器的(de)重要特征。雲原生應用(yòng)彈性,應該包括應用(yòng)使用(yòng)資源的(de)彈性和(hé)應用(yòng)實例彈性擴展的(de)彈性。在單實例擴展資源遭遇瓶頸時(shí),可(kě)以配合負載均衡機制實現容器實例的(de)彈性擴展。


2、共享:我們知道雲計算(suàn)可(kě)以分(fēn)爲IaaS、PaaS、SaaS三種類型,分(fēn)别通(tōng)過這(zhè)三種類型實現資源共享、平台共享、應用(yòng)共享。而雲原生應用(yòng)則是部署在IaaS或PaaS層,通(tōng)過SaaS層提供開放式服務。


3、自治:雲原生應用(yòng)的(de)交付一定是按照(zhào)标準交付,可(kě)以在雲端任何支持标準的(de)位置部署,這(zhè)樣就與位置和(hé)環境無關,同時(shí)構建應用(yòng)所需要的(de)依賴包、配置文件和(hé)後端服務等都是和(hé)應用(yòng)構成一個(gè)整體,實現自治管理(lǐ)。使用(yòng)容器的(de)好處就是可(kě)以使得(de)應用(yòng)以标準化(huà)鏡像的(de)方式交付和(hé)運行,而用(yòng)微服務實現雲原生應用(yòng),也(yě)正是符合這(zhè)一自治原則的(de)。


4、按需服務:雲應用(yòng)部署在雲端,客戶可(kě)以根據自己的(de)需求,通(tōng)過網絡訪問,自助使用(yòng)服務,不需要聯系雲應用(yòng)管理(lǐ)人(rén)員(yuán)。通(tōng)常會有個(gè)雲應用(yòng)服務目錄,每個(gè)應用(yòng)服務都有使用(yòng)說明(míng),通(tōng)過服務目錄可(kě)以找到适合自己滿足自身需求的(de)應用(yòng)。


此外,像高(gāo)可(kě)用(yòng)性、敏捷、可(kě)監控審計、可(kě)配置等特性也(yě)都是雲原生應用(yòng)的(de)重要特點,但不再贅述。


總之,雲原生正是雲計算(suàn)區(qū)别于傳統IT架構的(de)根本特征,雲原生應用(yòng)正在成爲雲計算(suàn)主流的(de)服務形式。企業通(tōng)過采用(yòng)基于雲原生的(de)技術和(hé)管理(lǐ)方法而生成的(de)應用(yòng),就能夠持續地享受到“雲計算(suàn)”提供的(de)源源不斷地高(gāo)效服務。


在探討(tǎo)雲原生應用(yòng)的(de)價值前,我們先簡單了(le)解下(xià)雲原生主要使用(yòng)的(de)技術。

image.png

在雲原生概念提出的(de)2013年,Docker也(yě)正式發布。Docker的(de)PaaS提供商DotCloud開源的(de)一個(gè)基于LXC的(de)高(gāo)級容器引擎,幫助開發者把應用(yòng)打包到容器中并進行發布,Docker對(duì)于開發者來(lái)說,就如同用(yòng)集裝箱貨輪來(lái)運輸貨物(wù)一樣,效率又高(gāo)、(容器如同集裝箱)部署靈活性也(yě)比虛拟機更好,一經發布就成爲極爲流行的(de)開源容器發布工具。

image.png


第二年,K8s(kubernetes)項目由google發布。在容器和(hé)Docker誕生之後,開發者自然而然需要工具來(lái)管理(lǐ)這(zhè)些容器和(hé)容器化(huà)引擎。K8s正是用(yòng)來(lái)管理(lǐ)雲平台中多(duō)個(gè)主機上的(de)容器化(huà)的(de)應用(yòng),讓部署容器化(huà)的(de)應用(yòng)簡單和(hé)高(gāo)效。因爲K8s也(yě)是采用(yòng)了(le)開源形式,發布之後也(yě)大(dà)受歡迎。


2015 年,由Google、紅帽、微軟等大(dà)型雲計算(suàn)廠商以及一些開源公司,共同牽頭成立了(le) CNCF雲原生基金會。CNCF成立之初,就有22個(gè)創始會員(yuán),K8s成爲CNCF托管的(de)第一個(gè)開源項目。CNCF的(de)目标就是緻力于培育和(hé)維護一個(gè)廠商中立的(de)開源生态系統,來(lái)推廣雲原生技術。


在2018年,CNCF對(duì)“雲原生”的(de)定義中,給出其代表性技術,包括容器、服務網格、微服務、不可(kě)變基礎設施和(hé)聲明(míng)式API。在容器技術的(de)普及中,Docker實現了(le)容器的(de)可(kě)移植、輕量化(huà)、虛拟化(huà),語言無關,大(dà)大(dà)降低了(le)容器技術的(de)使用(yòng)門檻,而K8s則相當于安排容器發布的(de)管家,解決了(le)容器編排的(de)全周期管理(lǐ),就如同集裝箱貨輪上的(de)船長(cháng)一樣。正是這(zhè)一特性,K8s也(yě)成爲了(le)應用(yòng)上雲的(de)可(kě)移植性等問題,被成爲雲原生技術的(de)基石。

image.png


微服務是什(shén)麽呢(ne)?與微服務相對(duì)應的(de)傳統的(de)以系統爲單位進行部署的(de)單體架構,與之相比,微服務架構就是以獨立的(de)組件爲單位進行部署,是用(yòng)戶可(kě)以感知最小功能集。微服務具有小而專的(de)特性,使得(de)開發、測試、更新效率提高(gāo),從而實現敏捷。從功能上看,微服務可(kě)以成爲Docker的(de)配合搭檔,使得(de)業務流程可(kě)以按需編排,實時(shí)部署。


服務網格( Service Mesh )是指用(yòng)以處理(lǐ)服務與服務之間通(tōng)信的(de)基礎設施層,解決了(le)K8s在微服務的(de)連接、管理(lǐ)和(hé)監控方面的(de)短闆,爲K8s提供更好的(de)應用(yòng)和(hé)服務管理(lǐ),成爲微服務的(de)輔助技術。而不可(kě)變基礎設施相比較于之前的(de)可(kě)變基礎設施,具有更高(gāo)的(de)一緻性和(hé)可(kě)靠性,以及更簡單,更可(kě)預測的(de)部署過程,成爲雲原生應用(yòng)的(de)運維的(de)可(kě)靠基礎架構,而聲明(míng)式API這(zhè)可(kě)以理(lǐ)解爲是k8s的(de)編碼方式。


這(zhè)些技術成爲目前雲原生應用(yòng)主要利用(yòng)的(de)工具。當然,我們也(yě)看到雲原生的(de)技術邊界和(hé)工具集合是處在不斷變動和(hé)更新當中的(de)。基于這(zhè)些特性和(hé)工具的(de)發展,我們看到雲原生應用(yòng)正在成爲互聯網巨頭紛紛布局和(hé)轉向的(de)應用(yòng)方式,也(yě)成爲衆多(duō)中小企業和(hé)開發者選擇應用(yòng)開發的(de)方式。那麽,雲原生技術到底爲何越來(lái)越重要,雲原生應用(yòng)正在發揮哪些價值呢(ne)?

image.png


在回答(dá)雲原生的(de)價值之前,我們先來(lái)問下(xià),爲什(shén)麽企業的(de)應用(yòng)開發要原則上雲,并選擇雲原生技術呢(ne)?


而這(zhè)就涉及到傳統的(de)IT架構方式,将開發、IT運營和(hé)質量保障分(fēn)别設置,各自獨立,開發與運營之間存在著(zhe)信息“鴻溝”,開發人(rén)員(yuán)希望基礎設施更快(kuài)響應,運營人(rén)員(yuán)則要求系統的(de)可(kě)靠性和(hé)安全性,而業務需求則是更快(kuài)地将更多(duō)的(de)特性發布給最終用(yòng)戶使用(yòng)。這(zhè)種被成爲“瀑布式流程”的(de)開發模式,一方面造成了(le)開發上下(xià)遊的(de)信息不對(duì)稱,一方面拉長(cháng)了(le)開發周期和(hé)調整難度。

image.png

但是随著(zhe)用(yòng)戶需求的(de)快(kuài)速增加和(hé)産品叠代周期的(de)不斷壓縮,原有的(de)開發流程不再适合現實的(de)需求,這(zhè)時(shí)工程師們引入了(le)一種新的(de)開發模式——敏捷開發。但是,敏捷開發隻是解決了(le)軟件開發的(de)效率和(hé)版本更新的(de)速度,還(hái)沒有和(hé)運維打通(tōng)。

image.png

出于協調開發和(hé)運維的(de)“信息對(duì)稱”問題,開發者又推出了(le)一套新的(de)方法——DevOps,DevOps可(kě)以看作是開發、技術運營和(hé)質量保障三者的(de)交集,促進之間的(de)溝通(tōng)、協作與整合,從而提高(gāo)開發周期和(hé)效率。

image.png


最終實現的(de)就是“持續交付”,讓軟件産品的(de)産出過程在一個(gè)短周期内完成,保證軟件可(kě)以穩定、持續的(de)保持在随時(shí)可(kě)以發布的(de)狀況。


而雲原生的(de)容器、微服務等技術正是爲DevOps提供了(le)很好的(de)前提條件,保證IT軟件開發實現DevOps開發和(hé)持續交付的(de)關鍵應用(yòng)。換句話(huà)說,能夠實現DevOps和(hé)持續交付,已經成爲雲原生技術價值不可(kě)分(fēn)割的(de)内涵部分(fēn),這(zhè)也(yě)是無論互聯網巨頭企業,還(hái)是衆多(duō)中小應用(yòng)開發公司和(hé)個(gè)人(rén),越來(lái)越多(duō)選擇雲原生技術和(hé)工具的(de)原因。


基于雲原生技術帶給企業的(de)應用(yòng)開發的(de)技術價值,直接來(lái)說就可(kě)以大(dà)幅降低企業IT開發和(hé)運維的(de)成本,從而又提升企業業務的(de)創新效率和(hé)産業價值。


對(duì)于外界而言,我們最直觀的(de)感受就是節假日前在12306搶票(piào)再也(yě)沒有遇到系統崩潰,一些行政網站的(de)體驗也(yě)不那麽差了(le),在購(gòu)物(wù)節的(de)流量高(gāo)峰時(shí),我們的(de)頁面也(yě)很少出現延遲或者刷不出來(lái)的(de)情況了(le),而那些大(dà)型的(de)在線直播、遊戲的(de)體驗也(yě)很流暢了(le)。而這(zhè)些有時(shí)高(gāo)達數以億計的(de)高(gāo)并發流量都得(de)益于雲原生技術的(de)快(kuài)速彈性擴容來(lái)實現。


而對(duì)于企業而言,選擇雲原生技術,也(yě)就不僅僅是降本增效的(de)考慮,而且還(hái)能爲企業創造過去難以想象的(de)業務承載量,對(duì)于企業業務規模和(hé)業務創新來(lái)說,雲原生技術都正在成爲全新的(de)生産力工具。


過去企業看重的(de)辦公樓、廠房(fáng)、IT設施等有形資産,其重要性也(yě)逐漸被這(zhè)些雲端數字資産所超越,企業正通(tōng)過雲原生構建一個(gè)完整的(de)數字孿生的(de)新體系,而這(zhè)才是雲原生技術的(de)真正價值所在。

    image.png

對(duì)于整個(gè)雲計算(suàn)産業的(de)發展本身來(lái)說,雲原生區(qū)别于早先的(de)虛拟機階段,也(yě)完成了(le)一次全新的(de)技術生産力變革,就如同近代能源革命經曆的(de)水(shuǐ)、煤、電的(de)變革導緻能量釋放的(de)密度和(hé)産業規模的(de)數量級躍遷一樣,雲原生也(yě)是從雲技術的(de)應用(yòng)特性和(hé)交付架構上進行了(le)創新性的(de)組合,能夠極大(dà)地釋放雲計算(suàn)的(de)生産能力。


此外,雲原生的(de)變革從一開始自然而然地與開源生态走在了(le)一起,也(yě)意味著(zhe)雲原生技術從一開始就選擇了(le)一條“飛(fēi)輪進化(huà)”式的(de)道路,通(tōng)過技術的(de)易用(yòng)性和(hé)開放性實現快(kuài)速增長(cháng)的(de)正向循環,又通(tōng)過不斷壯大(dà)的(de)應用(yòng)實例來(lái)推動了(le)企業業務全面上雲和(hé)自身技術版圖的(de)不斷完善。


當然,企業業務的(de)全面雲原生化(huà),并非一蹴而就的(de),企業業務的(de)技術架構變革仍然要迎接很多(duō)的(de)挑戰,比如傳統虛拟機模式下(xià)的(de)運維習(xí)慣、原有的(de)IT資産切換、人(rén)員(yuán)的(de)思維和(hé)管理(lǐ)方式變革等。不過,雲原生所帶來(lái)的(de)種種好處,對(duì)于企業的(de)未來(lái)業務發展的(de)優勢,已經成爲衆多(duō)企業的(de)新共識。


可(kě)以預見,更多(duō)企業在經曆了(le)這(zhè)一輪雲原生的(de)變革之痛後,能夠穿越企業的(de)原有成長(cháng)周期,跨越到數字經濟的(de)新賽道,更好地活在即将到來(lái)的(de)全面雲化(huà)的(de)數字時(shí)代。