2022-10-02 分類: 網(wǎng)站建設(shè)
在目前快節(jié)奏的移動互聯(lián)網(wǎng)時(shí)代,快速把握瞬息萬變的市場需求,以最短時(shí)間上線自己的應(yīng)用以搶占市場,成為眾多企業(yè)在競爭白熱化的市場洪流中占有一席之地的制勝利器。天下武功唯快不破,顯然傳統(tǒng)的開發(fā)模式已經(jīng)無法適應(yīng)這種快節(jié)奏的市場需求,在此背景下催生出敏捷、精益、DevOps等新概念的誕生,尤其以云原生為代表的下一代架構(gòu)更是進(jìn)入火箭式發(fā)展階段,以容器、Kubernetes、Serverless等為代表的新技術(shù)引領(lǐng)移動互聯(lián)網(wǎng)進(jìn)入急速賽道。
云原生不是某個單獨(dú)的技術(shù),而是技術(shù)與管理方法的合集。為便于讀者在了解實(shí)踐云原生架構(gòu)的方法之前能有一個系統(tǒng)性的思維,在此詳解云原生基礎(chǔ)架構(gòu)的代表技術(shù),及利用云原生構(gòu)建出來的云原生應(yīng)用的特征。
容器
正如我們現(xiàn)實(shí)世界中的集裝箱技術(shù)加速了貿(mào)易全球化的進(jìn)程,容器技術(shù)的出現(xiàn)也解決了微服務(wù)架構(gòu)下大量應(yīng)用部署的問題,容器的環(huán)境自包含特性,可以讓我們一次構(gòu)建,到處運(yùn)行,其不僅解決了虛擬機(jī)所能夠解決的問題,同時(shí)也能夠解決由于資源要求過高虛擬機(jī)無法解決的問題。容器的特點(diǎn)主要包括:隔離應(yīng)用依賴、創(chuàng)建應(yīng)用鏡像并進(jìn)行復(fù)制、創(chuàng)建容易分發(fā)的即啟即用的應(yīng)用、支持實(shí)例簡單、快速地?cái)U(kuò)展等。
Docker 是當(dāng)前流行的開源應(yīng)用容器引擎,基于 Docker 容器化技術(shù),用戶可以將微服務(wù)及其所需的所有配置、依賴關(guān)系和環(huán)境變量打包成容器鏡像,并輕松移植到全新的安裝了 Docker 的服務(wù)器節(jié)點(diǎn)上,運(yùn)維人員無須關(guān)心底層操作系統(tǒng),且無須重新配置環(huán)境,這使得容器成為部署單個微服務(wù)的最理想工具。
不可變的基礎(chǔ)設(shè)施
在傳統(tǒng)的物理服務(wù)器或虛擬機(jī)部署方式,因其每個都有自己的特征,我們稱之為寵物,當(dāng)部署在宿主機(jī)上的應(yīng)用出現(xiàn)故障,我們需要對癥下藥,排除問題恢復(fù)業(yè)務(wù),但是在云原生架構(gòu)下,我們稱部署方式為牲畜,一旦應(yīng)用部署完成之后,那么這套應(yīng)用基礎(chǔ)設(shè)施就不會再修改了。如果需要更新,那么需要現(xiàn)更改公共鏡像來構(gòu)建新服務(wù)直接替換舊服務(wù)。而我們之所以能夠?qū)崿F(xiàn)直接替換,就是因?yàn)槿萜魈峁┝俗园沫h(huán)境(包含應(yīng)用運(yùn)行所需的所有依賴),所以對于應(yīng)用而言,完全不需要關(guān)心容器發(fā)生了什么變化,只需要把容器鏡像本身修改即可。因此,對于云友好的基礎(chǔ)設(shè)施是隨時(shí)可以替換和更換的,這就是因?yàn)槿萜骶哂忻艚莺鸵恢滦缘哪芰Γ簿褪窃茣r(shí)代的應(yīng)用基礎(chǔ)設(shè)施。
容器編排引擎相關(guān)工具有 Kubernetes 、Swarm 等,用以解決容器的管理和調(diào)度問題。目前,由 Google 開源的 Kubernetes基本算是統(tǒng)一了容器編排的市場,實(shí)現(xiàn)了容器集群的自動化部署、擴(kuò)縮容和維護(hù)等功能。
Kubernetes 與 Docker 相互配合、相輔相成,其中 Docker 是作為 Kubernetes 內(nèi)部使用的低級別組件,而 Kubernetes 又可以高效管理調(diào)度 Docker 集群。
聲明式的API
聲明式不同于命令式,通過向工具描述自己想要讓事物達(dá)到的目標(biāo)終態(tài),然后由這個工具自己內(nèi)部去計(jì)算和實(shí)現(xiàn)如何令這個事物達(dá)到目標(biāo)狀態(tài)。簡言之,聲明式設(shè)計(jì)中,描述的是目標(biāo)狀態(tài),其中就為我們極大的簡化了實(shí)現(xiàn)過程中的異常情況及調(diào)度過程,我們只需要關(guān)注結(jié)果,無論使用什么方式,結(jié)果總是朝著我們定義的方向逼近,聲明式設(shè)計(jì)也是一種設(shè)計(jì)理念,同時(shí)也是一種工作模式,它使得系統(tǒng)更加健壯。
微服務(wù)
微服務(wù)相較于單體應(yīng)用,將架構(gòu)進(jìn)行拆解,解決了單體應(yīng)用后期難以擴(kuò)展和低效的開發(fā)效率等問題。根據(jù)領(lǐng)域模型將巨大的單體分成界限清晰的微服務(wù),并保持每個服務(wù)獨(dú)立可以迭代,具有服務(wù)高度自治、高效迭代、易于擴(kuò)展和支持多語言編程等優(yōu)點(diǎn)。
在我們享受微服務(wù)的靈活、開發(fā)的敏捷帶來的利好時(shí),對于眾多的微服務(wù),在運(yùn)維、監(jiān)控、部署、及分布式事務(wù),服務(wù)之間的調(diào)用也提出了新的挑戰(zhàn)。
服務(wù)網(wǎng)格
微服務(wù)之間該如何實(shí)現(xiàn)調(diào)用,以及中間的調(diào)用策略該如何執(zhí)行,此刻就需要用到服務(wù)網(wǎng)格。目前服務(wù)網(wǎng)格架構(gòu)有侵入式和非侵入式兩種架構(gòu),區(qū)別在侵入式需要在開發(fā)框架中進(jìn)行集成,需要使用SDK來實(shí)現(xiàn)一部分功能;非侵入式架構(gòu)在部署階段以sidecar模式與業(yè)務(wù)運(yùn)行結(jié)合,通過接管網(wǎng)絡(luò)流量實(shí)現(xiàn)透明代理,從而實(shí)現(xiàn)一系列網(wǎng)絡(luò)策略及監(jiān)控,開發(fā)者僅需專注業(yè)務(wù)即可,無需對代碼進(jìn)行修改,這種方式以服務(wù)網(wǎng)格(Service Mesh)為代表,讓應(yīng)用更加輕量,目前最火的服務(wù)網(wǎng)格技術(shù)有Istio、Linkerd、Dubbo Mesh等,將其下沉到基礎(chǔ)設(shè)施層,用戶可以快速編排出復(fù)雜環(huán)境、復(fù)雜依賴關(guān)系的應(yīng)用程序,同時(shí)開發(fā)者又無須過分關(guān)心應(yīng)用程序的監(jiān)控、擴(kuò)展性、服務(wù)發(fā)現(xiàn)和分布式追蹤這些煩瑣的事情,從而更專注于自身業(yè)務(wù)程序開發(fā)。
網(wǎng)站欄目:互聯(lián)網(wǎng)下半場不可不理解的云原生
轉(zhuǎn)載注明:http://muchs.cn/news16/200316.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、ChatGPT、網(wǎng)站改版、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容