Sidecar模式
什麼是Sidecar
- sidecar模式是Istio服務網格採用的模式
- sidecar翻譯爲"偏三","翻鬥",就是摩托車另外添加了一個容器似的,組成了翻鬥摩托車.
- 該模式其實一直存在,可是在微服務出現後開始盛行
- 將應用程序的功能劃分爲單獨進程的能夠被視爲sidecar模式.
- sidecar容許你爲應用程序添加許多功能,而無須額外第三方組件的配置和代碼
- 在軟件架構中,sidecar應用是鏈接到父應用而且爲其擴展功加強功能,且與主應用程序鬆散耦合
- 舉例:(引用自 www.servicemesh.com)假若有6個微服務相互通訊以肯定一個包裹的成本.而後這6個微服務每一個都須要具備可觀察性,監控,日誌記錄,配置,斷路器等功能,並且這6個還具備不止一個進程,做爲冗餘至少2臺.全部這些功能都是根據一些行業標準的第三方庫在每一個微服務中實現的
- 上述的這些可觀察性,監控,日誌記錄,配置,熔斷,降級等分別編碼在這些微服務中,耦合了業務邏輯和這些相同的功能.特別是你的應用程序是用不一樣的語言編寫時會發生什麼.好比Golang,Golang有沒有這些第三方的可觀察性,監控,日誌記錄,配置,熔斷,降級等產品可用呢?僅以Golang舉例
使用sidecar模式的優點
- 經過抽象出與功能相關的共同基礎設施至一個不一樣層下降了微服務代碼的複雜度
- 分離了應用程序代碼和底層平臺的耦合
- 在微服務開發中,將這些功能相同的組件抽象出來,可以下降微服務架構中代碼的重複度
本文內容參考www.servicemesh.com 網站.架構