官术网_书友最值得收藏!

1.1 云原生:云計(jì)算下半場

近年來,云計(jì)算模式逐漸被業(yè)界認(rèn)可和接受。在國內(nèi),包括政府、金融、通信、能源在內(nèi)的眾多領(lǐng)域的大型機(jī)構(gòu)和企業(yè),以及中小企業(yè),均對(duì)其托管業(yè)務(wù)的基礎(chǔ)設(shè)施進(jìn)行了不同程度的云化。但它們大多數(shù)利用開源或商業(yè)的IaaS系統(tǒng)構(gòu)建云計(jì)算平臺(tái),只是簡單地將傳統(tǒng)物理主機(jī)、平臺(tái)或應(yīng)用轉(zhuǎn)為虛擬化形態(tài)。這種方式所帶來的好處是整體資源的利用更加合理,且集約式的運(yùn)營會(huì)降低成本,提升整體運(yùn)營效率和成熟度。但總體而言,這樣的上云實(shí)踐只是“形”上的改變,還遠(yuǎn)沒有達(dá)到“神”上的變化。

在云計(jì)算的下半場,應(yīng)該充分利用云計(jì)算彈性、敏捷、資源池和服務(wù)化等特性,解決業(yè)務(wù)在開發(fā)、運(yùn)行整個(gè)生命周期中遇到的問題。畢竟,業(yè)務(wù)中出現(xiàn)的問題才是真正的問題。

比如,傳統(tǒng)應(yīng)用有升級(jí)緩慢、架構(gòu)臃腫、無法快速迭代等問題,于是云原生的概念應(yīng)運(yùn)而生。筆者認(rèn)為云原生就是云計(jì)算的下半場,誰贏得云原生的賽道,誰才真正贏得了云計(jì)算。

談到云原生,不能不提始終推動(dòng)云原生發(fā)展的CNCF(Cloud Native Computing Foundation,云原生計(jì)算基金會(huì))。CNCF是一個(gè)孵化、運(yùn)營云原生生態(tài)的中立組織。截止到2020年,CNCF共有371個(gè)開源項(xiàng)目、1402個(gè)項(xiàng)目和組織[1],可以說是一個(gè)覆蓋面相當(dāng)廣的云計(jì)算組織。

CNCF對(duì)云原生的見解[3]是:“云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動(dòng)態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這些技術(shù)能夠構(gòu)建容錯(cuò)性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動(dòng)化手段,云原生技術(shù)使工程師能夠輕松地對(duì)系統(tǒng)做出頻繁和可預(yù)測的重大變更。”

云原生提倡應(yīng)用的敏捷、可靠、高彈性、易擴(kuò)展以及持續(xù)更新。在云原生應(yīng)用和服務(wù)平臺(tái)的構(gòu)建過程中,近年興起的容器技術(shù)憑借其高彈性、敏捷的特性以及活躍、強(qiáng)大的社區(qū)支持,成為云原生等應(yīng)用場景下的重要支撐技術(shù)。無服務(wù)、服務(wù)網(wǎng)格等服務(wù)新型部署形態(tài)也在改變?cè)贫藨?yīng)用的設(shè)計(jì)、開發(fā)和運(yùn)行,從而重構(gòu)云上業(yè)務(wù)模式。

不同于以虛擬化為基礎(chǔ)的傳統(tǒng)云計(jì)算系統(tǒng),云原生系統(tǒng)一般有如下特征。

1.輕、快、不變的基礎(chǔ)設(shè)施

在云原生環(huán)境中,支撐基礎(chǔ)設(shè)施通常是容器技術(shù)。容器生命周期極短,大部分是以秒或分鐘為單位,占用的資源也比虛擬化小得多,所以容器的最大特點(diǎn)就是輕和快。而正是因?yàn)槿萜饔休p和快的特點(diǎn),在實(shí)踐中通常不會(huì)在容器中安裝或更新應(yīng)用,而是更新更為持久化的鏡像,通過編排系統(tǒng)下載新鏡像并啟動(dòng)相應(yīng)的容器,并將舊的容器刪除。這種只更新鏡像而不改變?nèi)萜鬟\(yùn)行時(shí)的模式稱為不變的基礎(chǔ)設(shè)施(immutable infrastructure)。從不變的基礎(chǔ)設(shè)施就能看出,云原生的運(yùn)營與傳統(tǒng)虛擬機(jī)運(yùn)營方式截然不同。

2.彈性服務(wù)編排

云原生的焦點(diǎn)是業(yè)務(wù),而非基礎(chǔ)設(shè)施,而業(yè)務(wù)的最核心之處是業(yè)務(wù)管理和控制,如服務(wù)暴露、負(fù)載均衡、應(yīng)用更新、應(yīng)用擴(kuò)容、灰度發(fā)布等。服務(wù)編排(orchestration)提供了分布式的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源管理功能,可以按需、彈性地控制服務(wù)的位置、容量、版本,監(jiān)控并保證業(yè)務(wù)的可訪問性。

