各环境业务配置数据同步问题方案征求

2022-09-21 11:23:16 +08:00
 guguji

场景

公司分四个开发环境 dev/uat/pre/pro 系统开发时,研发&测试会在 dev 配置完整,测试通过后,后续环境都需要手动配置一份,繁琐且容易出错

思路

参考 git branch 思路,dev 配置往 其他各个环境推进,无需再配置一遍,省时省力

难点

老铁们有啥好的方案么?交流交流

1230 次点击
所在节点    程序员
11 条回复
xuanbg
2022-09-21 11:33:41 +08:00
最简单也是最好的办法,使用配置中心来提供不同环境下的配置数据。
guguji
2022-09-21 11:47:08 +08:00
@xuanbg 主要是业务表配置的,举个例子,假设要配置一个活动,设计到圈人、价格、时间、渠道、投放等,这是一个完整打包的业务数据,没办法依赖配置中心。
sujin190
2022-09-21 12:06:12 +08:00
@xuanbg #1 配置中心才是坑死人的,如果把业务数据也放到配置中心来配置,然后测试开发生产都在一起,你确定不会分分钟搞崩生产环境?

运维、产品、运营、市场不同的配置不同人自己负责呗,为啥要 diff 同步,这种容易坑人,除了运维,其他的配置自身就是产品流程的一部分,功能设计的时候本来就要在产品流程中设计操作功能

你这既要动态配置有要求开发测试生产环境一致,本来就是静态功能,直接硬编码随着迭代正常发布测试就行吧,不需要可配自然也不需要同步,过度设计制造麻烦啊,测试开发应该只负责功能一致,谁负责的配置需求谁负责设置并完成回归测试呗,比如一个运营配置需求,刚上线时还没正式开放功能使用时你不让他自己弄一遍并完成回归测试,后面还不分分钟出事故啊
securityCoding
2022-09-21 12:08:22 +08:00
导出、导入?
renmu
2022-09-21 12:11:06 +08:00
@guguji 写成功能让运营配置去啊
clf
2022-09-21 12:11:41 +08:00
相关的业务自己写部署后的调用实施记录呗。可以由工具去主动调用。
potatowish
2022-09-21 12:12:55 +08:00
消息队列
sujin190
2022-09-21 12:14:05 +08:00
如果考虑到上线时配置过多,需要学习不容易快速完成,那么应该全部有默认配置,上线后先以默认配置运行,之后按需修改,业务配置的默认参数应该时依据运维环境相关配置动态生成,所以业务配置不会有环境相关不能直接以默认配置运行的情况,运维配置无非是数据地址域名什么的,不大可能需要配置非常多又不能一致的,而且吧设计的时候,默认配置一般是硬编码在代码里的,确实需要存数据库的,要么和正常配置数据分开存要么有独立标识代码里做兼容

总的来说,个人认为 diff 同步一致方案肯定是个坑,感觉不大可能有靠谱的方案的,除非你是配置完就再也不需要改了这种
guguji
2022-09-21 14:33:32 +08:00
@sujin190 我补充了一下背景,倒不是默认值问题,纯粹的元数据驱动系统,全程配置
sujin190
2022-09-21 14:48:27 +08:00
@guguji #9 看其实,我们写业务流程是直接写代码,你写业务流程是写配置,那么你需要一个模板引擎啊,开发配置时写模板,之后用对应的环境信息编译生成对应环境的配置设置到数据库之类的就好吧,模板就可以用 git 管理吧
xuanbg
2022-09-21 17:57:24 +08:00
@guguji 你这种业务数据,当然是存数据库啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/881817

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX