数据开放平台的配置管理
背景
美團是數據驅動的技術公司, 非常重視使用數據的效率。為了達到這個目標,我們將數據以開放平臺的形式開放給需求方。例如,幫助需求方開發報表的報表開放平臺,幫助需求方獲取數據的自助查詢平臺,讓需求方參與數據建設的ETL開放平臺和調度管理服務。在這些開放平臺上,需求方填寫必要的配置,平臺負責根據這些配置產生需要的報表,導出數據,或者產生ETL流程并通過調度有序執行。通過這種方式,簡化用戶使用數據的流程,提高用戶使用數據的效率。
開放平臺的使用導致產生了大量的,不同類型的配置。起初,每個服務獨立保存和管理自己的配置。隨著開放平臺的發展,與開放力度的增加,開放平臺對配置的管理遇到了各種各樣的問題。主要體現在
針對遇到的問題,我們首先詳細的分析了需求:
以上需求為必須滿足的需求。為了能夠更方便的使用,還希望該解決方案能夠在配置審核通過時,通知使用該配置的服務,使其知曉該變更。
為了滿足上述需求,我們決定開發定制的統一集中管理配置的配置管理服務,命名為ConfHub,意為“配置的中心樞紐”。
配置規劃
集中管理配置時,不同應用之間的隔離就顯得非常重要。同時,應用對配置也有分類需求。所以,需要對配置進行規劃。
規劃的基本思路是,首先,把配置按照應用進行分類。每個配置屬于一個應用,每個應用下,可以有很多配置。在應用下設置命名空間,用來滿足應用內的配置分類需求。規劃方案如下圖:
這種配置規劃的方式避免了配置沖突。
版本管理
版本管理可以帶來很多好處,比如
最基本的版本管理如下圖
這種基本的版本管理方案可以存儲配置的歷史變更。但實際使用中,并不能滿足需求。
在實際的配置使用時,配置需要最終進入生產環境,如報表開發平臺的配置產生報表供分析人員使用,ETL開放平臺的配置加入調度定時處理數據等。這些生產環境的配置的改動需要經過數據組審核。但在開發過程中,配置需要不停的變更。所以希望版本管理能支持在既不影響線上實際使用的配置的前提下,能夠隨意修改測試使用的配置。為了解決這種需求,我們對版本管理的邏輯進行了修改。如下圖所示
在用戶需要修改配置時,在測試環境版本中增加新的版本。測試時,使用最新的測試環境版本的配置進行測試。當用戶需要更新生產環境中使用的配置時,向數據組提交上線申請,系統會自動的將最新的測試環境版本和最新的生產環境版本的配置進行對比,并將對比結果發給相應負責人審核。審核通過的配置會被添加到生產環境版本中。
通過這種版本管理方法,既保證了生產環境版本是嚴格受控的,又能保證用戶可以自由的測試。
審核
為了保證生產環境運行的配置的質量,生產環境的配置的變更都必須進行審核。在這一點上,我們使用“人工審核,系統輔助”的方案。人工審核,確保配置質量,系統輔助,盡量減少審核人的工作量。
審核過程流程圖如下:
為了提高審核的效率,減少人工審核工作量,用戶在開放平臺,即配置的使用方,提交配置變更申請。配置使用方會首先對配置進行基本校驗,校驗通過的配置變更才會提交到配置管理系統。
目前,ConfHub滿足了現有開放平臺的配置管理需求,有效的支持各個開放平臺的發展。
后續,ConfHub主要發展方向是
總結
以上是生活随笔為你收集整理的数据开放平台的配置管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息中间件系列(四):消息队列MQ的特点
- 下一篇: Spring Boot中的缓存支持(一)