探祕|下一代微服務:Service Mesh 初露頭角的那一年

什麼是 Service Mesh?一言以蔽之:Service Mesh 是微服務時代的 TCP/IP 協議。

Service Mesh 的中文譯爲 “服務網格”。

Service Mesh 是一個基礎設施層,其獨立運行在應用服務之外,支撐應用服務之間安全、可靠、高效的通信,併爲服務通信提供了微服務運行所需的基本組件功能,包括服務註冊發現、負載均衡、故障恢復、監控、權限控制等。

被譽爲下一代微服務的 Service Mesh 是如何一步步發展起來的呢?接下來帶大家一起回顧,Service Mesh 初次登上雲原生舞臺的那一年。

登上
雲原生舞臺

2016 和 2017 年,微服務技術得以迅猛發展,和容器技術一起成爲這兩年中,最受關注的技術熱點。這一時期,以 Spring Cloud 爲代表的傳統侵入式開發框架,佔據着微服務市場的主流地位,甚至一度成爲微服務的代名詞。

直到 2017 年年底,非侵入式的 Service Mesh 技術從萌芽走向了成熟,Istio/Conduit 橫空出世,人們才驚覺:微服務並非只有侵入式一種玩法,更不是 Spring Cloud 的獨角戲!

新生力量,不按照常理出牌,出場就霸道地掀翻桌子,直接擺出新的玩法:Service Mesh,下一代微服務!

破土而出

Service Mesh 這股微服務的新勢力,早在 2016 年年初就開始萌芽:

與此同時,世界的另外一個角落,Google 和 IBM 兩位巨頭,達成合作,聯合 Lyft,啓動了 Istio 項目。第一代 Service Mesh 還未走向市場主流,以 Istio 爲代表的第二代 Service Mesh 就迫不及待地上路了。

**茁壯成長
**

初代和二代之爭

作爲初代 Service Mesh 產品,Linkerd 首發告捷,2017 年初喜訊連連:

趁熱打鐵,2017 年 4 月 25 日,William Morgan 發佈博文 “What’s a service mesh? And why do I need one?”。正式給 Service Mesh 做了一個權威定義。

需要特別指出的是,Linkerd 加入 CNCF,對於 Service Mesh 技術是一個非常重要的里程碑事件:這代表着社區對 Service Mesh 理念的認同和讚賞,Service Mesh 也因此得到社區更大範圍的關注。

然而,現實總是殘酷的,競爭總是激烈的。

2017 年 5 月 24 日,Google 和 IBM 高調宣佈,Istio 0.1 release 版本發佈:

面對 Istio 的發佈,社區反響熱烈,很多公司紛紛站隊表示支持 Istio,Linkerd 從炙手可熱的新星一夜之間變成過氣網紅。不過,作爲先行者,Linkerd 作爲業界僅有的兩個生產級 Service Mesh 實現之一,在 Istio 成熟前,暫時還可以繼續保持市場。但是,隨着 Istio 的穩步推進和日益成熟,取代第一代的 Linkerd 只是個時間問題。

時隔一個多月,**2017 年 7 月 11 日,Linkerd 發佈版本 1.1.1,宣佈和 Istio 項目集成。**Buoyant 發表博文 “Linkerd and Istio: like peanut butter and jelly”。

Linkerd 的低頭和妥協不難理解,但是如此快速和果斷的決定,也難免令人生疑。和 Envoy 相比,Linkerd 並沒有特別優勢,因爲編程語言的天生劣勢,Linkerd 想替代 Envoy 難度非常之大。退一步講,即使取代成功,在 Istio 的架構下,Linkerd 只能作爲一個數據平面存在,發揮的空間受限。已經落入這種境地的 Linkerd,如何承載起 Buoyant 的未來?

Service mesh 爭奪戰風生水起,Buoyant 真的甘願這樣妥協嗎?

大樹之下的 Envoy

初代和二代之爭,以 Linkerd 宣佈和 Istio 項目集成,落下帷幕。

同爲 Service Mesh 初代產物之一的 Envoy,早早的就搭上了二代 Istio 項目的大船,發展的順風順水,這和 Linkerd 的跌宕起伏完全不同。

功能上,Envoy 的定位是數據平面,很多工作只需在 Istio 的控制平面完成,因此 Envoy 專注於數據平面,完善各種細節。市場方面,Envoy 也沒有生存發展和競爭對手的壓力。穩紮穩打的 Envoy 在 2017 的發展非常穩健:

欲戴皇冠的 Istio

背靠 Google 和 IBM 兩位巨人的 Istio ,從誕生起就揹負着很多使命:

