Vagrant和微服务开发环境

3
我有一个正在运行的项目,由一组微服务组成。我们计划引入Vagrant,以便任何新加入团队的开发人员都可以轻松地在自己的机器上设置环境并运行。
我已经阅读了一段时间的Vagrant,它看起来很有趣。我从简单的开始:使用Vagrant初始化了一个微服务,然后创建了一个VagrantFile
这是一个好方法吗?每个微服务都有一个VagrantFile
然后我尝试为这个微服务创建一个Box。
这个Box应该叫什么名字?我应该遵循任何命名约定吗?
这个Box应该如何和在哪里持久化?这应该是我的微服务组件源代码的一部分吗?
2个回答

1

我看到您也提出了一个关于此事的相似且可能重复的问题。

我也不确定为什么您要将Microservice大写,因为我不知道有任何特定命名的软件。

Vagrant和虚拟化/虚拟机通常让您选择系统架构-通常人们会尝试选择接近生产环境的东西。如果您有一个小站点并且所有内容都将在共享框或VPS上运行,则将所有内容安装在一个vagrant框中并进行配置(使用Docker或简单的shell配置脚本)是可以的。

如果您在生产中有多个服务器(www、应用程序、数据库等),则您可以选择。您仍然可以将所有这些角色配置到一个vagrant框中,或者您可以启动多个框,并尝试复制这些角色(请参见多机器vagrant)-这是您可能更喜欢Docker而不是shell配置脚本的情况。可以假设您可以在所有环境(开发、qa、生产等)中使用相同或非常相似的Docker配置。

您最后一段的问题,

这个盒子应该取什么名字?我应该遵循什么命名规范?这个盒子应该如何持久化?这应该是我的微服务组件源代码的一部分吗?
这些通常由您和您的开发和部署工作流决定。在多个开发者环境中,我通常将Vagrantfile与源代码一起存储在版本控制中,以便所有开发者可以从相同的开发环境中工作,并且快速轻松地吸收新开发人员或者在部署和配置时重建您的盒子。
  • 命名盒子和命名约定不是必需的,由您决定
  • 盒子的持久性通常不是高优先级 - 您可以快速轻松地(每几个小时、天、每周一次等)重新创建您的盒子
  • 我不能确定您是否应该将Vagrantfile与源代码存储在一起,这将取决于您的团队组成、开发工作流程等

我正在谈论微服务架构以及如何将Vagrant应用于我应用程序中的一组微服务。 - joesan
@sparkr仍然不是一个专有名词,不应该大写。 - Brian Brownton

1

我大多数同意@Brian的答案

我已经阅读了一段时间的Vagrant,它看起来很有趣。我从简单的开始。我使用Vagrant初始化了一个Microservices,然后创建了一个VagrantFile。这是一个好方法吗?每个Microservice一个VagrantFile?

我不会这样做,因为设置整个虚拟机(即使使用docker provider)需要一些成本(CPU,RAM),所以最好是在一个Vagrantfile上部署您的服务,这样如果您部署新服务,可以在此VM上进行部署。

您可以查看(我发现)使用Vagrant查看微服务架构的好例子 https://github.com/ewolff/microservice/tree/master/docker-vagrant


docker-vagrant GitHub示例可以作为一个起点。感谢这个。但是在我的情况下,我们所有的微服务都在一个单独的GitHub存储库中,需要以某种方式将它们拉取并协调在一起。有任何相关的指针吗? - joesan
1
听起来你有和这个问题一样的困扰:http://stackoverflow.com/questions/36364652/shared-vagrant-configuration-across-multiple-projects 你可以看看我的答案,使用同步文件夹。 - Frederic Henri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接