【问题标题】:Microservices and database changes微服务和数据库更改
【发布时间】:2021-10-29 16:03:11
【问题描述】:

我们将数据库的微服务和 DDL 脚本作为 jar 文件中的资源,使用 liquibase/flyway 部署在启动微服务上。 DDL 看起来不错。

如何处理 DML? 我们应该用 DML 脚本构建新的 jar 文件,然后重新部署微服务吗? 还是将数据库和微服务分开部署会更好?

如何在环境(dev、sit、uat等)之间导出/导入数据?

如果微服务支持 CRUD 操作,我们可以使用微服务来导出/导入数据吗? IE。在开发环境中,我们设置数据,然后导出为 json,然后使用微服务和 json 在 uat 上导入。

【问题讨论】:

    标签: database microservices


    【解决方案1】:

    奥列格,好问题。我建议将数据库部署与应用部署分开,并为两者采用 GitOps 策略 (CD)。

    管道将部署 DB(应用 DDL),您将控制流程——这就是所谓的 DataOps 实践。 https://www.truedataops.org

    应用程序和数据库之间的这种分离有助于您在可维护性方面(微服务架构的一个关键目标)。

    关于从环境迁移数据,有很多工具可以非常有效地帮助这种工作,每个数据存储通常都有一个。

    例如,Oracle GoldenGate 可以帮助这个过程。 https://www.oracle.com/integration/goldengate/

    但是我想知道您为什么要从与产品生命周期的不同阶段相关的环境中迁移数据(开发数据通常是非生产数据,而且在开发阶段拥有生产数据也不是最佳实践——安全性/保护问题)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2020-04-12
      • 2016-04-08
      • 2016-11-05
      相关资源
      最近更新 更多