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