成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊微網(wǎng)關(guān)與服務(wù)嚙合

開(kāi)發(fā) 開(kāi)發(fā)工具
現(xiàn)在越來(lái)越多的大型組織在向更加自組織的團(tuán)隊(duì)結(jié)構(gòu)轉(zhuǎn)型,這些團(tuán)隊(duì)擁有并運(yùn)營(yíng)自己的微服務(wù),但他們?nèi)绾卧诓灰蕾?lài)集中式托管的基礎(chǔ)架構(gòu)下,確保服務(wù)之間必要的一致性與兼容性呢?

現(xiàn)在越來(lái)越多的大型組織在向更加自組織的團(tuán)隊(duì)結(jié)構(gòu)轉(zhuǎn)型,這些團(tuán)隊(duì)擁有并運(yùn)營(yíng)自己的微服務(wù),但他們?nèi)绾卧诓灰蕾?lài)集中式托管的基礎(chǔ)架構(gòu)下,確保服務(wù)之間必要的一致性與兼容性呢?為了確保服務(wù)之間的有效協(xié)作,即使是自組織的微服務(wù)也需要與一些組織標(biāo)準(zhǔn)對(duì)齊。服務(wù)嚙合(SERVICE MESH)在服務(wù)發(fā)現(xiàn)、安全、跟蹤、監(jiān)控與故障處理方面提供了一致性,且不需要像API網(wǎng)關(guān)或ESB這樣的共享資產(chǎn)。服務(wù)嚙合的一個(gè)典型實(shí)現(xiàn)包含輕量級(jí)反向代理進(jìn)程,這些進(jìn)程可能伴隨每個(gè)服務(wù)進(jìn)程一起被部署在單獨(dú)的容器中。反向代理會(huì)和服務(wù)注冊(cè)表、身份提供者和日志聚合器等進(jìn)行通信。通過(guò)該代理的共享實(shí)現(xiàn)(而非共享的運(yùn)行時(shí)實(shí)例),我們可以獲得服務(wù)的互操作性和可觀測(cè)性。一段時(shí)間以來(lái),我們一直主張去中心化的微服務(wù)管理方法,也很高興看到服務(wù)嚙合這種一致性模式的出現(xiàn)。隨著linkerd和Istio等開(kāi)源項(xiàng)目的成熟,服務(wù)嚙合的實(shí)現(xiàn)將更加容易。

新瓶舊酒還是厚積薄發(fā)?

對(duì)于持續(xù)關(guān)注云服務(wù)架構(gòu)設(shè)計(jì)***發(fā)展趨勢(shì)的同學(xué)來(lái)說(shuō),剛過(guò)去的2017年,最火的詞莫過(guò)于CNCF了,這是一個(gè)專(zhuān)注于“云原生”(Cloud Native)的基金會(huì),由眾多戰(zhàn)斗在云服務(wù)一線(xiàn)的公司(包括了谷歌、AWS、阿里云等等)組建而來(lái),旨在推進(jìn)云原生的架構(gòu)標(biāo)準(zhǔn)化與***實(shí)踐的普及。

最近,“云原生”(Cloud Native)和 “微服務(wù)”(Microservices)也引出了許多相關(guān)的技術(shù),隨著 Kubernetes、Docker 等一眾容器管理工具的普及,我們也看到在容器的內(nèi)部,微服務(wù)的架構(gòu)設(shè)計(jì)也發(fā)生著一些變化,其中“服務(wù)嚙合”(Service Mesh)就成為了大家關(guān)注的熱點(diǎn)。

那么這些變化到底是新瓶舊酒,還是厚積薄發(fā)?我們不妨先從一個(gè)更耳熟能詳?shù)募軜?gòu)——“網(wǎng)關(guān)”(Gateway)談起。

網(wǎng)關(guān)(Gateway)的作用

作為微服務(wù)工具鏈中的元老,“網(wǎng)關(guān)”(Gateway) 的引入為微服務(wù)API提供統(tǒng)一的入口和平臺(tái),不同的服務(wù)可以得到一致的管理。使用網(wǎng)關(guān)的架構(gòu)可以減少企業(yè)大量的重復(fù)開(kāi)發(fā)。甚至有一些通用的邏輯也可以使用網(wǎng)關(guān)來(lái)承載(如Zuul、Enovy、OpenResty等)。

不論初心為何,這些網(wǎng)關(guān)們隨著時(shí)光流轉(zhuǎn),功能也變得越來(lái)越豐富,網(wǎng)關(guān)可以負(fù)責(zé)解決不同服務(wù)的服務(wù)注冊(cè)發(fā)現(xiàn)、負(fù)載均衡、配額流控、監(jiān)控日志、緩存加速、配置分離、安全管控、跟蹤審計(jì)等問(wèn)題。這一系列的功能,我們可以大致分為兩類(lèi):“數(shù)據(jù)面”和“控制面”。

