首页 > 解决方案 > 微服务和数据库更改

问题描述

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

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

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

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

标签: databasemicroservices

解决方案


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

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

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

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

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

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


推荐阅读