1. 程式人生 > >從網路演進看微服務演進

從網路演進看微服務演進

微服務架構演進,可以從很多方面去解讀。本文從網路進化的模式角度去看待微服務架構的演進。為何要從這個角度來解讀呢?

整個微服務架構的演進,其實是和整個網路的演進是類似的。之所以這麼說,其中最關鍵的部分在於單體服務被拆分為多個微服務之後,多個服務之間的通訊和治理,於是乎變得非常的重要。而這與網際網路的演進的及其類似的。

那麼就從最初的開始。

在計算機剛出現的很長一段時間,計算機都是以單機應用為主,那個年代,出現過紙帶程式設計。所有的計算,資源等等都是在單機內。

而對於服務來說,單體程式可以看做是最簡單,最初始的狀態。

在這個時期,多個計算機,進行一一對應的聯網,這個時候交換機和路由器並未出現。一一通訊模式,能夠簡單的將計算機進行配合協作完成一些工作。

對應的服務架構,我們將單體程式,拆分成幾個部分,但還是部署在同一臺機器上,各個程式之間,通過ipc通訊進行協作。在這裡由於是同一個主機,就不存在所謂的分散式服務之間的很多缺陷。但其本身的缺陷在於單機資源畢竟是有限的。

對網路的要求不再滿足單機一對一的通訊模式,於是交換機和路由器出現了。這下就簡化了。

而對於微服務,如何將這些組織起來。Api gateway,可以解決服務之間的訪問,也可以解決對外使用者的訪問問題。

這裡面還有一些服務發現,治理等。那麼對應的是什麼呢?dns服務,可以對應於服務發現。而服務治理,可以看做是路由器上的一部分功能,比如限流等

那麼到這裡就完了嗎?

並沒有,網路的發展還在繼續。

最新型的sdwan出現了

控制與轉發分離模式,在現有的物理網路上面,構建一個全新的網路。閘道器只做資料轉發,而sdwan控制器,用於控制閘道器的資料路由,實現控制與轉發的分離。

那麼我們看看最新的service mesh

service mesh與sdwan類似,控制與轉發做到了分離。

Service Mesh由data plane構成,服務通過sidecar代理進行服務通訊。(所有代理相互連線形成一個Mesh,Service Mesh由此得名)網格同時包含一個control plane——可以將所有獨立的sidecar代理連線到一個分散式網路中,並設定網格還包括一個控制平面——它將所有獨立的sidecar代理連線到一個分散式網路中,並設定由data plane指定的策略。

那麼到這裡就完了嗎?

那麼對於api gateway與service mesh我們該如何處理?我覺得是可以將其兩者進行整合的。

我們從網路的角度看下。sdwan目前解決的問題是什麼?當前用的最多的在於,分佈在全球各地的企業,進行企業內部打通通訊的場景。

而當我們需要訪問一個網站的時候,需要的還是dns和普通物理網下的路由器轉發。

那麼對於service mesh與api gateway。我認為是類似的。

api gateway可以解決對外暴露的服務整合問題。

而對於service mesh,可以用於內部大量服務之間通訊,服務治理等問題。

當然api gateway也好,service mesh也好,都不是銀彈。如何使用,還得看待具體的場景。

以上只是個人的一些簡單看法。有很多方方面面無法全部覆蓋。如果有什麼想交流的,可以找我。

龔浩華

月牙寂道長

QQ 29185807

2018年08月15日

如果你覺得本文對你有幫助,可以轉到你的朋友圈,讓更多人一起學習。

第一時間獲取文章,可以關注本人公眾號:月牙寂道長,也可以掃碼關注