【问题标题】:How to build a streamlined development environment for micro-services如何为微服务构建精简的开发环境
【发布时间】:2015-03-09 13:43:25
【问题描述】:

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

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

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

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

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

我目前正在考虑一个包含一些配置、vagrant 和 fig 的主项目可能会解决问题。我目前正在考虑两种实现这种方法的方法。

  1. 提供一个带有一些默认值的配置,即 project_1 应该位于 在 ../project_id 等
  2. 提供将创建子模块的脚本 根据用户的 github 帐户,这将为 用户的 fork 以及上游项目的远程。

有没有其他人解决过这个问题或有一个好的工作流程?

【问题讨论】:

标签: git github vagrant fig microservices


【解决方案1】:

我决定选择无花果。

如果一个微服务依赖于另一个微服务 fig 将使用 ../ 引用这个服务

这假定所有服务都作为同级检出。这也可以使用 git 子树轻松完成。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 2022-10-05
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2017-07-13
    • 2018-09-06
    • 1970-01-01
    相关资源
    最近更新 更多