數(shù)據(jù)面(Data Plane)負(fù)責(zé)在數(shù)據(jù)包粒度上進(jìn)行篩選和處理:

  • 路由轉(zhuǎn)發(fā)
  • 負(fù)載均衡
  • 安全通信
  • 緩存加速
  • 認(rèn)證鑒權(quán)
  • 日志審計(jì)
  • 健康檢查
  • 熔斷限流

控制面(Control Plane)負(fù)責(zé)在服務(wù)粒度上進(jìn)行統(tǒng)籌和管理:

  • 注冊(cè)發(fā)現(xiàn)
  • 配置管控
  • 彈性伸縮
  • 統(tǒng)籌遙測(cè)
  • 容錯(cuò)自愈
  • 策略執(zhí)行
  • 證書(shū)簽發(fā)

這一系列的功能,就是網(wǎng)關(guān)面臨的問(wèn)題域。在了解問(wèn)題域之后,讓我們回歸本篇的主題:繼承了“網(wǎng)關(guān)”(Gateway)衣缽的“微網(wǎng)關(guān)”(MicroGateway)和“服務(wù)嚙合”(Service Mesh),它們到底是什么?

什么是微網(wǎng)關(guān)?

隨著微服務(wù)的普及,傳統(tǒng)的中心化網(wǎng)關(guān)變得越來(lái)越厚重,由于與中心化節(jié)點(diǎn)通信,帶來(lái)了大量網(wǎng)絡(luò)、IO開(kāi)銷(xiāo)以及單點(diǎn)問(wèn)題,往往無(wú)法滿(mǎn)足我們對(duì)于實(shí)時(shí)性、高可用的要求。另外越來(lái)越多的自治化需求,與原有集權(quán)式微服務(wù)治理方法之間,也產(chǎn)生出許多沖突矛盾。因此,與微服務(wù)化相適應(yīng)的,可以本地化、分布式部署的微網(wǎng)關(guān)(MicroGateway)也逐漸涌現(xiàn)出來(lái)。

什么是服務(wù)嚙合?

服務(wù)嚙合(Service Mesh)是一種為了保證“服務(wù)到服務(wù)”的安全、快速和可靠的通信而產(chǎn)生的基礎(chǔ)架構(gòu)層,區(qū)別于應(yīng)用層、通信層的一種新的云原生上下文內(nèi)的抽象層。如果你正在構(gòu)建云原生的應(yīng)用程序,在微服務(wù)拓?fù)浣Y(jié)構(gòu)日益復(fù)雜的今天,服務(wù)嚙合層的提出,可以幫助開(kāi)發(fā)者將服務(wù)的交互通信問(wèn)題與微服務(wù)內(nèi)部的業(yè)務(wù)問(wèn)題隔離開(kāi)來(lái),專(zhuān)注于各自的領(lǐng)域。

演進(jìn)中的微網(wǎng)關(guān)與服務(wù)嚙合

當(dāng)我們了解到微網(wǎng)關(guān)與服務(wù)嚙合的作用之后,就可以一起來(lái)看一下微網(wǎng)關(guān)與服務(wù)嚙合架構(gòu)是如何一步步設(shè)計(jì)出來(lái)的。

1. 低侵入性組件(Low-Invasive Component)

最初的服務(wù)間互訪(fǎng),常常由于業(yè)務(wù)尚不清晰,給標(biāo)準(zhǔn)化帶來(lái)了障礙。因此我們常常見(jiàn)到一些由領(lǐng)域?qū)<姨峁┑牡颓秩胄缘慕M件,為服務(wù)的開(kāi)發(fā)者提供抽象的規(guī)范,使其能輕松獲得定制化能力。

低侵入性組件(Low-Invasive Component)

組件可以更好地規(guī)范問(wèn)題,并且盡可能地將組件封裝為簡(jiǎn)單的接口,早期的服務(wù)發(fā)現(xiàn)常常通過(guò)該類(lèi)方式實(shí)現(xiàn),例如 Eureka 套件通過(guò)引入 Client 來(lái)獲得完整的如報(bào)告、監(jiān)控、熔斷等能力。

