自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Istio,灰度發(fā)布從未如此輕松?。?!

開(kāi)發(fā) 開(kāi)發(fā)工具 前端
ServiceMesh本質(zhì)是業(yè)務(wù)服務(wù)與底層技術(shù)體系的解耦,而Istio是ServiceMesh的產(chǎn)品化落地。今天我們聊聊Istio的流控,典型如灰度發(fā)布。

三個(gè)問(wèn)題,回顧前情提要。

ServiceMesh解決什么問(wèn)題?

SM本質(zhì)是業(yè)務(wù)服務(wù)與底層技術(shù)體系的解耦:

  • 一個(gè)進(jìn)程實(shí)現(xiàn)業(yè)務(wù)邏輯(不管是調(diào)用方,還是服務(wù)提供方),biz,即上圖白色方塊
  • 一個(gè)進(jìn)程實(shí)現(xiàn)底層技術(shù)體系,proxy,即上圖藍(lán)色方塊

畫(huà)外音:負(fù)載均衡、監(jiān)控告警、服務(wù)發(fā)現(xiàn)與治理、調(diào)用鏈…等諸多基礎(chǔ)設(shè)施,都放到這一層實(shí)現(xiàn)。

什么是Istio?

Istio是ServiceMesh的產(chǎn)品化落地。

Istio的分層架構(gòu)設(shè)計(jì)如何?

Istio采用實(shí)施與控制分離的數(shù)據(jù)平面與控制平面兩層架構(gòu)。

(1) 數(shù)據(jù)平面:

  • envoy(proxy):負(fù)責(zé)高效轉(zhuǎn)發(fā)與策略落地[核心]

(2) 控制平面:

  • mixer:適配組件,數(shù)據(jù)平面與控制平面通過(guò)它交互
  • pilot:策略配置組件[核心]
  • citadel:安全組件
  • galley:底層平臺(tái)(例如:K8S)解耦組件

整個(gè)架構(gòu)的核心是envoy與pilot。

今天起,聊聊Istio的流控,典型如灰度發(fā)布。

就如同ServiceMesh的設(shè)計(jì)初衷,是技術(shù)體系與業(yè)務(wù)服務(wù)解耦一樣,Istio流控模型的本質(zhì),是流量控制與服務(wù)實(shí)例擴(kuò)展的解耦,更具體的:

  • 用戶(hù)只需要通過(guò)控制平面中的Pilot設(shè)定期望流量要以什么規(guī)則進(jìn)行路由
  • 不需要規(guī)定服務(wù)實(shí)例(service pods)如何接收
  • 數(shù)據(jù)平面Envoy將從Pilot中獲取規(guī)則和命令,然后落地各類(lèi)分流策略

如上圖所示,最開(kāi)始時(shí),ServiceA訪問(wèn)舊版的ServiceB。

畫(huà)外音,業(yè)務(wù)與底層解耦:

  • 灰色圓形為業(yè)務(wù)Svc服務(wù);
  • 紫色六邊形為Envoy代理;
  • 服務(wù)與代理之間都是本地訪問(wèn);
  • 跨網(wǎng)段之間都是Envoy代理交互(藍(lán)色箭頭);

如何進(jìn)行灰度發(fā)布呢?

如上圖所示,服務(wù)A調(diào)用服務(wù)B,服務(wù)B要發(fā)布一個(gè)灰度版本,需要5%的流量打到服務(wù)B的新版本,只需要:

  • 部署服務(wù)B的新版本;
  • 控制平面Pilot上進(jìn)行策略配置,策略同步到Envoy;
  • 數(shù)據(jù)平面Envoy接收到策略配置,實(shí)時(shí)分流策略;

畫(huà)外音:圖形上沒(méi)有畫(huà)出Pilot和Envoy的交互。

搞定,這個(gè)過(guò)程業(yè)務(wù)服務(wù)與流量控制策略完全解耦,完美!

除了基于按流量比例分流的灰度發(fā)布,基于應(yīng)用層的灰度發(fā)布通過(guò)Istio也非常容易實(shí)現(xiàn)。

如上圖所示,服務(wù)B要發(fā)布一個(gè)灰度版本,需要把iPhone的流量打到B的新版本,操作流程完全一樣(部署服務(wù),Pilot控制,Envoy實(shí)施),非常方便。

如果Envoy原來(lái)只支持按照流量比例分流,不支持基于應(yīng)用層協(xié)議分流,此時(shí)只需要:

  • 升級(jí)Envoy的分流策略,以及策略控制端Pilot;
  • 調(diào)用方服務(wù)A不需要升級(jí);
  • 服務(wù)方服務(wù)B也不需要升級(jí);

業(yè)務(wù)與底層基礎(chǔ)設(shè)施完全解耦,完美!

畫(huà)外音:這是Service Mesh的核心理念之一,詳見(jiàn)《ServiceMesh究竟解決什么問(wèn)題》。

如果是用傳統(tǒng)微服務(wù)框架的方式,需要框架升級(jí),調(diào)用方與服務(wù)方均需要配合升級(jí)與重啟。

最近下班都比較晚,今天先寫(xiě)到這里。Pilot的分層架構(gòu)如何,它又是如何與Envoy配合實(shí)現(xiàn)流控的,且聽(tīng)下回分解。

思路比結(jié)論重要。

【本文為51CTO專(zhuān)欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

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

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

2024-01-02 07:37:52

FlaggerKubernetesIstio

2017-04-21 14:57:57

AndroidSuperTextViTextView

2022-08-12 12:19:13

Cluster檢索集群

2013-06-14 10:36:00

2013-10-25 13:35:02

云計(jì)算

2013-11-28 13:47:37

Android4.4ART模式

2009-08-26 20:12:41

BMCBSMITIL

2020-06-17 10:42:54

shellshell腳本Linux

2019-11-28 19:06:00

華為暢享10S

2020-09-07 13:17:27

編碼擴(kuò)展代碼

2024-02-27 18:06:35

2021-10-18 13:31:28

Web應(yīng)用交互式

2025-04-03 00:10:11

DockerAI模型

2020-02-20 16:07:45

IT需求

2020-03-17 07:41:50

ApacheKafka系統(tǒng)

2021-02-06 17:49:49

人工智能智能醫(yī)療智慧安防

2021-11-09 13:59:47

物聯(lián)網(wǎng)安全設(shè)備

2022-06-13 06:33:04

瀏覽器瀏覽器插件

2020-03-03 15:40:51

開(kāi)發(fā)技能代碼

2023-11-02 08:46:19

微服務(wù)開(kāi)發(fā)Istio
點(diǎn)贊
收藏

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