新聞中心
上一篇介紹了《ServiceMesh究竟解決什么問(wèn)題?》,當(dāng)微服務(wù)架構(gòu)體系越來(lái)越復(fù)雜的時(shí)候,需要將“業(yè)務(wù)服務(wù)”和“基礎(chǔ)設(shè)施”解耦,將一個(gè)微服務(wù)進(jìn)程一分為二:

創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、哈密網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為哈密等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
- 一個(gè)進(jìn)程實(shí)現(xiàn)業(yè)務(wù)邏輯,biz,即上圖白色方塊
- 一個(gè)進(jìn)程實(shí)現(xiàn)底層技術(shù)體系,proxy,即上圖藍(lán)色方塊,負(fù)載均衡、服務(wù)發(fā)現(xiàn)與治理、調(diào)用鏈…等諸多基礎(chǔ)設(shè)施,都放到這一層實(shí)現(xiàn)
如此解耦之后:
- biz不管是調(diào)用服務(wù),還是提供服務(wù),都只與本地的proxy進(jìn)行本地通信
- 所有跨網(wǎng)的通信,都通過(guò)proxy之間進(jìn)行
要聊ServiceMesh,就不得不提Istio,它是ServiceMesh目前流行的實(shí)踐,今天說(shuō)說(shuō)Istio是干啥的。
畫(huà)外音:不能落伍。
什么是Istio?
Istio是ServiceMesh的產(chǎn)品化落地,它的一些關(guān)鍵性描述是:
(1) 幫助微服務(wù)之間建立連接,幫助研發(fā)團(tuán)隊(duì)更好的管理與監(jiān)控微服務(wù),并使得系統(tǒng)架構(gòu)更加安全
畫(huà)外音:Istio helps you to connect, secure, control, and observe microservices.
(2) 幫助微服務(wù)分層解耦,解耦后的proxy層能夠更加專(zhuān)注于提供基礎(chǔ)架構(gòu)能力,例如:
- 服務(wù)發(fā)現(xiàn)(discovery);
- 負(fù)載均衡(load balancing);
- 故障恢復(fù)(failure recovery);
- 服務(wù)度量(metrics);
- 服務(wù)監(jiān)控(monitoring);
- A/B測(cè)試(A/B testing);
- 灰度發(fā)布(canary rollouts);
- 限流限速(rate limiting);
- 訪(fǎng)問(wèn)控制(access control);
- 身份認(rèn)證(end-to-end authentication);
畫(huà)外音:佩服,硬是湊齊了十條,其實(shí)SM還能提供更多基礎(chǔ)服務(wù)功能。
(3) 使得業(yè)務(wù)工程團(tuán)隊(duì)與基礎(chǔ)架構(gòu)團(tuán)隊(duì)都更加高效的工作,各自專(zhuān)注于自己的工作,更好的彼此賦能
畫(huà)外音:說(shuō)的還是解耦。
Istio官網(wǎng)是怎么吹噓自己的?
畫(huà)外音:這個(gè)問(wèn)題的另一個(gè)問(wèn)法是“為什么大家要來(lái)用Istio”。
Istio非常牛逼,如果要實(shí)施ServiceMesh,必須用Istio,因?yàn)椋?/p>
(1) 可以通過(guò),在現(xiàn)有服務(wù)器新增部署邊車(chē)代理(sidecar proxy),應(yīng)用程序不用改代碼,或者只需要改很少的代碼,就能實(shí)現(xiàn)上述N項(xiàng)基礎(chǔ)功能
畫(huà)外音:你信了么?
(2) 可以通過(guò),控制后臺(tái),簡(jiǎn)單改改配置,點(diǎn)點(diǎn)按鈕,就能管理和查看上述N項(xiàng)基礎(chǔ)功能
(3) 以下特性,Istio在這個(gè)環(huán)節(jié)里進(jìn)行了附加說(shuō)明:
- 負(fù)載均衡支持多協(xié)議,HTTP, gRPC, WebSocket, TCP;
- 通過(guò)路由、重試、故障轉(zhuǎn)移對(duì)流量進(jìn)行細(xì)粒度流控;
- 通過(guò)可插拔策略層以及可配置API,能夠支持流量訪(fǎng)問(wèn)控制、限速、配額管理;
- 自動(dòng)度量、日志收集、調(diào)用跟蹤;
- 服務(wù)到服務(wù)的身份認(rèn)證;
Istio的核心特性是什么?
Istio強(qiáng)調(diào)了它提供的五項(xiàng)關(guān)鍵特性:
(1) 流控(traffic management)
畫(huà)外音:斷路器(circuit breakers)、超時(shí)、重試、高可用、多路由規(guī)則、AB測(cè)試、灰度發(fā)布、按照百分比分配流量等。
(2) 安全(security)
畫(huà)外音:加密、身份認(rèn)證、服務(wù)到服務(wù)的權(quán)限控制、K8S里容器到容器的權(quán)限控制等。
(3) 可觀(guān)察(observability)
畫(huà)外音:追蹤、監(jiān)控、數(shù)據(jù)收集,通過(guò)控制后臺(tái)全面了解上行下行流量,服務(wù)鏈路情況,服務(wù)運(yùn)行情況,系統(tǒng)性能情況,國(guó)內(nèi)微服務(wù)架構(gòu)體系,這一塊做得比較缺乏。
(4) 平臺(tái)無(wú)關(guān)系(platform support)
畫(huà)外音:K8s,物理機(jī),自己的虛機(jī)都沒(méi)問(wèn)題。
(5) 集成與定制(integration and customization)
畫(huà)外音:可定制化擴(kuò)展功能。
Istio的吹噓與特性,對(duì)于國(guó)外很多通過(guò)RESTful提供內(nèi)網(wǎng)服務(wù)的公司,很有吸引力,但相對(duì)于國(guó)內(nèi)微服務(wù)架構(gòu),未必達(dá)到了很好的拉攏效果:
- 國(guó)內(nèi)基本都是TCP的RPC框架,多協(xié)議支持未必是必須的;
- RPC框架里,路由、重試、故障轉(zhuǎn)移、負(fù)載均衡、高可用都是最基礎(chǔ)的;
- 流控、限速、配額管理,是服務(wù)治理的內(nèi)容,在微服務(wù)架構(gòu)初期是錦上添花;
- 自動(dòng)度量,系統(tǒng)入口出口數(shù)據(jù)收集,調(diào)用跟蹤,可觀(guān)察和可操控的后臺(tái)確實(shí)是最吸引人的;
- 服務(wù)到服務(wù)的身份認(rèn)證,微服務(wù)基本是內(nèi)網(wǎng)訪(fǎng)問(wèn),在架構(gòu)初期也只是錦上添花;
另外一個(gè)花邊,為什么代理會(huì)叫sidecar proxy?
看了上圖就容易懂了,biz和proxy相生相伴,就像摩托車(chē)(motor)與旁邊的車(chē)廂(sidecar)。未來(lái),sidecar和proxy就指微服務(wù)進(jìn)程解耦成兩個(gè)進(jìn)程之后,提供基礎(chǔ)能力的那個(gè)代理進(jìn)程。
Istio這么牛逼,它的核心架構(gòu)如何呢?
且聽(tīng)下回分解。
【本文為專(zhuān)欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】
網(wǎng)站欄目:Istio究竟是干嘛的?
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/ccogogj.html


咨詢(xún)
建站咨詢(xún)