我們?cè)谝恍?IAM (Identity Access Management)的服務(wù)設(shè)計(jì)中采用了這種模式,為各個(gè)業(yè)務(wù)服務(wù)提供了一致的認(rèn)證鑒權(quán)接口,由領(lǐng)域?qū)<因?qū)動(dòng),設(shè)計(jì)規(guī)范化的調(diào)用模式。由于該類(lèi)組件盡可能設(shè)計(jì)為低侵入性的接口,因此微服務(wù)團(tuán)隊(duì)也可以更加便利地根據(jù)不同場(chǎng)景取舍是否使用該組件提供的功能,例如通過(guò)配置文件加 feature toogle 簡(jiǎn)單地在開(kāi)發(fā)環(huán)境中關(guān)閉認(rèn)證鑒權(quán)的功能,以加快開(kāi)發(fā)進(jìn)程。

2. 反向代理(Reverse Proxy)

隨著服務(wù)成熟度的提高,我們可以發(fā)現(xiàn)一些常見(jiàn)的非業(yè)務(wù)強(qiáng)相關(guān)的邏輯,可以從原有的服務(wù)中剝離出來(lái),通過(guò)反向代理統(tǒng)一進(jìn)行過(guò)濾處理。

反向代理(Reverse Proxy)

反向代理,可以為微服務(wù)處理請(qǐng)求的前后環(huán)節(jié)增添通用邏輯,例如 apigee 提供的 API proxy 封裝,通過(guò)反向代理模式為原有的服務(wù)添加 PreFlow、PostFlow,解決請(qǐng)求生命周期前后常見(jiàn)的問(wèn)題,例如檢查配額和記錄調(diào)用頻度,對(duì) CORS 等 Http Header 的添加和消費(fèi),這些功能有些類(lèi)似于傳統(tǒng)的 Filter 模型,但是卻可以獨(dú)立部署。

反向代理可以提供更高的可用性,并幫助微服務(wù)開(kāi)發(fā)者從這些常見(jiàn)細(xì)節(jié)中解脫出來(lái)。

3. 側(cè)車(chē)模式(Sidecar Pattern)

準(zhǔn)確來(lái)說(shuō),側(cè)車(chē)模式(Sidecar Pattern)本身并非微網(wǎng)關(guān)或者服務(wù)嚙合技術(shù)獨(dú)有,它只是一種特定的軟件模塊共生關(guān)系。側(cè)車(chē)模式可以是一個(gè)反向代理,也可以作為一個(gè)服務(wù)存在。

側(cè)車(chē)模式(Sidecar Pattern)

作為反向代理使用的Sidecar進(jìn)程可以過(guò)濾請(qǐng)求與返回內(nèi)容,實(shí)現(xiàn)如安全通信、認(rèn)證鑒權(quán)、服務(wù)端/客戶(hù)端負(fù)載均衡、自動(dòng)路由等功能。

側(cè)車(chē)模式(Sidecar Pattern)

作為服務(wù)使用的Sidecar進(jìn)程可以為主服務(wù)提供額外能力,實(shí)現(xiàn)分布式緩存同步、配置文件拉取、日志搜集等功能。

側(cè)車(chē)模式常見(jiàn)于分布式緩存和安全基礎(chǔ)設(shè)施網(wǎng)關(guān),通過(guò)與微服務(wù)進(jìn)程共同啟停的服務(wù)或容器,可以更方便地與微服務(wù)一并調(diào)度,享受微服務(wù)管理平臺(tái)本身提供的服務(wù)發(fā)現(xiàn)、注冊(cè)、配置、擴(kuò)容能力。通過(guò)共享生命周期,在簡(jiǎn)單部署和靈活應(yīng)用中尋找一個(gè)平衡。

我們?cè)谖⒎?wù)框架 Jhipster 提供的基礎(chǔ)能力中,可以直接通過(guò)注解使用 Hazelcast 的分布式緩存,正是通過(guò) Sidecar 模式實(shí)現(xiàn)的,擁有共生的分布式緩存實(shí)例后,可輕松實(shí)現(xiàn)服務(wù)接口的緩存,而分布式緩存自身的同步策略等問(wèn)題都被封裝在 Sidecar 進(jìn)程中,無(wú)需開(kāi)發(fā)者花費(fèi)大量時(shí)間重新開(kāi)發(fā)和調(diào)試。Sidecar也可以用于實(shí)現(xiàn)例如OAuth等安全相關(guān)的守護(hù)服務(wù),幫助微服務(wù)處理業(yè)務(wù)界限外的專(zhuān)項(xiàng)問(wèn)題。

4. 原生的基礎(chǔ)設(shè)施(Native Infrastructure)

服務(wù)嚙合帶來(lái)的***的不同就是原生無(wú)感知,通過(guò)側(cè)車(chē)模式部署的反向代理,與一些容器系統(tǒng)級(jí)的配置結(jié)合,更徹底地解決微服務(wù)在數(shù)據(jù)面與管理面的能力一致性問(wèn)題。