服務(wù)編排對(duì)應(yīng)用層隱藏了底層基礎(chǔ)設(shè)施的細(xì)節(jié),但又提供了強(qiáng)大的業(yè)務(wù)支撐能力,以及讓業(yè)務(wù)正常運(yùn)行的容錯(cuò)、擴(kuò)容、升級(jí)的能力,使開發(fā)者可以聚焦業(yè)務(wù)本身的邏輯。

3.開發(fā)運(yùn)營一體化

開發(fā)運(yùn)營一體化(DevOps)是一組將軟件開發(fā)和IT運(yùn)營相結(jié)合的實(shí)踐,目標(biāo)在于縮短軟件開發(fā)周期,并提供高質(zhì)量軟件的持續(xù)交付。雖然DevOps不等同于敏捷開發(fā),但它是敏捷開發(fā)的有益補(bǔ)充,很多DevOps的開發(fā)理念(如自動(dòng)化構(gòu)建和測試、持續(xù)集成和持續(xù)交付等)來自敏捷開發(fā)。與敏捷開發(fā)不同的是,DevOps更多的是在消除開發(fā)和運(yùn)營側(cè)的隔閡,聚焦于加速軟件部署。

當(dāng)前,很多云原生應(yīng)用的業(yè)務(wù)邏輯需要及時(shí)調(diào)整,功能需要快速豐富和完善,云端軟件快速迭代,云應(yīng)用開發(fā)后需要快速交付部署,因而開發(fā)運(yùn)營一體化深深地融入云原生應(yīng)用整個(gè)生命周期中。

4.微服務(wù)架構(gòu)

傳統(tǒng)Web應(yīng)用通常為單體應(yīng)用系統(tǒng),如使用WebSphere、WebLogic或.Net Framework等,從前端到中間件再到后端,各個(gè)組件一般集中式地部署在服務(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è)計(jì)中,應(yīng)用體量更小,因而傳統(tǒng)單體應(yīng)用的功能被拆解成大量獨(dú)立、細(xì)粒度的服務(wù)。微服務(wù)架構(gòu)使得每個(gè)服務(wù)聚焦在自己的功能上,做到小而精,然后通過應(yīng)用編排組裝,進(jìn)而實(shí)現(xiàn)等價(jià)于傳統(tǒng)單體應(yīng)用的復(fù)雜功能。其優(yōu)點(diǎn)是后續(xù)業(yè)務(wù)修改時(shí)可復(fù)用現(xiàn)有的微服務(wù),而不需要關(guān)心其內(nèi)部實(shí)現(xiàn),可最大限度地減少重構(gòu)開銷。

5.無服務(wù)模型

無服務(wù)(Serverless)是一種基于代碼和計(jì)算任務(wù)執(zhí)行的云計(jì)算抽象模型,與之相對(duì)的是基于服務(wù)器(虛擬機(jī)、容器)的計(jì)算模式。無服務(wù)在公有云和私有云上都有相應(yīng)的服務(wù),如AWS Lambda、阿里云的函數(shù)計(jì)算、Kubernetes的Kubeless、Apache OpenWhisk等。無服務(wù)聚焦在函數(shù)計(jì)算,隱藏了底層復(fù)雜的實(shí)現(xiàn)方式,使開發(fā)者能夠聚焦于業(yè)務(wù)本身。

總體而言,云原生真正以云的模式管理和部署資源,用戶看到的將不是一個(gè)個(gè)IT系統(tǒng)/虛擬主機(jī),而是一個(gè)個(gè)業(yè)務(wù)單元,開發(fā)者只需要聚焦于業(yè)務(wù)本身。可以說微服務(wù)的設(shè)計(jì)、無服務(wù)的功能是云原生理念的核心體現(xiàn),而容器、編排、服務(wù)網(wǎng)格均是實(shí)現(xiàn)云原生的支撐技術(shù)。只有理解了這一點(diǎn),才有可能做好云原生安全。

[1] https://landscape.cncf.io/。

主站蜘蛛池模板: 凌海市| 合山市| 稷山县| 大荔县| 华宁县| 麦盖提县| 哈巴河县| 海门市| 佛冈县| 陆良县| 永修县| 安阳县| 西城区| 太保市| 韩城市| 杂多县| 陵川县| 天柱县| 修文县| 上蔡县| 梁河县| 凌云县| 上饶县| 阿巴嘎旗| 贞丰县| 乐安县| 体育| 台湾省| 太湖县| 增城市| 泰安市| 赣榆县| 山东| 房产| 郴州市| 郁南县| 松原市| 赤峰市| 恩施市| 乡宁县| 通化县|