我在考虑微服务架构,并想知道人们是否有适合开发环境的最佳实践。
我的工作假设是每个微服务都将存在于它自己的git存储库中,以实现隔离和易于部署。我还假设每个开发人员都会创建他们正在处理的任何仓库的分支。
我正在考虑的问题出现在您正在处理涉及多个微服务的问题上。例如,存在影响一个微服务的缺陷以及它如何适当地消耗另一个微服务。
假设有n个项目涉及缺陷,您必须检查n个git存储库并将它们配置为一起工作。如果它们各自都有Vagratefile和Dockerfile,那么最终会运行n个VM。理想情况下,您只有1个Vagrant虚拟机,每个服务器只是同一个虚拟机中的新Docker实例。
使用git子模块的主repo /项目可以工作。问题是如果我们创建一个通用的主仓库/项目,那么子模块将指向上游而不是开发人员的分支。
我目前正在考虑一个拥有一些配置,流浪汉和无花果的主项目可能会成功。我目前正在考虑实施这种方法的两种方法。
有没有其他人解决过这个问题或者工作流程很好?
答案 0 :(得分:1)
我决定选择无花果。
如果微服务依赖于另一个微服务,无花果将使用../
来引用该服务这假设所有服务都作为兄弟姐妹签出。这也可以使用git子树轻松完成。
我的dev_ops repro包含我的boot2docker等的Vagrant文件。