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

Istio分層架構(gòu)?80%的人有誤解

開發(fā) 架構(gòu)
Istio是ServiceMesh的產(chǎn)品化落地:

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

[[316324]]

  • 它幫助微服務(wù)之間建立連接,幫助研發(fā)團(tuán)隊更好的管理與監(jiān)控微服務(wù),并使得系統(tǒng)架構(gòu)更加安全
  • 幫助微服務(wù)分層解耦,解耦后的proxy層能夠更加專注于提供基礎(chǔ)架構(gòu)能力,例如:

(1)服務(wù)發(fā)現(xiàn)(discovery)

(2)負(fù)載均衡(load balancing)

(3)故障恢復(fù)(failure recovery)

(4)服務(wù)度量(metrics)

(5)服務(wù)監(jiān)控(monitoring)

(6)A/B測試(A/B testing)

(7)灰度發(fā)布(canary rollouts)

(8)限流限速(rate limiting)

(9)訪問控制(access control)

(10)身份認(rèn)證(end-to-end authentication)

等功能。 

  • 它使得業(yè)務(wù)工程團(tuán)隊與基礎(chǔ)架構(gòu)團(tuán)隊都更加高效的工作,各自專注于自己的工作,更好的彼此賦能 

今天來說一下Istio的核心架構(gòu)設(shè)計。 

關(guān)于Istio的架構(gòu)設(shè)計,官網(wǎng)用了這樣一句話:

「轉(zhuǎn)」Istio分層架構(gòu)?80%的人有誤解

邏輯上,Istio分為:

  • 數(shù)據(jù)平面(data plane)
  • 控制平面(control plane)

這兩個詞,是Istio架構(gòu)核心,但又是大家被誤導(dǎo)最多的地方。 

數(shù)據(jù)平面和控制平面,不是ServiceMesh和Istio第一次提出,它是計算機(jī)網(wǎng)絡(luò),報文路由轉(zhuǎn)發(fā)里很成熟的概念:

「轉(zhuǎn)」Istio分層架構(gòu)?80%的人有誤解

 

  • 數(shù)據(jù)平面(data plane):一般用來做快速轉(zhuǎn)發(fā)
  • 控制平面(control plane):為快速轉(zhuǎn)發(fā)提供必要的信息 
「轉(zhuǎn)」Istio分層架構(gòu)?80%的人有誤解

畫外音:上兩圖為路由器架構(gòu)。 

它的設(shè)計原則是:

  • 在一個路由設(shè)備里,轉(zhuǎn)發(fā)是最重要的工作,它具備最高的優(yōu)先級,數(shù)據(jù)平面(data plane)的設(shè)計核心就是高效轉(zhuǎn)發(fā),如何在最短的時間里處理最多的包,往往使用高效內(nèi)存管理、隊列管理、超時管理等技術(shù)實現(xiàn)在硬件里。
  • 控制平面(control plane)則不然,它要實現(xiàn)路由協(xié)議,設(shè)備管理,IGMP,ARP協(xié)議的,它更偏向于控制與應(yīng)用,往往由軟件實現(xiàn)。

畫外音:

IGMP(Internet GroupManagement Protocol),一個組播協(xié)議;

ARP(Address ResolutionProtocol),這個大家比較熟悉,根據(jù)IP地址獲取MAC地址。

Istio的架構(gòu)核心與路由器非常類似: 

「轉(zhuǎn)」Istio分層架構(gòu)?80%的人有誤解
  • 服務(wù)(最上面的小紅框),通過本地通訊與proxy交互
  • 數(shù)據(jù)平面,由一系列proxy組成(中間一層的兩個小紅框),核心職責(zé)是:

(1)高效轉(zhuǎn)發(fā);

(2)接收和實施來自mixer的策略;

  • 控制平面(底下的大紅框),核心是控制與應(yīng)用,核心職責(zé)是:

(1)管理和配置邊車代理;

(2)通過mixer實施策略與收集來自邊車代理的數(shù)據(jù);

畫外音:

(1)sidecar proxy,原文使用的是envoy,后文envoy表示代理;

(2)mixer,不確定要怎么翻譯了,有些文章叫“混音器”,后文直接叫mixer;

(3)pilot,galley,citadel,不敢翻譯為飛行員,廚房,堡壘,后文直接用英文; 

如架構(gòu)圖所示,該兩層架構(gòu)中,有五個核心組件。 

數(shù)據(jù)平面,有一個核心組件:

Envoy (proxy)

Envoy的核心職責(zé)是高效轉(zhuǎn)發(fā),更具體的,它具備這樣一些能力:

(1)服務(wù)發(fā)現(xiàn)

(2)負(fù)載均衡

(3)安全傳輸

(4)多協(xié)議支持,例如HTTP/2,gRPC

(5)斷路器(Circuit breakers)

(6)健康檢查

(7)百分比分流路由

(8)故障注入(Fault injection)

(9)系統(tǒng)度量 

大部分能力是RPC框架都具備,或者比較好理解的,這里面重點介紹下斷路器和故障注入。 

斷路器設(shè)計

它是軟件架構(gòu)設(shè)計中,一個服務(wù)自我保護(hù),或者說降級的設(shè)計思路。

舉個例子:當(dāng)系統(tǒng)檢測出某個接口有大量超時時,斷路器策略可以終止對這個接口的調(diào)用(斷路器打開),經(jīng)過一段時間后,再次嘗試調(diào)用,如果接口不再超時,則慢慢恢復(fù)調(diào)用(斷路器關(guān)閉)。 

故障注入設(shè)計

