公测与奥运同行,云服务总线CSB:“连”无边界
本文主要談及了服務(wù)互通開放典型問題,也介紹了企業(yè)業(yè)務(wù)能力API化,著重說明了云服務(wù)總線CSB的服務(wù)處理過程,最后概括了綜合場景。
以下為精彩內(nèi)容整理:
云服務(wù)總線CSB與ESB有什么關(guān)系呢?CSB就是互聯(lián)網(wǎng)以及云計算場景下的企業(yè)服務(wù)總線,但重點不同,CSB真正要做的是能力開放平臺,無論是ESB還是CSB,它們都是要實現(xiàn)系統(tǒng)之間的服務(wù)互通。
?
服務(wù)互通開放典型問題
服務(wù)協(xié)議和接口差異:
舉個例子,如果用企業(yè)互聯(lián)網(wǎng)架構(gòu)平臺 Apsara Aliware的“三駕馬車”(EDAS/DRDS/MQ)構(gòu)建一個新系統(tǒng),怎樣與原來的系統(tǒng)交互呢?兩個系統(tǒng)之間協(xié)議和接口形態(tài)可能很不一樣(同步異步、參數(shù)結(jié)構(gòu)、報文格式)。從服務(wù)消費者的角度來說,想把某些東西為我所用,想要集成或者調(diào)用的東西是確定的,配置或者實現(xiàn)對應(yīng)的適配器就好,這就是ESB的典型場景。而云服務(wù)總線CSB更多從服務(wù)提供者的角度來考慮,他的一個已有系統(tǒng)要對外開放服務(wù),要面對的是更不確定更廣泛的服務(wù)消費用戶群,消費者應(yīng)用的體量和類型可能是各式各樣的。那么,首先應(yīng)該有一個方便的機制,使得在CSB上發(fā)布服務(wù)的時候不需要針對不同的消費方協(xié)議做不同的處理,而消費方應(yīng)用也可以很方便地使用廣泛通用的、或者自己偏好的服務(wù)協(xié)議來調(diào)用這個服務(wù);其次,還要讓服務(wù)發(fā)布者可以在CSB上設(shè)定開放出來的接口結(jié)構(gòu)和原有接口的差異,做一定的變化、簡化、甚至屏蔽,不單是參數(shù)個數(shù)和列表結(jié)構(gòu)上的不同,也包括參數(shù)內(nèi)容格式的轉(zhuǎn)換,即通常所謂的報文轉(zhuǎn)換。
網(wǎng)絡(luò)防火墻限制約束:
企業(yè)內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)和系統(tǒng)之間的部署和隔離的情況可能會比較復(fù)雜。例如一個系統(tǒng)配置了防火墻,假設(shè)只能從內(nèi)部訪問到外部,外部不能訪問內(nèi)部,但又需要把系統(tǒng)內(nèi)部的服務(wù)開放出去給別人用,CSB該怎么解決?又例如企業(yè)有多個子系統(tǒng),相互之間是網(wǎng)絡(luò)隔絕的,只能和一個中心系統(tǒng)交互,那么CSB如何讓一個子系統(tǒng)的服務(wù)能為另一個子系統(tǒng)所用?
安全性管理授權(quán)鑒權(quán):系統(tǒng)間的服務(wù)的訪問通常都需要認證和鑒權(quán)。在CSB的服務(wù)處理中,認證就是確定訪問方是系統(tǒng)認可的合法服務(wù)消費者,鑒權(quán)是指用戶對指定服務(wù)的訪問是得到過授權(quán)的。
訪問量與優(yōu)先級控制:
從服務(wù)消費者的角度來看,一定會對服務(wù)調(diào)用頻度有要求,但作為服務(wù)提供方,需要考慮其服務(wù)器集群能支撐的業(yè)務(wù)訪問量,我們CSB需要一些保護措施保證不會被爆發(fā)的服務(wù)請求壓垮,首先會做限流,將一部分服務(wù)請求擋掉,而擋掉哪些放行哪些,又要考慮是否引入服務(wù)以及消費者的優(yōu)先級處理。
服務(wù)消費量需求變化:
在互聯(lián)網(wǎng)場景里,我們經(jīng)常會看到應(yīng)用用戶量和業(yè)務(wù)量有非線性增長的情況,這個增長通常也很難預(yù)期,從服務(wù)提供方的角度講,我們CSB要有快速便捷進行線性擴容的能力。
多節(jié)點接力級聯(lián)服務(wù):
有些企業(yè)本身內(nèi)部的系統(tǒng)環(huán)境就比較多,再結(jié)合互聯(lián)網(wǎng)云計算,系統(tǒng)間服務(wù)互通的情況就更復(fù)雜了。不同的數(shù)據(jù)中心、地域、云上、云下,多個企業(yè)之間等等,每一個節(jié)點可能屬于不同的業(yè)務(wù)域,屬于不同的企業(yè)、不同的環(huán)境,之前也提到過,又由于防火墻以及網(wǎng)絡(luò)規(guī)劃,節(jié)點之間又會有這樣那樣的訪問約束。那么CSB要支持跨節(jié)點之間的服務(wù)互通,必須要解決路徑打通,以及路徑上不同歸屬的節(jié)點之間的授信問題。
?
企業(yè)業(yè)務(wù)能力API化
現(xiàn)在的企業(yè)正在面對迅速變化的經(jīng)濟、市場以及技術(shù)環(huán)境,需要更靈活敏捷地進行產(chǎn)品設(shè)計開發(fā),以應(yīng)對快速的業(yè)務(wù)變化和緊張的經(jīng)費壓力。企業(yè)可以采用例如阿里巴巴Aliware這樣的企業(yè)互聯(lián)網(wǎng)架構(gòu)技術(shù),實現(xiàn)自身的服務(wù)化沉淀和組織,形成以厚實的中臺共享業(yè)務(wù),高效靈活支撐前臺多變業(yè)務(wù)需求的結(jié)構(gòu)。同時可以根據(jù)自身技術(shù)能力、資金以及時間各方面情況的考慮,選擇專業(yè)、高效、更有成本優(yōu)勢的第三方服務(wù),來快速、靈活、組合式地構(gòu)建企業(yè)應(yīng)用。
另一方面,越來越多的企業(yè)組織也需要以API方式把自己的核心業(yè)務(wù)資產(chǎn)整理開放給合作伙伴,或者讓第三方的應(yīng)用整合。結(jié)合之前提到的系統(tǒng)間服務(wù)互通的典型問題,可以注意到,CSB更強調(diào)從服務(wù)提供方的角度來看,面對更多變和廣泛的消費群,怎樣更高效、更靈活、更彈性地開放服務(wù)。從服務(wù)消費者的角度來講,會希望有這樣一個平臺,能夠方便地搜尋和消費需要的服務(wù),不需要冗長、繁瑣的商務(wù)過程,簡單訂閱調(diào)用就實現(xiàn)了服務(wù)能力的集成,這就是API的概念。
對服務(wù)提供方來說,如果想把API開放出來,需要持續(xù)對自身能力做分析和梳理,而且開放成API后,來自服務(wù)消費方的反饋也是非常直接的,有利于幫助企業(yè)思考自身的業(yè)務(wù)能力,到底什么東西最有價值,有助于發(fā)掘新的業(yè)務(wù)模式,提高服務(wù)水平。當把一個能力以API的形式開放出來后,由于消費的便捷和高效,更利于潛在客戶的發(fā)掘和合作空間的拓展。我們需要這樣一個產(chǎn)品,無論是跟已有系統(tǒng)的集成,還是把企業(yè)的能力開放出來給別人用,還是把企業(yè)內(nèi)部各個系統(tǒng)之間以能力互通的方式去促進各個業(yè)務(wù)的創(chuàng)新和融合,都需要有一個能力的開放平臺。
?
云服務(wù)總線CSB
云服務(wù)總線CSB幫助企業(yè)構(gòu)建自己的能力開放平臺,實現(xiàn)內(nèi)部、與合作伙伴以及第三方的系統(tǒng)之間跨協(xié)議的服務(wù)能力互通,對服務(wù)API的發(fā)布、訂閱、消費提供一致的組織管理。
服務(wù)處理過程
服務(wù)請求經(jīng)過負載均衡,需要經(jīng)過一個網(wǎng)絡(luò)的防護,例如設(shè)置一些IP上的黑白名單,也可以集成一些網(wǎng)絡(luò)安全的產(chǎn)品,來預(yù)防DDOS等網(wǎng)絡(luò)攻擊。當CSB確定是一個來自合法來源的請求后 ,需要進行協(xié)議適配,看服務(wù)調(diào)用者到底是誰,訪問的是哪個服務(wù)。然后,CSB進行鑒權(quán),識別是否是合法身份的調(diào)用者,是否被授權(quán)訪問目標服務(wù),以及是否達到約定的服務(wù)訪問限制等等。接下來,如果不是本地節(jié)點提供的服務(wù)。需要進行CSB級聯(lián)處理,可能會轉(zhuǎn)接到另外的CSB實例。如果服務(wù)確實是本地節(jié)點能夠提供,我們就要做進一步的服務(wù)請求的解析和校驗。然后進入結(jié)果緩存模式,因為拿到的請求不一定需要放到后端去,如果服務(wù)發(fā)布者指定對該服務(wù)開啟CSB緩存功能,一定時間內(nèi)對該服務(wù)相同的請求,可以直接返回緩存的結(jié)果。緊接著要進行服務(wù)編排,常見的是服務(wù)路由處理。接下來進行消息映射和報文轉(zhuǎn)換,最后通過協(xié)議適配到達服務(wù)提供方,獲得結(jié)果經(jīng)過轉(zhuǎn)換返回給調(diào)用方。這就是CSB處理一個請求的大體過程。
如果鏈路很復(fù)雜,我們從鏈路的調(diào)用端到服務(wù)的提供端,任何一個環(huán)節(jié)都有可能出問題,這時候我們CSB需要有一個監(jiān)控的機制,并且要有一個鏈路級的分析方式,幫助快速地排查、分析、解決問題。
綜合場景
圖中連接不同環(huán)境的是一個典型的雙箭頭的雙魚型的標志,它其實就是所謂的CSB實例。用CSB實例間的連接為橋梁,實現(xiàn)它們各自“負責”的不同環(huán)境內(nèi)部以及相互之間的服務(wù)互通。整個場景里可以看到,CSB可以放在企業(yè)自己的數(shù)據(jù)中心和阿里云等環(huán)境里,打通各個系統(tǒng),實現(xiàn)企業(yè)內(nèi)部互通,企業(yè)內(nèi)外互通,云上云下互通,復(fù)雜級聯(lián)互通。在任何一個節(jié)點上,我們開放出去的服務(wù),也可以是我們自己的一些終端應(yīng)用、設(shè)備在消費。合作伙伴、內(nèi)外系統(tǒng)、移動端和云端應(yīng)用, 用CSB可以連接一切。
云服務(wù)總線(Cloud Service Bus,簡稱CSB)公測中,可訪問官網(wǎng)查看具體產(chǎn)品信息:
https://www.aliyun.com/product/csb
更多企業(yè)互聯(lián)網(wǎng)架構(gòu)平臺內(nèi)容可訪問:https://www.aliyun.com/aliware
?
總結(jié)
以上是生活随笔為你收集整理的公测与奥运同行,云服务总线CSB:“连”无边界的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。