如何为微服务构建简化的开发环境

时间:2015-01-11 19:14:05

标签: git github vagrant fig microservices

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

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

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

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

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

我目前正在考虑一个拥有一些配置,流浪汉和无花果的主项目可能会成功。我目前正在考虑实施这种方法的两种方法。

  1. 为配置提供一些默认值,即应该找到project_1 在../project_id等
  2. 提供将创建子模块的脚本 根据用户的github帐户,这将创建远程 用户的分叉以及上游项目的远程。
  3. 有没有其他人解决过这个问题或者工作流程很好?

1 个答案:

答案 0 :(得分:1)

我决定选择无花果。

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

来引用该服务

这假设所有服务都作为兄弟姐妹签出。这也可以使用git子树轻松完成。

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