極光筆記|數據服務平臺一期建設

背景
極光目前業務線較多,各個業務線都有數據服務API的開發需求,過去公司沒有統一的數據服務總線,導致數據源重複開發、數據應用API重複開發現象較多,資源浪費嚴重,數據服務平臺主要旨在:
提供統一的對內對外的數據API接口,規範數據服務API的開發與管理
結合數據地圖,打通數據應用和數據工程,實現數據價值和鏈路血緣的補充
一、極光數據服務平臺介紹
極光數據服務平臺提供將數據表生成API的能力,支持可視化嚮導模式或腳本模式快速開發API接口,支持關係型數據庫和NoSQL數據庫,可供內部和外部系統通過調用API接口獲取數據,對開放的API進行統一管理和發佈。

【核心功能】:
【可視化API開發】提供可視化開發API功能,即可快速配置一個API,提高交付效率
【可視化API調試】提供最基本的可視化的API調試功能,減少測試成本
【統一的API管理】提供統一的各業務線對內對外的API管理功能
【API監控告警】提供接口調用統計可視化報表、監控、告警等功能
【API市場】平臺配置的API統一發布到API市場,各業務的數據開發/產品經理們可查看API市場發佈的API是否可爲自身業務創造價值,可根據業務需要申請使用

【使用對象】:
數據開發:配置數據源、配置API接口,用於產品接口/業務接口快速開發
數據服務平臺開發:管理業務接口、管理數據源、平臺穩定性保障
產品運營:業務接口監控、產品接口使用情況數據分析

1.1 使用流程
API發佈者流程:

圖1-1-1
API使用者流程:

圖1-1-2
1.2 數據源管理
數據服務平臺提供數據源管理功能,數據開發工程將開發好的數據表登記到此平臺,業務部門只能管理各自的數據源。

圖1-2-1
一期數據源只支持pika和redis組件,後續會支持更多存儲組件(hbase/mysql/es等)
1.3 API開發
有了數據源後,業務開發就可以基於該數據源配置API接口入參和出參等信息,快速生成和發佈API,提高業務交付效率。

圖1-3-1
通過數據服務開發的API,能規範API接口定義,統一管理各業務線的API接口。
1.4 API調試
配置API完成後,就進入到API調式階段,在這裏業務開發可以輸入請求參數的值進行調用,查看請求詳情和返回內容,驗證API接口入參與出參是否符合預期。

圖1-4-1
1.5 API發佈
API調試通過後,就可以發佈API,這裏需要走工單審批,審批通過後,會自動發佈的API網關。
1.6 API網關
作爲數據服務API網關,必須具備身份認證、權限驗證、限頻限流等功能。
身份認證:爲了解決接口安全問題,會爲每個產品線分配一對devKey和devSecret,API接口在調用時,需要帶上devKey和簽名信息才能訪問。
權限驗證:對於每個已發佈的API,都要經過API負責人授權才能訪問。
限頻限流:API負責人在發佈API時,可以設置接口的QPS和QPD,超過設定的閾值,就會限制接口的訪問。
1.7 API市場
API發佈成功後,會上架到API市場,業務開發可以在API市場搜索和查看已經上架的API接口的入參、出參、錯誤碼、發佈者等信息,還能申請某些API的權限,審批通過後就可以直接調用該API接口獲取數據。

圖1-7-1

圖1-7-2
1.8 服務概覽
平臺具備服務概覽功能,包含已發佈的API數量、未發佈API數量、調用API成功次數、調用API失敗次數、錯誤碼分佈等統計功能,以及查看編輯且未發佈(草稿狀態)的API列表。

圖1-8-1
二、極光數據服務平臺架構設計

2.1 產品架構圖

圖2-1-1
數據服務平臺從產品層面,主要分爲四層:
1、應用層:業務根據需求可以申請調用某些API獲取數據 。
2、功能層:平臺提供從API創建->API調試->API發佈->API監控等功能。
3、支撐層:支撐平臺使用的一些基礎功能,包括:用戶管理、角色管理、日誌管理、工單審批等功能。
4、數據源層:數據存儲組件,包括:pika、redis、hbase、mysql、es等。

2.2 技術架構圖

圖2-2-1
數據服務平臺主要分爲兩部分:
【管理端】:
管理端主要提供給業務開發使用,通過管理端,業務開發能夠快速完成配置數據源 ->開發API -> 發佈API等操作。
【服務端】:
服務端提供對內或對外API接口訪問,這裏又分爲三層:
網關層:API調用入口,主要負責認證、權限、API路由、限頻、限流等工作。
接口層:提供API接口查詢服務,根據API信息組裝參數和返回查詢結果。
數據訪問層:該層提供訪問業務數據存儲組件。
2.3 整體交互圖

圖2-3-1
API發佈者通過管理端生成併發布API後,API接口元數據信息(數據源、入參、出參、QPS、QPD等信息)會被存放到redis,供認證中心、網關、可配置服務使用。
2.4 可配置化接口服務
在數據服務平臺一期建設中,提供基於pika和redis可配置化(NoSQL API)接口能力,其數據源是通過jcache代理層連接pika和redis,業務數據 以KV方式存儲,可按照簡單的key-value對外提供服務,把key作爲入參,value作爲出參來抽象對外提供的API接口。
可配置化接口服務對外提供一個抽象接口,在本抽象接口中按照接口id獲取接口的元數據信息(數據源、入參、出參等),再按照接口元數據信息創建數據源連接,生成存儲key,獲取value值,最後封裝出參返回。

圖2-4-1
用戶身份認證、api調用權限認證、限流等前置邏輯都通過後,進行api轉發。在數據服務平臺創建發佈的任意路徑api(Jcache可配置接口),經過網關都會轉發到可配置接口服務的抽象api中。

三、後續規劃
雖然一期功能已經上線,但只能滿足部分業務需求,還有很多功能需要完善和開發,以下是二期功能:
數據源支持更多存儲組件,如:hbase、mysql、es、hive等
增加配置API的前置處理和後置處理能力
實現API服務編排功能,支持服務串行、並行、分支等能力
增加API接口的彈性伸縮和資源隔離功能
增加註冊API功能,業務可以將現有的API註冊到數據服務平臺
在一期產品功能基礎上,結合業務需求,完善平臺功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章