6

我在考虑微服务架构,想知道人们是否有开发环境的最佳实践。

我的工作假设是每个微服务都将存在于它自己的 git 存储库中,以实现隔离和易于部署。我还假设每个开发人员都会创建他们正在处理的任何 repo 的分支。

我正在考虑的问题出现在您正在处理涉及多个微服务的问题时。例如,有一个缺陷会影响一个微服务以及它如何适当地使用另一个微服务。

假设 n 个项目涉及该缺陷,您将必须检查 n 个 git 存储库并将它们配置为一起工作。如果他们每个人都有一个 Vagratefile 和 Dockerfile,那么你最终会运行 n 个 VM。理想情况下,您只有 1 个 Vagrant VM,并且每个服务都只是同一 VM 中的一个新 Docker 实例。

带有 git 子模块的主仓库/项目可以工作。这样做的问题是,如果我们创建一个通用的主仓库/项目,那么子模块将指向上游而不是开发人员的分支。

我目前正在考虑一个具有一些配置、vagrant 和 fig 的主项目可能会成功。我目前正在考虑两种实现这种方法的方法。

  1. 提供具有一些默认值的配置,即 project_1 应位于 ../project_id 等
  2. 提供一个脚本,该脚本将根据用户的 github 帐户创建子模块,这将为用户的 fork 以及上游项目创建远程。

有没有其他人解决了这个问题或有一个好的工作流程?

4

1 回答 1

1

我决定选择无花果。

如果一个微服务依赖于另一个微服务 fig 将使用 ../ 引用该服务

这假定所有服务都作为同级检出。这也可以使用 git 子树轻松完成。

我的 dev_ops repro 包含我用于 boot2docker 等的 Vagrant 文件。

于 2015-02-27T00:59:01.880 回答