服務網格service mesh 之 Linkerd
微服務的兩面性
最近兩三年來微服務方興未艾, 可以看到越來越多的公司和開發人員陸陸續續投身到微服務架構, 讓一個一個的微服務專案落地。
但是,在這一片叫好的喧鬧中, 我們還是發覺一些普遍存在的問題:雖然微服務對開發進行了簡化,透過將複雜系統切分為若干個微服務來分解和降低複雜度,使得這些微服務易於被小型的開發團隊所理解和維護。但是,複雜度並非從此消失。微服務拆分之後,單個微服務的複雜度大幅降低,但是由於系統被從一個單體拆分為幾十甚至更多的微服務, 就帶來了另外一個複雜度:微服務的連線、管理和監控。
試想, 對於一個大型系統, 需要對多達上百個甚至上千個微服務的管理、部署、版本控制、安全、故障轉移、策略執行、遙測和監控等,談何容易。更不要說更復雜的運維需求,例如A/B測試,金絲雀釋出,限流,訪問控制和端到端認證。
開發人員和運維人員在單體應用程式向分散式微服務架構的轉型中, 不得不面臨上述挑戰。
針對上述問題,Service Mesh,服務網格,應運而生。
什麼是Service Mesh(服務網格)?
Service Mesh是專用的基礎設施層
輕量級高效能網路代理
提供安全的、快速的、可靠地服務間通訊
與實際應用部署一起,但對應用透明
今天主要介紹其中一種:Linkerd
Linkerd
Resilient service mesh for cloud native apps
What is Linkerd?
Linkerd is an open source network proxy designed to be deployed as a service mesh: a dedicated layer for managing, controlling, and monitoring service-to- service communication within an application
服務之間的通訊,中間經過Linkerd。在之前的SpringCloud中,類似負載均衡、服務容錯保護、健康機制等等都是直接內嵌在每個服務中,現在把SpringCloud這一套抽離出來,交由Linkerd服務來代理。業務服務不需要關係這些,只需要基於Linkerd啟動,就擁有這些服務治理特性。
基於服務註冊中心和配置中心,業務服務也不需要關注,交由Linkerd去處理。
服務在啟動時,只需要告訴Likerd 服務ip、埠等資訊即可。
What does Linkerd do?
Linkerd adds visibility, control, and reliability to your application with a wide array of powerful techniques: circuit-breaking, latency-aware load balancing, eventually consistent (“advisory”) service discovery, deadline propagation, and tracing and instrumentation.
Linkerd在埠9990提供一個控制管理皮膚,用於監控服務行為,包括服務請求量、成功率、連線資訊、所配路由的延遲指標等。所有資訊實時更新,你可以很清楚的知道服務的健康情況。
Linkerd主要特性
負載均衡:linkerd提供了多種負載均衡演算法,它們使用實時效能指標來分配負載並減少整個應用程式的尾部延遲。
熔斷:linkerd包含自動熔斷,將停止將流量傳送到被認為不健康的例項,從而使他們有機會恢復並避免連鎖反應故障。
服務發現:linkerd 與各種服務發現後端整合,透過刪除特定的(ad-hoc)服務發現實現來幫助您降低程式碼的複雜性。
動態請求路由:linkerd 啟用動態請求路由和重新路由,允許您使用最少量的配置來設定分段服務(staging service),金絲雀(canaries),藍綠部署(blue-green deploy),跨DC故障切換和黑暗流量(dark traffic)。
重試機制:linkerd可以在某些故障時自動重試請求,並且可以在指定的時間段之後讓請求超時。
TLS:linkerd 可以配置為使用 TLS 傳送和接收請求,您可以使用它來加密跨主機邊界的通訊,而不用修改現有的應用程式程式碼。
HTTP 代理:linkerd 可以作為 HTTP 代理,幾乎所有現代 HTTP 客戶端都廣泛支援,使其易於整合到現有應用程式中。
透明代理:您可以在主機上使用 iptables 規則,設定透過 linkerd 的透明代理。
gRPC:linkerd 支援 HTTP/2 和 TLS,允許它路由 gRPC 請求,支援高階 RPC 機制,如雙向流,流程控制和結構化資料負載。
分散式追蹤:linkerd 支援分散式跟蹤和度量儀器,可以提供跨越所有服務的統一的可觀察性。
儀表化:linkerd 提供了通訊延遲和有效載荷大小的詳細直方圖以及成功率和負載均衡統計資訊,以人類可讀和機器可解析的格式
作者:angeChen
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4369/viewspace-2820413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快速上手 Linkerd v2 Service Mesh(服務網格)
- 服務網格 Service Mesh
- Emoji.voto,Linkerd 服務網格(service mesh)的示例應用程式
- Linkerd Service Mesh 服務配置檔案規範
- 為什麼要使用服務網格Service Mesh?
- 為什麼我們需要服務網格Service mesh?
- 瞭解 Linkerd Service Mesh 架構架構
- Linkerd Service Mesh 授權策略(Server & ServerAuthorization)Server
- Service Mesh框架對比:Linkerd vs. Istio框架
- 服務網格大比拼:Istio、Linkerd、Linkerd2和Consul
- Service Mesh大咖訪談:使用服務網格的微服務通訊與治理微服務
- 服務網格Istio、Linkerd和Cilium效能比較
- 企業級服務網格架構之路解讀——Service Mesh在會話層解耦架構會話解耦
- 服務網格Service Mesh、API閘道器和訊息佇列的對比 - Wolfram HempelAPI佇列
- Linkerd 2:5 分種釐清 Service Mesh 相關術語
- 比較服務網格:Linkerd 2.x與Istio 1.x
- 服務網格新成員:亞馬遜釋出App Mesh應用網格亞馬遜APP
- 服務遷移之路 | Spring Cloud向Service Mesh轉變SpringCloud
- 服務網格將更安全:VMware收購Mesh7改變服務網格的遊戲規則遊戲
- Service Mesh之Istio部署bookinfo
- k8s-服務網格實戰-配置 Mesh(灰度釋出)K8S
- 詳細瞭解 Linkerd 2.10 基礎功能,一起步入 Service Mesh 微服務架構時代微服務架構
- 螞蟻金服 Service Mesh 實踐探索
- 螞蟻金服 Service Mesh 深度實踐
- Service Mesh之Istio基礎入門
- What is a service mesh?
- 螞蟻金服Service Mesh新型網路代理的思考與實踐
- kubernetes實踐之六十五:Service Mesh
- 企業服務行業如何試水 Istio | Service Mesh Meetup 分享實錄行業
- Service Mesh模式起源模式
- Service Mesh 介紹
- Linkerd 2.10(Step by Step)—1. 將您的服務新增到 Linkerd
- 在 Intenseye,為什麼我們選擇 Linkerd2 作為 Service Mesh 工具(Part.2)
- 在 Intenseye,為什麼我們選擇 Linkerd2 作為 Service Mesh 工具(Part.1)
- service mesh istio微服務實驗之監控日誌與視覺化微服務視覺化
- 從網路接入層到 Service Mesh,螞蟻金服網路代理的演進之路
- 螞蟻金服 Service Mesh 實踐探索 | Qcon 實錄
- 螞蟻金服Service Mesh漸進式遷移方案