服務(wù)嚙合框架 Istio 提供了 Istio-Initializer 和 istioctl 工具,你可以在Kubernetes的容器整備過(guò)程中,注入所需的配置和 Envoy 容器,將Sidecar Proxy、Sidecar Service注冊(cè)為容器集群中的原生服務(wù),可以在享受彈性部署的同時(shí),享受數(shù)據(jù)面和控制面協(xié)同提供的標(biāo)準(zhǔn)化能力。無(wú)痛地加入Istio提供的功能,如 iptables 代理轉(zhuǎn)發(fā)、雙向TLS認(rèn)證、限流策略、日志收集等等。

原生的基礎(chǔ)設(shè)施(Native Infrastructure)

我們?cè)谠O(shè)計(jì)服務(wù)嚙合層時(shí)也可以考慮使用更原生的服務(wù)組織與部署策略,例如將微服務(wù)容器注冊(cè)為系統(tǒng)服務(wù)、通過(guò)控制流對(duì)容器進(jìn)行編排、盡可能與微服務(wù)共享生命周期和運(yùn)行環(huán)境來(lái)提高可用性與性能等等。

從現(xiàn)在開(kāi)始,擁抱微服務(wù)的云原生生態(tài)

既是新瓶舊酒,又是厚積薄發(fā),云原生趨勢(shì)下的微服務(wù)也在不斷的演進(jìn),逐漸變成我們最初希望的“會(huì)呼吸”的模樣。我們建議您考慮在一些適用的場(chǎng)景,尤其是微服務(wù)化的架構(gòu)設(shè)計(jì)中,考慮使用微網(wǎng)關(guān)與服務(wù)嚙合,并總結(jié)***實(shí)踐與我們交流。

讓我們一起期待云原生生態(tài)下的微服務(wù),為數(shù)字化時(shí)代提供更多的想象力。

【本文是51CTO專(zhuān)欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2020-04-29 14:33:49

微服務(wù)網(wǎng)關(guān)Kong

2020-04-24 09:53:59

Go協(xié)作搶占

2017-10-21 23:02:49

微服務(wù)軟件架構(gòu)

2022-03-31 10:41:35

iOS應(yīng)用提審發(fā)布

2021-09-15 14:52:43

數(shù)字貨幣傳銷(xiāo)虛擬貨幣

2023-09-27 09:04:50

2021-08-11 09:37:11

Redis持久化磁盤(pán)

2023-09-22 17:36:37

2020-05-22 08:16:07

PONGPONXG-PON

2021-01-28 22:31:33

分組密碼算法

2018-06-07 13:17:12

契約測(cè)試單元測(cè)試API測(cè)試

2019-02-13 14:15:59

Linux版本Fedora

2022-08-08 08:25:21

Javajar 文件

2022-11-01 08:46:20

責(zé)任鏈模式對(duì)象

2021-08-04 09:32:05

Typescript 技巧Partial

2023-05-15 08:38:58

模板方法模式

2021-01-29 08:32:21

數(shù)據(jù)結(jié)構(gòu)數(shù)組

2021-02-06 08:34:49

函數(shù)memoize文檔

2018-11-29 09:13:47

CPU中斷控制器

2023-07-06 13:56:14

微軟Skype
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲免费精品 | 亚洲欧美国产精品久久 | 久久精品在线免费视频 | av国产在线观看 | 日韩在线视频一区 | 欧美精品日韩精品 | 亚欧洲精品在线视频免费观看 | 亚洲精品一区二区 | 国产精品视频免费观看 | 久久伊人免费视频 | 国产成人精品一区 | 欧美亚洲免费 | 一区二区三区小视频 | 在线免费观看欧美 | 久久久久亚洲 | 亚洲国产成人av | 精品国产乱码一区二区三 | 中文字幕一区二区三区日韩精品 | 天堂在线免费视频 | 欧美婷婷 | 日韩一区二区三区精品 | 国产免费一区 | 国产精品久久久久久婷婷天堂 | 国产一区二区精品自拍 | 日本国产一区二区 | 久久成人一区 | 国产在线视频99 | 国产东北一级毛片 | 丁香久久 | 亚洲精品第一国产综合野 | 一区二区三区四区免费视频 | 亚洲天堂日韩精品 | 一级毛片视频免费观看 | 午夜免费在线电影 | 看羞羞视频 | 久久久久99 | 小早川怜子xxxxaⅴ在线 | 精品亚洲一区二区三区 | 久久久噜噜噜久久中文字幕色伊伊 | 亚洲人成人一区二区在线观看 | 在线不卡视频 |