令人激動的微服務2.0技術棧
談論微服務架構時,我們認識到:團隊的組織方式與溝通結構對技術系統的設計有著很大影響。當我們實際開始實現這些架構時,會發現已經處於分散式系統中的較深位置。我們還發現,已經有許多技術和方法大大促進這一技術演變。因此,我們可能處在一個新的進化迴圈開始,這個新的進化就是以Lambda /函式作為服務風格。當然這裡不想過多講述。
當構建微服務時,我們真的深深進入了分析分散式系統 - 一個已經研究了40年以上的技術主題,複雜的自適應系統理論已經深入人心有很長的時間。從技術的角度來看,我們需要解決的事情如下:
部署
交付
API
版本控制
合同
縮放/自動縮放
服務發現
負載均衡
路由/自適應路由
健康檢查
配置
斷路器
bulk-heads
TTL / deadlining
延遲跟蹤
服務因果跟蹤
分散式日誌
度量操作與收集
Netflix和其他網際網路公司為解決其中一些問題做了一些事情(如開源軟體或釋出相關技術論文)。但是還是反覆修改。真正令人興奮的是,我們開始看到了下一波技術,以更優雅的方式解決了這些問題。
例如,Kubernetes是Google和Red Hat構建平臺時使用的一組應用程式級原語,用於執行在容器上構建雲本地應用程式。曾經有過迭代(無論是在Google還是在開源),但Kubernetes已經大大簡化了像服務發現,擴充套件,部署等微服務環節。建立簡單的東西其實並不容易。Kubernetes應該是github上最熱的專案,現在大概1000多個提交者。那老厲害了!如果在5年前,你不會看到這麼多的“微服務”框架解決服務發現,部署,故障轉移,負載平衡等。
另一個例子是斷路器。任何人都可以寫一個斷路器。Netflix甚至釋出了他們的斷路器(Hystrix庫)作為OSS。應用程式可使用這個hystrix斷路器庫來實現斷路功能,當希望保護自己免受下游異常嘗試請求,包括控制發生故障的爆炸半徑時,由它觸發網路呼叫,。缺點(包括斷路,服務發現,跟蹤等)是開發者需要獲得這些正確的庫包,並將這些庫包鼓搗在一起能夠正常工作,卻是很難。
當構建微服務時,我們真的深深進入了分析分散式系統 - 一個已經研究了40年以上的技術主題,複雜的自適應系統理論已經深入人心有很長的時間。從技術的角度來看,我們需要解決的事情如下:
部署
交付
API
版本控制
合同
縮放/自動縮放
服務發現
負載均衡
路由/自適應路由
健康檢查
配置
斷路器
bulk-heads
TTL / deadlining
延遲跟蹤
服務因果跟蹤
分散式日誌
度量操作與收集
Netflix和其他網際網路公司為解決其中一些問題做了一些事情(如開源軟體或釋出相關技術論文)。但是還是反覆修改。真正令人興奮的是,我們開始看到了下一波技術,以更優雅的方式解決了這些問題。
例如,Kubernetes是Google和Red Hat構建平臺時使用的一組應用程式級原語,用於執行在容器上構建雲本地應用程式。曾經有過迭代(無論是在Google還是在開源),但Kubernetes已經大大簡化了像服務發現,擴充套件,部署等微服務環節。建立簡單的東西其實並不容易。Kubernetes應該是github上最熱的專案,現在大概1000多個提交者。那老厲害了!如果在5年前,你不會看到這麼多的“微服務”框架解決服務發現,部署,故障轉移,負載平衡等。
另一個例子是斷路器。任何人都可以寫一個斷路器。Netflix甚至釋出了他們的斷路器(Hystrix庫)作為OSS。應用程式可使用這個hystrix斷路器庫來實現斷路功能,當希望保護自己免受下游異常嘗試請求,包括控制發生故障的爆炸半徑時,由它觸發網路呼叫,。缺點(包括斷路,服務發現,跟蹤等)是開發者需要獲得這些正確的庫包,並將這些庫包鼓搗在一起能夠正常工作,卻是很難。
Envoy專案
希望有一種不同的方式來解決這些。“更優雅”的做法,是把這些東西放在一個客戶端代理,和你的應用被部署為一個“sidecar”。這是一個偉大的小專案,同時幫助我們的工具還有來自Lyft 的Envoy專案。Envoy是一個非常小的C ++客戶端代理,用於處理諸如斷路/批次堆疊/服務發現/度量收集/跟蹤等操作。這意味著單個Envoy代理將與每個應用程式一起部署,不必考慮什麼程式語言。應用程式基本上透過“localhost”與其他服務進行交談,Envoy完全代理實際服務。它知道如何找到後端服務,做自適應路由,重試,跟蹤,調節等。作為開發人員,可以讓程式碼更乾淨,又能免費獲得所有微服務的這些功能便利。
GRPC
最後,一般我們使用REST構建微服務。一個服務對外暴露一個REST端點,並使用REST實現服務之間的所有互動/整合。但它正在演變成一個更優雅的東西。REST達到一定規模以後,會存在一些問題包括跟蹤服務之間的破碎變化,理解跨服務之間的型別安全,特別是相對於使用RPC風格的服務(至少在HTTP 1.x情況下)時會有相當大的開銷。令人興奮的是非阻塞通訊框架(即RxJava,Vert.x),非同步通訊模式,甚至GRPC庫包正在讓事情變得更加優雅。
因此,令人興奮的是,在開源社群新工具正在融合,將更多的複雜的東西推下一層(同時用最好的技術實現),從而進一步提高了構建業務應用程式的良好開發體驗。
相關文章
- 微服務 2.0 技術棧選型手冊微服務
- Spring Cloud微服務-全棧技術與案例解析SpringCloud微服務全棧
- 微服務技術棧:常見註冊中心元件,對比分析微服務元件
- 微服務技術棧:API閘道器中心,落地實現方案微服務API
- 微服務技術棧簡單介紹,Eureka和Ribbon的引入和使用微服務
- Vue 3.0 中令人激動的新功能:Composition APIVueAPI
- 微服務架構技術棧:程式設計師必須掌握的微服務架構框架詳細解析微服務架構程式設計師框架
- 微服務技術棧:流量整形演算法,服務熔斷與降級微服務演算法
- SpringCloud微服務技術選型SpringGCCloud微服務
- 微服務學習與思考(04):微服務技術體系微服務
- 【微服務技術專題】Netflix動態化配置服務-微服務配置元件變色龍Archaius微服務元件AI
- 微服務平臺技術架構微服務架構
- 微服務架構之「 容器技術 」微服務架構
- 微服務框架相關技術整理微服務框架
- 微服務定義及.Net Core中用的技術微服務
- SpringCloud微服務治理技術入門(SCN)SpringGCCloud微服務
- 從技術雷達看DevOps的十年——容器技術和微服務dev微服務
- 從技術雷達看DevOps 的十年——容器技術和微服務dev微服務
- 微服務專案搭建之技術選型微服務
- 微服務精華問答:什麼是微服務架構中的DRY?| 技術頭條微服務架構
- 剖析公司技術棧
- Ohayoo孫丁:技術驅動,激發無限生命力
- Maxim激發嵌入式創新的技術
- wemall全棧移動商城技術架構分享全棧架構
- 微服務與閘道器技術(SIA-GateWay)微服務Gateway
- 快速創業之全棧技術棧創業全棧
- 服務網格:微服務進入2.0時代微服務
- 微服務架構解析:跨越傳統架構的技術革命微服務架構
- 前端融合方向技術棧前端
- React專案技術棧React
- 微服務化的道與術微服務
- 前端技術演進(七):前端跨棧技術前端
- 微服務治理技術研讀班即將開班!微服務
- 微服務治理熱門技術揭秘:無損上線微服務
- 微服務之架構技術選型與設計微服務架構
- SAP Emarsys 的前後臺技術棧
- 面試了 Hypref 技術棧的公司面試
- 2018主流雲提供商微服務技術動態盤點:生態之爭!微服務
- Cube 技術解讀 | Cube 卡片技術棧詳解