發表文章

目前顯示的是有「conduit」標籤的文章

Linkerd 與 Docker EE 平台的整合應用

圖片
Service Mesh 指的是在2016年由 Buoyant 公司所提出的 Linkerd 框架當中蘊含的一個核心技術概念,目的在解決微服務架構以及容器化服務所衍生出來的網路和安全問題。它在分散式系統中涵蓋了動態鏈接過程,提供安全,快速,可靠的服務間通訊。 如何設計好服務間通訊在微服務架構中是一項挑戰。分散式系統中,會有許多四處移動的跨多伺服器或主機的服務,軟體元件難免會遭遇異常情況。因為會發生部分失敗甚至導致更大範圍的中斷問題,所以設計微服務架構和服務間通訊的時候,需要將這類分散式系統的常見風險列入考量。 關於服務間通訊常見的實現方法大致會有:一個直接較容易實作的方法是以 HTTP (REST) 為基礎,但有 blocking 以及效能低的缺點;第二,採用非同步通訊協定,例如 AMQP。在應用程式代碼實作上相對比較複雜,並搭配運用 側車(sidecar)模式 以及 大使(Ambassador)模式 來處理訊息重送和熔斷訊息斷路機制;最後,運用 Service Mesh 框架。 藉由運用 Service Mesh 框架,開發人員可以專注在自己開發的應用程式碼邏輯,不需要太擔心要如何用代碼處理雲環境或是容器平台上高度複雜的服務間通訊狀況,應用程式代碼不會與通訊代碼過度耦合,而又同時能通過 Service Mesh 框架來管理雲環境或容器平台內部的服務間通訊的正確性,可靠性,以及確保一定程度的通訊效能。當前最常見的分散式系統就是微服務,簡單來說,Service Mesh 就如同是微服務的動態鏈接器(dynamic linker)。 當前常見的 Service Mesh 框架有:Google 主導的 Istio ;以及 Buoyant 公司所提出的 Linkerd , 後來 Buoyant 公司參考 Istio 架構又另外推出一個輕量型的 Service Mesh 框架: Conduit,Conduit 後來再整合到 linnkerd, 作為 Linkerd2。Nginx 也有推出類似的方案。 這裡主要先以 linkerd 為例說明 Service Mesh 框架與 Docker EE 平台的整合。 要在 Docker EE 環境下部署 linkerd 有兩種方式: 一、以 docker run 命令運行 linkerd image, 在本...

這個網誌中的熱門文章

Docker 環境下的 Proxy 配置