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