服務(wù)網(wǎng)絡(luò)是什么呢?相信很多朋友也不是特別熟悉,其實服務(wù)網(wǎng)格是一個專門的基礎(chǔ)設(shè)施層,它主要用于提供一個透明的,獨(dú)立于代碼的 (polyglot) 方式,以消除應(yīng)用代碼中的非功能性微服務(wù)能力。現(xiàn)在許多開發(fā)人員通過服務(wù)網(wǎng)絡(luò)解決了微服務(wù)架構(gòu)的復(fù)雜性,其實在微服務(wù)環(huán)境中,服務(wù)網(wǎng)格也為開發(fā)和運(yùn)營提供非常多的好處。專家指出:只要你想簡化你的微服務(wù)架構(gòu),它就應(yīng)該運(yùn)行在 Kubernetes 上。下面我們就來具體看看。
kubernetes,簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫。是一個開源的,用于管理云平臺中多個主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效(powerful),Kubernetes提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制。 傳統(tǒng)的應(yīng)用部署方式是通過插件或腳本來安裝應(yīng)用。這樣做的缺點是應(yīng)用的運(yùn)行、配置、管理、所有生存周期將與當(dāng)前操作系統(tǒng)綁定,這樣做并不利于應(yīng)用的升級更新/回滾等操作,當(dāng)然也可以通過創(chuàng)建虛擬機(jī)的方式來實現(xiàn)某些功能,但是虛擬機(jī)非常重,并不利于可移植性。
新的方式是通過部署容器方式實現(xiàn),每個容器之間互相隔離,每個容器有自己的文件系統(tǒng) ,容器之間進(jìn)程不會相互影響,能區(qū)分計算資源。相對于虛擬機(jī),容器能快速部署,由于容器與底層設(shè)施、機(jī)器文件系統(tǒng)解耦的,所以它能在不同云、不同版本操作系統(tǒng)間進(jìn)行遷移。容器占用資源少、部署快,每個應(yīng)用可以被打包成一個容器鏡像,每個應(yīng)用與容器間成一對一關(guān)系也使容器有更大優(yōu)勢,使用容器可以在build或release 的階段,為應(yīng)用創(chuàng)建容器鏡像,因為每個應(yīng)用不需要與其余的應(yīng)用堆棧組合,也不依賴于生產(chǎn)環(huán)境基礎(chǔ)結(jié)構(gòu),這使得從研發(fā)到測試、生產(chǎn)能提供一致環(huán)境。類似地,容器比虛擬機(jī)輕量、更“透明”,這更便于監(jiān)控和管理。
什么是服務(wù)網(wǎng)格?服務(wù)網(wǎng)格是一個專門的基礎(chǔ)設(shè)施層,用于提供一個透明的、獨(dú)立于代碼的 (polyglot) 方式,以消除應(yīng)用代碼中的非功能性微服務(wù)能力。
為什么服務(wù)網(wǎng)格對開發(fā)者很重要?當(dāng)開發(fā)人員將微服務(wù)部署到云時,無論業(yè)務(wù)功能如何,他們都必須解決非功能性微服務(wù)功能,以避免級聯(lián)故障。這些功能通常可以體現(xiàn)在服務(wù)發(fā)現(xiàn)、日志、監(jiān)控、韌性(resiliency)、認(rèn)證、彈性(elasticity)和跟蹤等方面。開發(fā)人員必須花費(fèi)更多的時間將它們添加到每個微服務(wù)中,而不是開發(fā)實際的業(yè)務(wù)邏輯,這使得微服務(wù)變得沉重而復(fù)雜。
隨著企業(yè)加速向云計算轉(zhuǎn)移,服務(wù)網(wǎng)格 可以提高開發(fā)人員的生產(chǎn)力。Kubernetes 加服務(wù)網(wǎng)格平臺不需要讓服務(wù)負(fù)責(zé)處理這些復(fù)雜的問題,也不需要在每個服務(wù)中添加更多的代碼來處理云原生的問題,而是負(fù)責(zé)向運(yùn)行在該平臺上的任何應(yīng)用(現(xiàn)有的或新的,用任何編程語言或框架)提供這些服務(wù)。那么微服務(wù)就可以輕量級,專注于其業(yè)務(wù)邏輯,而不是云原生的復(fù)雜性。
為什么服務(wù)網(wǎng)格對運(yùn)維很重要?這并沒有回答為什么運(yùn)維團(tuán)隊需要關(guān)心在 Kubernetes 上運(yùn)行云原生微服務(wù)的服務(wù)網(wǎng)格。因為運(yùn)維團(tuán)隊必須確保在 Kubernetes 環(huán)境上的大型混合云和多云上部署新的云原生應(yīng)用的強(qiáng)大安全性、合規(guī)性和可觀察性。
服務(wù)網(wǎng)格由一個用于管理代理路由流量的控制平面和一個用于注入邊車(Sidecar)的數(shù)據(jù)平面組成。邊車允許運(yùn)維團(tuán)隊做一些比如添加第三方安全工具和追蹤所有服務(wù)通信中的流量,以避免安全漏洞或合規(guī)問題。服務(wù)網(wǎng)格還可以通過在圖形面板上可視化地跟蹤指標(biāo)來提高觀察能力。
對于開發(fā)者和運(yùn)維人員,以及從應(yīng)用開發(fā)到平臺運(yùn)維來說,服務(wù)網(wǎng)格可以更有效地管理云原生功能。如果您想了解更多運(yùn)維方面的信息,請您及時關(guān)注中培偉業(yè)。