【问题标题】:Microservices with Spring-Boot and Release Management具有 Spring-Boot 和发布管理的微服务
【发布时间】:2017-02-17 08:29:18
【问题描述】:

寻求有关如何对使用 Spring Boot 构建的微服务进行发布管理的建议。

我工作过的大多数项目都使用发布插件(maven)来创建标签以及发布 maven 项目(jar、war、rpm)。通常,这依赖于发布过程中所有子项目(jar、wars)的 maven 父/子关系(单体源代码,都位于单个 git 存储库中)。我想知道人们如何维护不同的启动项目(微服务)并发布。

在我看来,以下是可能的策略:

  1. 每个 git 存储库一个 Spring Boot 项目(微服务 maven 项目),以便独立管理发布。
  2. 一个多模块 maven 项目,每个模块都是一个微服务。所有子模块(微服务)必须一起发布。父 pom 必须使用 Boot 的父 pom。
  3. 依靠 maven-release-plugin 功能仅基于发布发布某些子模块。这将使每个 maven 子模块(可能)具有不同的版本。

您的团队发现什么有用?我喜欢 Boot 的编程模型,但我希望我可以使用与 Boot 模型保持简单一致的发布策略。

【问题讨论】:

  • 对我来说只有 1 是一个有效点。如果您像第 2 点那样工作,那么如果您必须或想要将它们全部一起发布,那么做微服务是没有意义的。
  • 我同意,但是我怀疑这会随着微服务的添加而增长,从而使微服务发布管理变得复杂。大量的集成测试和回归测试。
  • 当然可以。这是微服务架构的一个缺点,你应该确保你可以处理它(即你应该有一个高度自动化的基础设施)。
  • 感谢@dunni 的评论

标签: spring-boot microservices spring-boot-maven-plugin


【解决方案1】:

为了结束这个循环,我正在使用选项 1。虽然拥有多个存储库可能看起来很多,但实施微服务架构会排除良好的 devops 流程来简化此发布管理流程。

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 2015-03-22
    • 2019-08-02
    • 2019-01-19
    • 2019-02-20
    • 2019-01-03
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多