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