盤點(diǎn)云原生的五大特征
文末本文轉(zhuǎn)載自微信公眾號「大數(shù)據(jù)DT」,作者劉文懋 江國龍 等 。轉(zhuǎn)載本文請聯(lián)系大數(shù)據(jù)DT公眾號。
近年來,云計算模式逐漸被業(yè)界認(rèn)可和接受。在國內(nèi),包括政府、金融、通信、能源在內(nèi)的眾多領(lǐng)域的大型機(jī)構(gòu)和企業(yè),以及中小企業(yè),均對其托管業(yè)務(wù)的基礎(chǔ)設(shè)施進(jìn)行了不同程度的云化。
但它們大多數(shù)利用開源或商業(yè)的IaaS系統(tǒng)構(gòu)建云計算平臺,只是簡單地將傳統(tǒng)物理主機(jī)、平臺或應(yīng)用轉(zhuǎn)為虛擬化形態(tài)。這種方式所帶來的好處是整體資源的利用更加合理,且集約式的運(yùn)營會降低成本,提升整體運(yùn)營效率和成熟度。但總體而言,這樣的上云實(shí)踐只是“形”上的改變,還遠(yuǎn)沒有達(dá)到“神”上的變化。
在云計算的下半場,應(yīng)該充分利用云計算彈性、敏捷、資源池和服務(wù)化等特性,解決業(yè)務(wù)在開發(fā)、運(yùn)行整個生命周期中遇到的問題。畢竟,業(yè)務(wù)中出現(xiàn)的問題才是真正的問題。
比如,傳統(tǒng)應(yīng)用有升級緩慢、架構(gòu)臃腫、無法快速迭代等問題,于是云原生的概念應(yīng)運(yùn)而生。筆者認(rèn)為云原生就是云計算的下半場,誰贏得云原生的賽道,誰才真正贏得了云計算。
談到云原生,不能不提始終推動云原生發(fā)展的CNCF(Cloud Native Computing Foundation,云原生計算基金會)。CNCF是一個孵化、運(yùn)營云原生生態(tài)的中立組織。截止到2020年,CNCF共有371個開源項(xiàng)目、1402個項(xiàng)目和組織,可以說是一個覆蓋面相當(dāng)廣的云計算組織。
CNCF對云原生的見解是:
云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這些技術(shù)能夠構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動化手段,云原生技術(shù)使工程師能夠輕松地對系統(tǒng)做出頻繁和可預(yù)測的重大變更。
云原生提倡應(yīng)用的敏捷、可靠、高彈性、易擴(kuò)展以及持續(xù)更新。在云原生應(yīng)用和服務(wù)平臺的構(gòu)建過程中,近年興起的容器技術(shù)憑借其高彈性、敏捷的特性以及活躍、強(qiáng)大的社區(qū)支持,成為云原生等應(yīng)用場景下的重要支撐技術(shù)。無服務(wù)、服務(wù)網(wǎng)格等服務(wù)新型部署形態(tài)也在改變云端應(yīng)用的設(shè)計、開發(fā)和運(yùn)行,從而重構(gòu)云上業(yè)務(wù)模式。
不同于以虛擬化為基礎(chǔ)的傳統(tǒng)云計算系統(tǒng),云原生系統(tǒng)一般有如下特征。
01 輕、快、不變的基礎(chǔ)設(shè)施
在云原生環(huán)境中,支撐基礎(chǔ)設(shè)施通常是容器技術(shù)。容器生命周期極短,大部分是以秒或分鐘為單位,占用的資源也比虛擬化小得多,所以容器的最大特點(diǎn)就是輕和快。
而正是因?yàn)槿萜饔休p和快的特點(diǎn),在實(shí)踐中通常不會在容器中安裝或更新應(yīng)用,而是更新更為持久化的鏡像,通過編排系統(tǒng)下載新鏡像并啟動相應(yīng)的容器,并將舊的容器刪除。這種只更新鏡像而不改變?nèi)萜鬟\(yùn)行時的模式稱為不變的基礎(chǔ)設(shè)施(immutable infrastructure)。從不變的基礎(chǔ)設(shè)施就能看出,云原生的運(yùn)營與傳統(tǒng)虛擬機(jī)運(yùn)營方式截然不同。
02 彈性服務(wù)編排
云原生的焦點(diǎn)是業(yè)務(wù),而非基礎(chǔ)設(shè)施,而業(yè)務(wù)的最核心之處是業(yè)務(wù)管理和控制,如服務(wù)暴露、負(fù)載均衡、應(yīng)用更新、應(yīng)用擴(kuò)容、灰度發(fā)布等。服務(wù)編排(orchestration)提供了分布式的計算、存儲和網(wǎng)絡(luò)資源管理功能,可以按需、彈性地控制服務(wù)的位置、容量、版本,監(jiān)控并保證業(yè)務(wù)的可訪問性。
服務(wù)編排對應(yīng)用層隱藏了底層基礎(chǔ)設(shè)施的細(xì)節(jié),但又提供了強(qiáng)大的業(yè)務(wù)支撐能力,以及讓業(yè)務(wù)正常運(yùn)行的容錯、擴(kuò)容、升級的能力,使開發(fā)者可以聚焦業(yè)務(wù)本身的邏輯。
03 開發(fā)運(yùn)營一體化
開發(fā)運(yùn)營一體化(DevOps)是一組將軟件開發(fā)和IT運(yùn)營相結(jié)合的實(shí)踐,目標(biāo)在于縮短軟件開發(fā)周期,并提供高質(zhì)量軟件的持續(xù)交付。雖然DevOps不等同于敏捷開發(fā),但它是敏捷開發(fā)的有益補(bǔ)充,很多DevOps的開發(fā)理念(如自動化構(gòu)建和測試、持續(xù)集成和持續(xù)交付等)來自敏捷開發(fā)。
與敏捷開發(fā)不同的是,DevOps更多的是在消除開發(fā)和運(yùn)營側(cè)的隔閡,聚焦于加速軟件部署。
當(dāng)前,很多云原生應(yīng)用的業(yè)務(wù)邏輯需要及時調(diào)整,功能需要快速豐富和完善,云端軟件快速迭代,云應(yīng)用開發(fā)后需要快速交付部署,因而開發(fā)運(yùn)營一體化深深地融入云原生應(yīng)用整個生命周期中。
04 微服務(wù)架構(gòu)
傳統(tǒng)Web應(yīng)用通常為單體應(yīng)用系統(tǒng),如使用WebSphere、WebLogic或.Net Framework等,從前端到中間件再到后端,各個組件一般集中式地部署在服務(wù)器上。
后來隨著Web Service標(biāo)準(zhǔn)的推出,應(yīng)用以標(biāo)準(zhǔn)的服務(wù)交付,應(yīng)用間通過遠(yuǎn)程服務(wù)調(diào)用(RPC)進(jìn)行交互,形成了面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA),極大提升了應(yīng)用組件的標(biāo)準(zhǔn)化程度和系統(tǒng)集成效率。
在云原生應(yīng)用設(shè)計中,應(yīng)用體量更小,因而傳統(tǒng)單體應(yīng)用的功能被拆解成大量獨(dú)立、細(xì)粒度的服務(wù)。
微服務(wù)架構(gòu)使得每個服務(wù)聚焦在自己的功能上,做到小而精,然后通過應(yīng)用編排組裝,進(jìn)而實(shí)現(xiàn)等價于傳統(tǒng)單體應(yīng)用的復(fù)雜功能。其優(yōu)點(diǎn)是后續(xù)業(yè)務(wù)修改時可復(fù)用現(xiàn)有的微服務(wù),而不需要關(guān)心其內(nèi)部實(shí)現(xiàn),可最大限度地減少重構(gòu)開銷。
05 無服務(wù)模型
無服務(wù)(Serverless)是一種基于代碼和計算任務(wù)執(zhí)行的云計算抽象模型,與之相對的是基于服務(wù)器(虛擬機(jī)、容器)的計算模式。
無服務(wù)在公有云和私有云上都有相應(yīng)的服務(wù),如AWS Lambda、阿里云的函數(shù)計算、Kubernetes的Kubeless、Apache OpenWhisk等。無服務(wù)聚焦在函數(shù)計算,隱藏了底層復(fù)雜的實(shí)現(xiàn)方式,使開發(fā)者能夠聚焦于業(yè)務(wù)本身。
總體而言,云原生真正以云的模式管理和部署資源,用戶看到的將不是一個個IT系統(tǒng)/虛擬主機(jī),而是一個個業(yè)務(wù)單元,開發(fā)者只需要聚焦于業(yè)務(wù)本身??梢哉f微服務(wù)的設(shè)計、無服務(wù)的功能是云原生理念的核心體現(xiàn),而容器、編排、服務(wù)網(wǎng)格均是實(shí)現(xiàn)云原生的支撐技術(shù)。
關(guān)于作者:劉文懋,綠盟科技集團(tuán)首席安全專家、創(chuàng)新中心與星云實(shí)驗(yàn)室負(fù)責(zé)人,計算機(jī)學(xué)會(CCF)理事,中國網(wǎng)絡(luò)空間安全人才教育論壇人才標(biāo)準(zhǔn)認(rèn)證工作組專家,中國網(wǎng)絡(luò)空間新興技術(shù)安全創(chuàng)新論壇理事,云安全聯(lián)盟(CSA)云安全服務(wù)管理工作組聯(lián)合主席。曾發(fā)表著作《軟件定義安全:SDN/NFV新型網(wǎng)絡(luò)的安全揭秘》。
江國龍,資深研究員和架構(gòu)師,主要研究方向包括虛擬化網(wǎng)絡(luò)安全、云計算系統(tǒng)安全、云原生安全、5G/邊緣計算安全等。作為核心人員,參與編寫了多份云安全相關(guān)白皮書、技術(shù)報告、技術(shù)標(biāo)準(zhǔn)。積極活躍于云原生安全社區(qū),熱衷于技術(shù)探索和分享。
浦明,綠盟科技集團(tuán)星云實(shí)驗(yàn)室資深安全研究員,在云原生應(yīng)用安全及安全創(chuàng)新領(lǐng)域有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),長期從事Kubernetes、微服務(wù)、服務(wù)網(wǎng)格安全的研究。在綠盟科技任職期間,參與過安全應(yīng)用商店、安全編排與自動化響應(yīng)(SOAR)平臺、容器安全、安全產(chǎn)品云原生化的架構(gòu)設(shè)計和研發(fā)工作。
阮博男,綠盟科技集團(tuán)星云實(shí)驗(yàn)室安全研究員,主要研究方向?yàn)樵坪吞摂M化安全,積極探索Linux、云、虛擬化及前沿安全攻防技術(shù)。曾作為核心人員參與綠盟科技的SOAR、容器安全、云原生入侵檢測等項(xiàng)目和產(chǎn)品。
葉曉虎,綠盟科技集團(tuán)首席技術(shù)官,先后擔(dān)任國家火炬計劃課題負(fù)責(zé)人、北京市下一代網(wǎng)絡(luò)安全軟件與系統(tǒng)工程技術(shù)研究中心主任、海淀區(qū)重大科技成果產(chǎn)業(yè)化負(fù)責(zé)人等。在信息安全管理、安全架構(gòu)和技術(shù)方面有將近20年的經(jīng)驗(yàn),并且作為安全專家多次參與國家級重大事件網(wǎng)絡(luò)安全保障工作。
本文摘編自《云原生安全:攻防實(shí)踐與體系構(gòu)建》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111691839)