如何搭建精简的微服务开发环境

How to build a streamlined development environment for micro-services

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

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

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

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

具有 git 个子模块的主 repo/project 可以工作。问题是如果我们创建一个通用的主模块 repo/project 那么子模块将指向上游而不是开发人员的分支。

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

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

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

我决定选择无花果。

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

引用该服务

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

我的 dev_ops 复制包含我的 boot2docker 等 Vagrant 文件