我在考虑微服务体系结构,并想知道人们是否拥有开发环境的良好最佳实践。如何为微服务构建简化的开发环境
我的工作假设是每个微服务都将存在于它自己的git存储库中,以实现隔离和部署的简便性。我还假设每个开发人员都会创建他们正在处理的任何回购的分支。
我正在考虑的问题出现在您正在处理涉及多个微服务的问题上。例如,影响一项微服务的缺陷以及它如何适当地消耗另一项微服务。
假设有n个项目涉及缺陷,您必须签出n个git存储库并将其配置为一起工作。如果它们每个都有Vagratefile和Dockerfile,则最终运行n个虚拟机。理想情况下,您只有1个Vagrant虚拟机,每个服务器只会是同一个虚拟机中的新Docker实例。
使用git子模块的主repo /项目可以工作。问题是如果我们创建一个通用的主repo/project,那么子模块将指向上游而不是开发者的fork。
我现在正在考虑一个有一些配置,流浪和无花果的主项目可能会诀窍。我目前正在考虑实施这种方法的两种方法。
- 提供一个配置的一些默认设置即PROJECT_1应设在 ../project_id等
- 提供一个脚本,将根据用户的帐户GitHub的子模块创建 ,这将创建远程对 用户的叉子以及上游项目的远程设备。
有其他人解决了这个问题或者有一个好的工作流程吗?
这是主项目图的配置如何将设置一个很好的例子。 http://stackoverflow.com/questions/27408510/developer-environment-how-to-call-consume-other-micro-services –
你想出了一种处理Git的方法吗?这是一个有趣的问题。 –