背景

美团是数据驱动的技术公司, 非常重视使用数据的效率。为了达到这个目标,我们将数据以开放平台的形式开放给需求方。例如,帮助需求方开发报表的报表开放平台,帮助需求方获取数据的自助查询平台,让需求方参与数据建设的ETL开放平台和调度管理服务。在这些开放平台上,需求方填写必要的配置,平台负责根据这些配置产生需要的报表,导出数据,或者产生ETL流程并通过调度有序执行。通过这种方式,简化用户使用数据的流程,提高用户使用数据的效率。

开放平台的使用导致产生了大量的,不同类型的配置。起初,每个服务独立保存和管理自己的配置。随着开放平台的发展,与开放力度的增加,开放平台对配置的管理遇到了各种各样的问题。主要体现在

  1. 可能由于用户误修改或者误删除了配置,导致了运行问题。希望能够追溯配置的变更历史,更好的找到,提醒,并修复类似的问题。
  2. 在开放平台上,用户可以自行测试不同的配置。但是用户如果需要将自己的配置上线成为在线报表,或者添加到调度参与数据仓库数据清洗,就需要确保用户的配置的质量。必须经过数据组的审核,以保证系统的健壮性与逻辑的准确性。
  3. 每个开放服务的业务都与开放配置有关。这些配置的管理需求十分相似。每个服务都自行维护配置会增加开发成本和维护成本。

针对遇到的问题,我们首先详细的分析了需求:

  1. 统一管理和存储配置。支持不同服务器上的不同语言编写的服务将配置统一存储和管理,并可以按照需求调用。从而避免不同服务重复开发,增加开发成本和维护成本。
  2. 配置隔离。不同的开放平台的配置互相之间是独立的,统一管理和存储,但是互相之间需要互不干扰。
  3. 版本控制。记录配置的历史变更。通过对比不同版本,可以追查修改人,修改原因,修改时间等。在用户出现误操作时,也可以有效的回滚,尽量的降低修复成本,从而降低出错的成本,提高对用户错误修改的容忍度。
  4. 审核功能。通过审核,对可能影响到系统正常运行的主要配置进行变更管理。每次变更,都必须经过审核。审核通过的变更才会被提交到系统中,参与系统的正常运行。
  5. 可视化页面。为了方便测试,管理和运维,需要有方便的页面支持浏览配置列表,查看和修改系统中已经存在的配置等。

以上需求为必须满足的需求。为了能够更方便的使用,还希望该解决方案能够在配置审核通过时,通知使用该配置的服务,使其知晓该变更。

为了满足上述需求,我们决定开发定制的统一集中管理配置的配置管理服务,命名为ConfHub,意为“配置的中心枢纽”。

配置规划

集中管理配置时,不同应用之间的隔离就显得非常重要。同时,应用对配置也有分类需求。所以,需要对配置进行规划。

规划的基本思路是,首先,把配置按照应用进行分类。每个配置属于一个应用,每个应用下,可以有很多配置。在应用下设置命名空间,用来满足应用内的配置分类需求。规划方案如下图:

这种配置规划的方式避免了配置冲突。

版本管理

版本管理可以带来很多好处,比如

  1. 错误修改时,进行回滚。
  2. 在有用户恶意修改时,可以迅速修复。
  3. 执行异常时,根据最近版本修改的内容,定位系统错误的原因。

最基本的版本管理如下图

这种基本的版本管理方案可以存储配置的历史变更。但实际使用中,并不能满足需求。

在实际的配置使用时,配置需要最终进入生产环境,如报表开发平台的配置产生报表供分析人员使用,ETL开放平台的配置加入调度定时处理数据等。这些生产环境的配置的改动需要经过数据组审核。但在开发过程中,配置需要不停的变更。所以希望版本管理能支持在既不影响线上实际使用的配置的前提下,能够随意修改测试使用的配置。为了解决这种需求,我们对版本管理的逻辑进行了修改。如下图所示

在用户需要修改配置时,在测试环境版本中增加新的版本。测试时,使用最新的测试环境版本的配置进行测试。当用户需要更新生产环境中使用的配置时,向数据组提交上线申请,系统会自动的将最新的测试环境版本和最新的生产环境版本的配置进行对比,并将对比结果发给相应负责人审核。审核通过的配置会被添加到生产环境版本中。

通过这种版本管理方法,既保证了生产环境版本是严格受控的,又能保证用户可以自由的测试。

审核

为了保证生产环境运行的配置的质量,生产环境的配置的变更都必须进行审核。在这一点上,我们使用“人工审核,系统辅助”的方案。人工审核,确保配置质量,系统辅助,尽量减少审核人的工作量。

审核过程流程图如下:

为了提高审核的效率,减少人工审核工作量,用户在开放平台,即配置的使用方,提交配置变更申请。配置使用方会首先对配置进行基本校验,校验通过的配置变更才会提交到配置管理系统。

