2015-01-11 41 views
6

我在考虑微服务体系结构,并想知道人们是否拥有开发环境的良好最佳实践。如何为微服务构建简化的开发环境

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

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

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

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

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

  1. 提供一个配置的一些默认设置即PROJECT_1应设在 ../project_id等
  2. 提供一个脚本,将根据用户的帐户GitHub的子模块创建 ,这将创建远程对 用户的叉子以及上游项目的远程设备。

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

+1

这是主项目图的配置如何将设置一个很好的例子。 http://stackoverflow.com/questions/27408510/developer-environment-how-to-call-consume-other-micro-services –

+0

你想出了一种处理Git的方法吗?这是一个有趣的问题。 –

回答

1

我决定去图。

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

这是假设所有的服务都签出作为兄弟这项服务。这也可以很容易地使用git子树来完成。

我的dev_ops摄制包含了我对boot2docker流浪文件等

相关问题