【发布时间】:2015-03-09 13:43:25
【问题描述】:
我在考虑微服务架构,想知道人们是否有开发环境的最佳实践。
我的工作假设是每个微服务都将存在于它自己的 git 存储库中,以实现隔离和易于部署。我还假设每个开发人员都会为他们正在处理的任何 repo 创建一个分支。
我正在考虑的问题出现在您正在处理涉及多个微服务的问题时。例如,有一个缺陷会影响一个微服务以及它如何适当地使用另一个微服务。
假设有 n 个项目涉及该缺陷,您必须检查 n 个 git 存储库并将它们配置为一起工作。如果他们每个人都有一个 Vagratefile 和 Dockerfile,那么你最终会运行 n 个 VM。理想情况下,您只有 1 个 Vagrant 虚拟机,每个服务只是同一虚拟机中的一个新 Docker 实例。
带有 git 子模块的主仓库/项目可以工作。这样做的问题是,如果我们创建一个通用的主仓库/项目,那么子模块将指向上游而不是开发人员的分支。
我目前正在考虑一个包含一些配置、vagrant 和 fig 的主项目可能会解决问题。我目前正在考虑两种实现这种方法的方法。
- 提供一个带有一些默认值的配置,即 project_1 应该位于 在 ../project_id 等
- 提供将创建子模块的脚本 根据用户的 github 帐户,这将为 用户的 fork 以及上游项目的远程。
有没有其他人解决过这个问题或有一个好的工作流程?
【问题讨论】:
-
这是如何设置主项目 fig config 的一个很好的例子。 stackoverflow.com/questions/27408510/…
-
你想出处理Git的方法了吗?这是一个有趣的问题。
标签: git github vagrant fig microservices