它是軟件架構(gòu)設(shè)計中,一種故意引入故障,以擴(kuò)大測試覆蓋范圍,保障系統(tǒng)健壯性的方法,主要用于測試。

國內(nèi)大部分互聯(lián)網(wǎng)公司,架構(gòu)設(shè)計中不太會考慮故障注入,在操作系統(tǒng)內(nèi)核開發(fā)與調(diào)試,路由器開發(fā)與調(diào)試中經(jīng)常使用,可以用來模擬內(nèi)存分配失敗、磁盤IO錯誤等一些非常難出現(xiàn)的異常,以確保測試覆蓋度。 

控制平面,有四個核心組件:

Mixer

Mixer的一些核心能力是:

(1)跨平臺,作為其他組件的adapter,實現(xiàn)Istio跨平臺的能力;

(2)和Envoy通訊,實時各種策略

(3)和Envoy通訊,收集各種數(shù)據(jù) 

Mixer的設(shè)計核心在于“插件化”,這種模型使得Istio能夠適配各種復(fù)雜的主機(jī)環(huán)境,以及后端基礎(chǔ)設(shè)施。 

Pilot

Pilot作為非常重要的控制平面組件,其核心能力是:

(1)為Envoy提供服務(wù)發(fā)現(xiàn)能力;

(2)為Envoy提供各種智能路由管理能力,例如A/B測試,灰度發(fā)布;

(3)為Envoy提供各種彈性管理能力,例如超時,重試,斷路策略; 

Pilot的設(shè)計核心在于“標(biāo)準(zhǔn)化”,它會將各種流控的控制命令轉(zhuǎn)化為Envoy能夠識別的配置,并在運(yùn)行時,將這些指令擴(kuò)散到所有的Envoy。Pilot將這些能力抽象成通用配置的好處是,所有符合這種標(biāo)準(zhǔn)的Envoy都能夠接入到Pilot來。 

潛臺詞是,任何第三方可以實現(xiàn)自己的proxy,只要符合相關(guān)的API標(biāo)準(zhǔn),都可以和Pilot集成。 

Citadel

Citadel組件,它提供終端用戶身份認(rèn)證,以及服務(wù)到服務(wù)的訪問控制。總之,這是一個和安全相關(guān)的組件。 

Galley

Gally組件,它是一個配置獲取、校驗、處理、分發(fā)的組件,它的設(shè)計核心在于“解耦”,它將“從底層平臺(例如:K8S)獲取用戶配置”與Istio解耦開來。 

花邊:為什么80%的中文用戶對Istio的二層架構(gòu)的了解是錯的?

很多朋友問我,通過什么渠道學(xué)習(xí)最新的技術(shù)知識,我的回答一直是,英文官網(wǎng)

畫外音:本文所有信息來源于Istio1.1英文官網(wǎng)。 

我在百度搜了下Istio,80%的資料,將二層架構(gòu)翻譯為:

  • 數(shù)據(jù)面板
  • 控制面板

畫外音:大家可以百度搜一下“istio 控制面板” 

一開始我極其蒙圈,因為“數(shù)據(jù)平面”和“控制平面”是非常成熟的翻譯,路由器就是使用這個二層架構(gòu),ServiceMesh使用相同的架構(gòu)設(shè)計進(jìn)行解耦,應(yīng)該不需要創(chuàng)造性翻譯呀。 

后來,我懂了:

  • 控制平面(control plane)
  • 控制面板(control panel)

半吊子英語的程序員,二手的技術(shù)文檔,真害人,唉。 

總結(jié)

「轉(zhuǎn)」Istio分層架構(gòu)?80%的人有誤解

Istio采用二層架構(gòu),五大模塊,進(jìn)行微服務(wù)ServiceMesh解耦:

  • 數(shù)據(jù)平面,主要負(fù)責(zé)高效轉(zhuǎn)發(fā)

(1)envoy模塊:即proxy;

  • 控制平面,主要負(fù)責(zé)控制與應(yīng)用

(2)mixer模塊:支持跨平臺,標(biāo)準(zhǔn)化API的adapter;

(3)pilot模塊:控制與配置envoy的大部分策略;

(4)citadel模塊:安全相關(guān);

(5)galley模塊:與底層平臺(例如:K8S)配置解耦; 

實施與控制分離,經(jīng)典的架構(gòu)設(shè)計方法,GOT?

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

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-04-28 11:20:01

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

2021-06-07 10:00:41

MD5算法加密

2023-08-02 08:51:46

服務(wù)架構(gòu)分層架構(gòu)

2023-06-16 13:34:00

軟件架構(gòu)模式

2022-11-29 11:21:20

單體分層應(yīng)用架構(gòu)

2018-08-24 07:54:52

人工智能李彥宏機(jī)器

2023-11-28 12:17:29

MeshIstio

2016-06-07 16:43:57

云計算混合云

2017-11-17 07:06:27

互聯(lián)網(wǎng)分層架構(gòu)APP

2019-12-10 10:59:11

分層架構(gòu)項目

2023-05-31 08:41:23

分層架構(gòu)對象模型

2021-01-12 12:33:20

Pandas技巧代碼

2022-12-06 07:40:08

研發(fā)事故開發(fā)

2021-10-14 18:21:52

架構(gòu)IstioService

2021-04-20 09:55:37

Linux 開源操作系統(tǒng)

2021-09-06 09:09:22

人工智能安全風(fēng)險AI

2012-04-06 13:31:35

SSH

2010-09-26 13:37:33

分層存儲架構(gòu)

2017-10-15 14:36:10

互聯(lián)網(wǎng)分層架構(gòu)服務(wù)化

2021-01-04 05:51:02

數(shù)據(jù)倉庫架構(gòu)
點贊
收藏

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