您好,登錄后才能下訂單哦!
導(dǎo)讀
目前以Kubernetes為基礎(chǔ)構(gòu)建的容器生態(tài)逐漸完善,這其中Kubernetes、Istio、Knative三個獨立項目被越來越多的人提及,并且已經(jīng)開始嘗試大規(guī)模落地實踐,它們恰好構(gòu)成了容器云的未來拼圖。今天與大家一起分享下,這三個項目究竟解決了什么問題,為什么它們能夠一鳴驚人。
隨著微服務(wù)理念不斷深入人心,越來越多的企業(yè)把自己的應(yīng)用逐步由單體轉(zhuǎn)變成微服務(wù)架構(gòu),Container容器技術(shù)的出現(xiàn)恰恰加速了這個轉(zhuǎn)移過程,因為它有效地解決了N多服務(wù)的快速部署問題。但是隨著服務(wù)數(shù)目的增多,越來越多的企業(yè)希望能夠把相關(guān)服務(wù)有效地“聚合”在一起,方便統(tǒng)一部署與管理。Kubenretes的出現(xiàn)恰恰解決了大規(guī)模微服務(wù)編排部署所帶來的挑戰(zhàn),讓整個行業(yè)意識到PaaS的落地可以成為現(xiàn)實。
當(dāng)隨著微服務(wù)體系下的服務(wù)數(shù)目越來越多,服務(wù)運維成為必然要解決的問題,于是Istio出現(xiàn)了,基于網(wǎng)絡(luò)代理與控制相分離的實現(xiàn)策略,允許對服務(wù)控制策略進行有效合理的管控。
到這里似乎到了很美好的階段:
· 微服務(wù):解決應(yīng)用內(nèi)聚、臃腫的問題。
· Container:解決服務(wù)運行環(huán)境統(tǒng)一,和部署問題。
· Kubernetes:解決大量微服務(wù)有效“聚合”部署問題。
· Istio:解決服務(wù)上線面臨的一系列治理問題。
這個階段乍一看來,構(gòu)建容器云似乎有了一個完整的鏈路和解決方式,一切都將變得那么“完美”。
現(xiàn)在讓我們回過頭來深入分析一下,微服務(wù)體系下的服務(wù)交互,目前是否存在問題。
首先,無論是http,還是rpc,本質(zhì)上都是服務(wù)與服務(wù)的遠(yuǎn)程調(diào)用。開發(fā)應(yīng)用程序中,無法做到服務(wù)與服務(wù)間的彼此透明。這樣會導(dǎo)致一個問題:無論微服務(wù)業(yè)務(wù)拆分多么“精細(xì)”,本質(zhì)上業(yè)務(wù)單元之間還是不能夠獨立運行和發(fā)展。同時在面向不同開發(fā)領(lǐng)域的衍生,無法選擇最合適的實現(xiàn)方式。因此我們希望能夠基于不同的“模板”+“配置”的方式能夠把開發(fā)環(huán)境標(biāo)準(zhǔn)化處理,同時提供“事件”機制,將服務(wù)與服務(wù)交互的耦合度降到最低。
其次,服務(wù)線上運行的動態(tài)伸縮問題。當(dāng)下kubernetes環(huán)境下的彈性伸縮,需要由客戶搜集監(jiān)測數(shù)據(jù),并自主手動來實現(xiàn),但是我們更希望服務(wù)線上能夠更加自動化和智能化。
最后,服務(wù)標(biāo)準(zhǔn)化問題。我們希望服務(wù)內(nèi)部的模型是標(biāo)準(zhǔn)的、能夠快速復(fù)制和快速構(gòu)建的;服務(wù)通信是標(biāo)準(zhǔn)的:協(xié)議標(biāo)準(zhǔn),格式標(biāo)準(zhǔn);運行環(huán)境是標(biāo)準(zhǔn)的:快速部署,快速遷移。
Knative的出現(xiàn)恰好解決遠(yuǎn)程直接調(diào)用,服務(wù)線上自動管理以及一些列標(biāo)準(zhǔn)化問題。
下面我們來看一下三者的關(guān)聯(lián):
Kubernetes和Istio相信大家比較熟悉了,這里不做過多介紹,有需要的同學(xué)可以關(guān)注下我們之前發(fā)布的相關(guān)文章,這里我們重點來看一下Knative。
Knative是谷歌開源的serverless架構(gòu)方案,旨在提供一套簡單易用的serverless方案,把serverless標(biāo)準(zhǔn)化。目前參與的公司主要是Google、Pivotal、IBM、Red Hat,于2018年7月份對外發(fā)布,目前處于快速發(fā)展階段。
Knative組成
Build
構(gòu)建系統(tǒng):把用戶定義的應(yīng)用構(gòu)建成容器鏡像,面向kubernetes的標(biāo)準(zhǔn)化構(gòu)建,區(qū)別于Dockerfile鏡像構(gòu)建,重點解決kubernetes環(huán)境的構(gòu)建標(biāo)準(zhǔn)化問題。
Serving
服務(wù)系統(tǒng):利用Istio的部分功能,來配置應(yīng)用路由,升級以及彈性伸縮。Serving中包括容器生命周期管理,容器外圍對象(service,ingres)生成(恰到好處的把服務(wù)實例與訪問統(tǒng)一在一起),監(jiān)控應(yīng)用請求,自動彈性負(fù)載,并且利用Virtual service和destination配置服務(wù)訪問規(guī)則。只有這樣才能保證服務(wù)呈現(xiàn)一致性以及服務(wù)運行自動化管理。
Eventing
事件系統(tǒng):用于自動完成事件的綁定與觸發(fā)。事件系統(tǒng)與直接調(diào)用最大的區(qū)別在于響應(yīng)式設(shè)計,它允許運行服務(wù)本身不需要屏蔽了調(diào)用方與被調(diào)用方的關(guān)系。從而在業(yè)務(wù)層面能夠?qū)崿F(xiàn)業(yè)務(wù)的快速聚合,或許為后續(xù)業(yè)務(wù)編排創(chuàng)新提供事件。
現(xiàn)在我們換一個角度,聚焦應(yīng)用服務(wù)生命周期:
Knative 解決應(yīng)用模板+面向統(tǒng)一環(huán)境的標(biāo)準(zhǔn)化構(gòu)建場景;
Kubernetes作為基礎(chǔ)設(shè)施,解決應(yīng)用編排和運行環(huán)境場景;
Isito作為通信基礎(chǔ)設(shè)施層,保證應(yīng)用服務(wù)運行可檢測、可配置、可追蹤問題。
這三者貫穿應(yīng)用服務(wù)生命周期全過程,容器云恰恰也是管理應(yīng)用服務(wù)的控制平臺,這就能夠很好地解釋,為什么Kubernetes,Istio,Knative在未來會成為構(gòu)建容器云的三駕馬車。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。