目前,ConfHub满足了现有开放平台的配置管理需求,有效的支持各个开放平台的发展。

后续,ConfHub主要发展方向是

  1. 部分开放平台对配置管理有特殊的需求。在提供大体相同的配置管理方式后,ConfHub也需要提供一些更精细,更定制的配置管理方式。
  2. 开放的方式不止有开放平台一种,而各种不同的开放方式,都有需要管理的配置。管理其他开放方式的配置,也是ConfHub的目标。

数据开放平台的配置管理相关推荐

  1. 新华智云基于MaxCompute建设媒体大数据开放平台

    摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...

  2. 招商银行周伟:Fintech数据开放平台之数据库军规和内功修炼(含PPT)

    编者说明:在2018数据库大会上,招商银行的资深数据库架构师周伟,分享了招行金融科技数据开放平台的建设经验.这个主题引起了现场听众的广泛关注,我们在此整理发布出来,以其让更多用户能够借鉴到招商银行的成 ...

  3. 中国气象网 气象数据开放平台 API使用方法 (Android)(已废弃)

    2016.7.25更新: 原来的接口已经停用了,现在换了http://www.weatherdt.com/ 这个基本都要求收费了,没有在研究,声明一下. ======================= ...

  4. 数据中台应用原型下载-深圳市政府数据开放平台低保真原型设计-Axure9

    一.深圳市数据开放平台地址: 深圳市政府数据开放平台 (sz.gov.cn) 二.深圳市数据开放平台低保真原型效果图: 1.首页 2.数据目录 3.创新比赛 4.成果展示 5.开发者中心 6.开放统计 ...

  5. 2020版中国开放数据(Open Data)及政府数据开放平台汇总

    2020版中国开放数据(Open Data)及政府数据开放平台汇总 链接 北京市 北京市政务数据资源网 http://www.bjdata.gov.cn/jkfb/index.htm 56家单位.11 ...

  6. 中国气象网 气象数据开放平台 API用法 (Android)

    因为要做个天气应用.须要找个天气的API.上网上搜了下都是那几个,并且基本都过时了.百度有个天气API,只是貌似仅仅能提供当天的.网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远 ...

  7. 基于MaxCompute的媒体大数据开放平台建设

    随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有价值数 ...

  8. 数据集:国外最全的开放数据(Open Data)及政府数据开放平台汇总

    2015年国际科学理事会发布<Open Data in a Big Data World>协议.该协议是"2015年国际科学"的成果,是国际科学四大顶级代表(国际科学理 ...

  9. 用python获取气象数据开放平台信息

    缘由 前端时间在练手做一个Android天气预报的App,然后就去找现有的公共API,发现找到的大部分的网址都是 失效的,最后发现了 聚合数据 和 气象数据开放平台, 由于感觉后者的操作优点麻烦,所以 ...

最新文章

  1. 数据科学工具 Jupyter Notebook 教程(二)
  2. Host ‘XXX‘ is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号
  3. 转 :Vim文件编码识别与乱码处理
  4. ARM 之十二 Cortex-M 内核异常处理、异常定位方法、在线调试、Keil MDK-ARM 的使用
  5. 一道关于 json 和 slice 的题难倒了 80% 的人
  6. BZOJ 3513: [MUTC2013]idiots [FFT]
  7. Guacamole-RDP没有声音解决办法
  8. knife4j导出html有误,knife4j无法生成完整的响应说明
  9. jQuery Mobile中复选框checkbox的data-*选项
  10. python去重排序_python文本去重并排序
  11. PHP面向对象之领域模型+数据映射器
  12. Python 43 视图 、sql注入问题 、事务 、存储过程
  13. C语言深入学习系列 - 字节对齐内存管理
  14. oracle19c ojdbc6,解决ojdbc6升级ojdbc8中文乱码问题
  15. 四川计算机专业高职高考,四川职高计算机专业分数线
  16. 速解元宇宙 / Metaverse 迷雾下的行动指南
  17. 越南语常用的计数词,多少钱用越南语怎么说
  18. 黑苹果open core引导 选择系统界面黑屏,但是可以盲操作左右移动和回车,进度条第一阶段没有苹果logo
  19. python中科学记数法表示_matplotlib中的科学记数法
  20. 访问局域网内SQL Server数据库方法

热门文章

  1. 2015/4/14课堂练习
  2. C、C++ 学习经历
  3. 26. 左旋转字符串
  4. C# WebBrower1控件提示“该文档已被修改,是否保存修改结果”解决方法 .
  5. U-Boot之代码调试
  6. 同事用void把我给秀翻了!
  7. 1024对话内核大神谢宝友
  8. 这个结构体对齐输出有意思
  9. 开机自启动和由一个APK启动另一个APK核心代码
  10. 【Pytorch神经网络基础理论篇】 05 矩阵计算