一个全栈式的应用集成平台,打破“信息孤岛”
源寶導(dǎo)讀:隨著企業(yè)數(shù)字化進(jìn)程的逐漸深入,企業(yè)存在大量的異構(gòu)系統(tǒng),各個(gè)系統(tǒng)之間信息傳輸、資源利用困難。本文將介紹明源云ERP為了打破這種“信息孤島”,而進(jìn)行的思考與實(shí)踐。
一、前言
? ? 隨著企業(yè)信息化進(jìn)程的逐步深入,互聯(lián)網(wǎng)技術(shù)的發(fā)展和分布式系統(tǒng)應(yīng)用的日益廣泛,直接導(dǎo)致大量異構(gòu)系統(tǒng)的存在,這些系統(tǒng)往往各自獨(dú)立、封閉運(yùn)行,相互之間不存在或很少存在數(shù)據(jù)的交互,由于這種應(yīng)用分割,多個(gè)系統(tǒng)之間往往存在數(shù)據(jù)的冗余以及功能的重疊,各個(gè)系統(tǒng)之間信息傳輸、資源利用困難,形成所謂的“信息孤島”。
二、企業(yè)應(yīng)用集成挑戰(zhàn)
? ? 要打破“信息孤島”,企業(yè)就必須突破企業(yè)應(yīng)用集成幾個(gè)基本挑戰(zhàn):
可靠性。集成解決方案必須通過網(wǎng)絡(luò)把數(shù)據(jù)從一個(gè)終端傳送到另一個(gè)終端上。與運(yùn)行在同一個(gè)終端上的進(jìn)程相比,分布式計(jì)算必須應(yīng)對(duì)更多可能出現(xiàn)的問題。很多情況下,若需要集成的兩個(gè)系統(tǒng)位于不同的環(huán)境下,它們之間的數(shù)據(jù)必須通過網(wǎng)線、局域網(wǎng)、路由器、交換機(jī)、公共網(wǎng)絡(luò)進(jìn)行傳輸。其中每個(gè)環(huán)節(jié)都會(huì)帶來延遲或中斷。
高性能。通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù)要比執(zhí)行一個(gè)本地方法調(diào)用慢多個(gè)數(shù)量級(jí)。如果使用設(shè)計(jì)單一應(yīng)用的方法設(shè)計(jì)一個(gè)分布式解決方案,可能會(huì)對(duì)性能造成災(zāi)難性的影響
異構(gòu)適配能力。集成解決方案需要在使用不同的編程語言、不同平臺(tái)和不同數(shù)據(jù)格式、不同通信協(xié)議的系統(tǒng)間傳遞信息。因此,集成方案要能與這些不同的技術(shù)打交道。
低耦合。系統(tǒng)會(huì)隨著時(shí)間改變,一個(gè)集成解決方案必須跟上與之相關(guān)連接的系統(tǒng)變化的步伐,系統(tǒng)間使用松耦合方式連接,盡可能減少系統(tǒng)之間的依賴關(guān)系。
三、行業(yè)常用解決方法
? ? ?應(yīng)用系統(tǒng)集成的解決方案有很多,但最常見有API調(diào)用、數(shù)據(jù)庫同步、文件傳輸、消息(事件)傳遞:
API調(diào)用:一個(gè)系統(tǒng)開放其部分API,使得其他系統(tǒng)能夠遠(yuǎn)程訪問這些API。它們之間的通信是實(shí)時(shí)、同步的。
數(shù)據(jù)庫同步:多個(gè)系統(tǒng)在數(shù)據(jù)庫層面建立數(shù)據(jù)同步調(diào)度作業(yè),實(shí)現(xiàn)數(shù)據(jù)拷貝與復(fù)制。
文件傳輸:一個(gè)系統(tǒng)寫文件,之后另一個(gè)系統(tǒng)讀這個(gè)文件。為此,系統(tǒng)之間需要協(xié)商文件名、文件位置、文件格式、文件讀寫的時(shí)間以及誰負(fù)責(zé)刪除這個(gè)文件。
消息(事件)傳遞:一個(gè)系統(tǒng)向公共消息通道中發(fā)送一個(gè)消息(事件),其他可以在之后某個(gè)時(shí)間從通道獲得這個(gè)消息(事件)。系統(tǒng)之間必須協(xié)商建立通道以及消息(事件)的格式,這種通信是異步的。
? ? 盡管上述四種方案從本質(zhì)上解決的是相同的問題,但是每種方案均有其獨(dú)特的優(yōu)點(diǎn)和不足(不追述,可參考企業(yè)應(yīng)用集成模式)。實(shí)際上,企業(yè)應(yīng)用集成往往需要針對(duì)不同的系統(tǒng)、供應(yīng)商、集成場景選擇采用不同的集成方案,使得每個(gè)集成點(diǎn)都能充分利用最合適方案。
四、明源云應(yīng)用集成平臺(tái)(簡稱:MIP)
? ? 明源云應(yīng)用集成平臺(tái)(簡稱:MIP)是一個(gè)全棧式的應(yīng)用集成平臺(tái),提供輕量化的API、事件、消息、數(shù)據(jù)集成能力,幫助您快速、簡單的構(gòu)建高可靠、高性能、低延遲的應(yīng)用集成解決方案,實(shí)現(xiàn)企業(yè)內(nèi)云上云下,不同廠商、不同架構(gòu)、不同協(xié)議的應(yīng)用互聯(lián)互通,打破“信息孤島”,支撐企業(yè)數(shù)字化轉(zhuǎn)型。
MIP總體架構(gòu)示意圖
? ? MIP主要由連接中心、接口中心、事件中心、監(jiān)控中心、管理控制臺(tái)五大組件構(gòu)成,通過五大組件服務(wù)組合,可以幫助企業(yè)高效構(gòu)建可知、可控的企業(yè)應(yīng)用集成解決方案。
五、連接中心
? ? 連接中心由服務(wù)注冊中心和連接器管理兩部分組成,其中服務(wù)注冊中心為您提供服務(wù)注冊與發(fā)現(xiàn)、健康檢查等服務(wù)治理能力。連接器管理則為您提供服務(wù)元數(shù)據(jù)管理、服務(wù)質(zhì)量管理、服務(wù)適配能力,以便滿足企業(yè)應(yīng)用集成中不同廠商、不同應(yīng)用、不同協(xié)議的集成適配。
? ? 連接中心提供如下關(guān)鍵特性:
服務(wù)注冊與發(fā)現(xiàn):服務(wù)提供者可以通過手工注冊、API注冊、客戶端注冊三種方式將服務(wù)信息注冊到服務(wù)注冊中心。同時(shí)服務(wù)消費(fèi)者可以通過服務(wù)注冊中心提供的服務(wù)發(fā)現(xiàn)API獲取可用的服務(wù)提供。
健康檢查:服務(wù)注冊中心根據(jù)連接器配置中設(shè)置的健康檢查地址和頻率對(duì)服務(wù)進(jìn)行定期對(duì)健康檢查,以便保證及時(shí)發(fā)現(xiàn)應(yīng)用層問題,及時(shí)摘除異常節(jié)點(diǎn),保證服務(wù)正常運(yùn)行。
服務(wù)元數(shù)據(jù)管理:對(duì)服務(wù)本身的配置信息和服務(wù)的API、事件等信息進(jìn)行維護(hù)管理,最終提供給接口中心、事件中心的應(yīng)用集成場景中使用。
服務(wù)質(zhì)量管理:連接器在調(diào)用后端服務(wù)時(shí),根據(jù)連接器配置中設(shè)置的超時(shí)、重試、熔斷的服務(wù)質(zhì)量控制規(guī)則對(duì)后端服務(wù)進(jìn)行安全調(diào)用的保護(hù)。
服務(wù)適配:內(nèi)置了常見的http、webservice、sql service、my sql、rabitt mq等通用基礎(chǔ)連接器,開箱即用,滿足80%的應(yīng)用集成場景適配,同時(shí)連接中心還提煉了一套連接器插件框架模型,支持在基礎(chǔ)連接器基礎(chǔ)上進(jìn)行插件化擴(kuò)展,開發(fā)面向不同廠商的應(yīng)用級(jí)連接器,例如:泛微、用友、金蝶等。
六、接口中心
? ? 接口中心可以為您提供高性能、高可用、高安全的API托管服務(wù),幫助您輕松構(gòu)建、管理和部署API。借助接口中心,可以簡單、快速、低成本、低風(fēng)險(xiǎn)地實(shí)現(xiàn)應(yīng)用系統(tǒng)集成、業(yè)務(wù)能力開放。
? ? 如果您作為API提供者(開發(fā)者),您可以將成熟的業(yè)務(wù)能力(如服務(wù)、數(shù)據(jù)等)作為后端服務(wù),在接口中心中開放API,并通過線下方式提供給API調(diào)用者使用,實(shí)現(xiàn)業(yè)務(wù)能力開放。
? ? 如果您作為API調(diào)用者(消費(fèi)者),您可以獲取并調(diào)用API提供者在API網(wǎng)關(guān)開放的API,減少開發(fā)時(shí)間與成本。
? ? 如果您作為API管理運(yùn)維人員,您可以通過授權(quán)、流控、監(jiān)控告警等策略保障企業(yè)的API。
接口中心架構(gòu)示意圖
接口中心提供如下關(guān)鍵特性:
API生命周期管理:括API的創(chuàng)建、發(fā)布、下線和刪除的完整生命周期管理功能。通過API生命周期管理功能,您可以快速、高效的開放成熟的業(yè)務(wù)能力。
版本管理:API可以發(fā)布到網(wǎng)關(guān)運(yùn)行環(huán)境,如果您需要再次發(fā)布此API到之前已發(fā)布的環(huán)境,那么此次的發(fā)布版本將立即覆蓋之前的版本。API網(wǎng)關(guān)支持查看API發(fā)布?xì)v史(如版本、發(fā)布說明、發(fā)布時(shí)間和發(fā)布環(huán)境),并支持回滾到任一API歷史版本,以便滿足業(yè)務(wù)版本升級(jí)、回滾等需求。
便捷調(diào)試工具:提供頁面調(diào)試工具,您可以使用該工具添加HTTP頭部參數(shù)與body體參數(shù),對(duì)API進(jìn)行調(diào)試,簡化API開發(fā),降低API的開發(fā)維護(hù)成本。
流量控:可實(shí)施API的請(qǐng)求頻率、應(yīng)用的請(qǐng)求頻率的管控,用于保障后端服務(wù)的穩(wěn)定運(yùn)行,流量控制的時(shí)間單位可以是秒、分鐘、小時(shí)或天。
請(qǐng)求校驗(yàn):支持參數(shù)類型、參數(shù)值(范圍、枚舉、正則、Json Schema)校驗(yàn),無效校驗(yàn)會(huì)被 API 網(wǎng)關(guān)直接拒絕,以減少無效請(qǐng)求對(duì)后端造成的資源浪費(fèi),大幅降低后端服務(wù)的處理成本。
數(shù)據(jù)轉(zhuǎn)換:通過配置映射規(guī)則,實(shí)現(xiàn)前、后端數(shù)據(jù)翻譯。支持前端請(qǐng)求的數(shù)據(jù)轉(zhuǎn)換。支持返回結(jié)果的數(shù)據(jù)轉(zhuǎn)換。
訪問控制:訪問控制策略是API網(wǎng)關(guān)提供的API安全防護(hù)組件之一,主要用來控制訪問API的IP地址,您可以通過設(shè)置IP地址的黑名單來拒絕某個(gè)IP地址訪問API。
API鑒權(quán):統(tǒng)一發(fā)放簽名密鑰(由一對(duì)Key和Secret組成),簽名密鑰需要綁定到API才能生效。簽名密鑰用于后端服務(wù)驗(yàn)證API網(wǎng)關(guān)的身份,在API網(wǎng)關(guān)請(qǐng)求后端服務(wù)時(shí),保障后端服務(wù)的安全。
七、事件中心
? ? 事件中心為您提供低耦合、準(zhǔn)實(shí)時(shí)、高可靠的數(shù)據(jù)或消息傳輸服務(wù)。
低耦合:架構(gòu)采用事件訂閱與分發(fā)模式,解耦開生產(chǎn)者和消費(fèi),訂閱過程無需代碼侵入,通過統(tǒng)一配置方式實(shí)現(xiàn),實(shí)現(xiàn)數(shù)據(jù)采集與分發(fā)。
準(zhǔn)實(shí)時(shí):通過應(yīng)用領(lǐng)域事件監(jiān)聽、數(shù)據(jù)庫CDC機(jī)制、隊(duì)列監(jiān)聽,做到準(zhǔn)實(shí)時(shí)的數(shù)據(jù)同步,數(shù)據(jù)從源端產(chǎn)生后,以極低的延遲被采集、加工,并寫入目的地,整個(gè)過程沒有明顯的處理批次邊界。
高可靠:平臺(tái)底層采用Rabitt MQ作為數(shù)據(jù)傳遞通道,保障數(shù)據(jù)傳遞的可靠性;三級(jí)重試,臨時(shí)性重試、定時(shí)重試、手工重試,提升數(shù)據(jù)傳遞的可靠性。
事件中心架構(gòu)示意圖
? ? 事件中心提供如下關(guān)鍵特性:
事件管理:可以通過創(chuàng)建事件源和事件訂閱者,來實(shí)現(xiàn)事件的訂閱與發(fā)布,最終實(shí)現(xiàn)數(shù)據(jù)或消息在應(yīng)用之間進(jìn)行傳遞。同時(shí)也可以在事件創(chuàng)建后進(jìn)行管理維護(hù)操作,例如:刪除事件、修改事件、發(fā)布事件、取消發(fā)布事件、增加訂閱者、刪除訂閱者、修改訂閱者等。
調(diào)度管理:可以查詢到各個(gè)事件對(duì)應(yīng)的任務(wù)調(diào)度的運(yùn)行狀態(tài),為排查生產(chǎn)問題提供有效數(shù)據(jù)支持.
異常管理:事件消費(fèi)時(shí)產(chǎn)生業(yè)務(wù)異常,事件中心會(huì)將對(duì)應(yīng)的異常事件發(fā)送到異常管理模塊,異常管理模塊可以通過自定義的自動(dòng)重試規(guī)則做定期重試,當(dāng)自動(dòng)重試仍然無效的情況下,也可以人工重試對(duì)異常數(shù)據(jù)做干預(yù),提高異常數(shù)據(jù)的修復(fù)效率。
軌跡管理:支持追蹤事件生產(chǎn)與消費(fèi)的完整鏈路信息,獲取任一事件的當(dāng)前狀態(tài),為排查生產(chǎn)問題提供有效數(shù)據(jù)支持。
八、監(jiān)控中心
? ? 監(jiān)控中心通過客戶端幫助您跟蹤采集連接中心、接口中心、事件中心、MIP客戶端各個(gè)組件的運(yùn)行狀態(tài)、日志、異常、性能等信息(遵循OpenTracing標(biāo)準(zhǔn)),客戶端采集到運(yùn)行信息后發(fā)送到監(jiān)控中心服務(wù)端,由服務(wù)端對(duì)信息做加工與分析,加工后的信息能為您提供集成調(diào)用鏈查詢和診斷、性能分析、服務(wù)依賴分析、異常告警等服務(wù),這些服務(wù)為您進(jìn)行生產(chǎn)問題排查提供有效數(shù)據(jù)支持。
監(jiān)控中心架構(gòu)示意圖
調(diào)用鏈查詢和診斷:追蹤分布式架構(gòu)中的所有服務(wù)應(yīng)用的用戶請(qǐng)求,并將它們匯總成分布式調(diào)用鏈。
性能分析:通過追蹤整個(gè)應(yīng)用程序的用戶請(qǐng)求,來實(shí)時(shí)匯總組成應(yīng)用程序的單個(gè)服務(wù)和資源性能指標(biāo),幫助您診斷性能瓶頸。
服務(wù)依賴分析:形成所有分布式服務(wù)應(yīng)用的調(diào)用依賴關(guān)系。
告警管理:支持自定義告警規(guī)則,并且在告警達(dá)到條件后通過郵件、移動(dòng)端等設(shè)備發(fā)送告警內(nèi)容給運(yùn)維人員。
總結(jié)
? ? 本次主要分享的是明源集成平臺(tái)(MIP)的定位、核心架構(gòu)、功能特征以及實(shí)現(xiàn)效果,后續(xù)還會(huì)總結(jié)分享平臺(tái)里面落地實(shí)現(xiàn)的關(guān)鍵技術(shù)點(diǎn)。
------ END ------
作者簡介
王同學(xué):?產(chǎn)品經(jīng)理,目前負(fù)責(zé)ERP集成平臺(tái)相關(guān)規(guī)劃與設(shè)計(jì)工作。
也許您還想看
MIP服務(wù)發(fā)現(xiàn)的高可用架構(gòu)實(shí)踐
基于消息的高穩(wěn)定集成架構(gòu)方案
研發(fā)協(xié)同平臺(tái)持續(xù)集成2.0架構(gòu)演進(jìn)
【2019總結(jié)篇】談?wù)剶?shù)字化時(shí)代,ERP如何坐穩(wěn)數(shù)字化底座
總結(jié)
以上是生活随笔為你收集整理的一个全栈式的应用集成平台,打破“信息孤岛”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿捷外传之Git代码统计:DotNetC
- 下一篇: 【朝夕技术专刊】Core3.1WebAp