順應 Google 在企業市場的戰略佈局,已經在市場上大獲全勝的 k8s 爲 Istio 準備了一個非常好的基石,而 Istio 的歷史使命,就是繼 k8s 拿下容器編排之後,更進一步,拿下微服務!

在社區方面,Istio 藉助 Google 和 IBM 的大旗,外加自身過硬的實力、先進的理念,很快獲得了社區的積極響應和廣泛支持。包括 Oracle 和 Red Hat 在內的業界大佬都明確表示對支持 Istio。

在平臺支持方面,Istio 的初期版本只支持 k8s 平臺,從 0.3 版本開始提供對非 k8s 平臺的支持。從策略上說,Istio 藉助了 k8s,但是沒有強行綁定在 k8s 上

Istio 面世之後,讚譽不斷,尤其是 Service Mesh 技術的愛好者,可以說是爲之一振:以新一代 Service Mesh 之名橫空出世的 Istio,對比 Linkerd,優勢明顯。同時產品路線圖上有一大堆令人眼花繚亂的功能。假以時日,如果 Istio 能順利地完成開發,穩定可靠,那麼這會是一個非常美好、值得憧憬的大事件,它的意義重大:

事實證明 Istio 沒有辜負衆人對它的期望,根據 2020 年雲原生計算基金會 (CNCF) 的調查,在生產中使用服務網格的用戶中,63% 採用了 Istio,這是 linker 的兩倍多。Istio 社區當前集結了大量開源貢獻者。「DaoCloud 道客」作爲開源社區的資深參與者和重要貢獻者,在 Istio 社區的貢獻也是名列前茅,累計貢獻排名全球第六,在過去的一年中,貢獻量排名全球第三

乘風破浪

時間回到 2017 年底,在 KubeConf 上 Service Mesh 成爲大會熱點、Istio 備受矚目時,Buoyant 宣佈 Conduit 0.1.0 版本發佈,Istio 的強力競爭對手亮相 KubeConf

作爲 Istio 的挑戰者,Conduit 的整體架構與 Istio 類似,也明確區分了管控平面和數據平面,但是它主打的特性是:

然而,要抗衡 Istio 和其身後的 Google 與 IBM,談何容易。Conduit 2018 年的發展道路,註定是充滿挑戰的,艱難險阻可想而知。從目前局面看,Istio 先天優勢明顯,但是產品策略上的選擇給了 Conduit 一個難得的機會。可以預見,這種局面下,2018 將是 Istio 和 Conduit 共同引領 Service Mesh 大潮的一年。

2017 年的 Service Mesh,除了業界先驅 Linkerd/Envoy,和後起之秀 Istio/Conduit,還有一些其它的競爭者進入這個市場,爲 Service Mesh 的發展添磚加瓦。

如 nginMesh,定位是作爲 Istio 的服務代理,也就是替代 Envoy,它來自大名鼎鼎的 Nginx:

2017 是 Service Mesh 乘風踏浪、嶄露頭角的一年,從第一代的 Linkerd/Envoy,跨越性的演化出第二代的 Istio/Conduit;同時,技術社區的態度也從年初的逐步接受,發展到年底的熱烈追捧,下面這張 KubeConf 上的圖片,非常有代表性地展示了社區的熱切期望:2018 年走進 Service Mesh 發展元年

在中國的傳播

2017 年,隨着 Servic Mesh 的發展,相關的新聞報道 / 技術文章開始湧現傳播,但是傳播範圍和影響力都非常有限。直到年底纔開始被國內技術社區關注:

預計隨着 Service Mesh 的落地和普及,公有云提供生產級別的 Service Mesh 服務將成爲標配。在國外 Google/IBM/Amazon 等公有云都有提供 Service Mesh 的計劃,相信國內公有云也會陸續跟進。

發展元年

Service Mesh 終究是一個新興的技術,2017 的發展雖然如火如荼,但是距離產品級別可用還有一定的時間。2018 被譽 Service Mesh 的發展元年,爲如何實現從技術理念到產品落地,如何實實在在地解決實踐中遇到的各種問題,將會是這一年中至關重要的事情。2018 的 Service Mesh 又是什麼景象呢?欲知後事,請聽下回分解。

參考資料:

  1. Servicemesh 佈道: 

https://skyao.io/learning-servicemesh/trend/2016/servicemesh.html

  1. Service Mesh 的發展史: 

https://istio.cn/t/topic/54

  1. 正確入門 Service Mesh:起源、發展和現狀:

https://zhuanlan.zhihu.com/p/164730174

  1. When Service Meshes Can Emerge from Envoy/Istio Shadows – The New Stack

https://thenewstack.io/when-service-meshes-can-emerge-from-envoy-istio-shadows/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/REEOWkdIKrPIpCo8SGIrlw