流浪者和微服务开发环境

时间:2016-04-06 12:36:04

标签: vagrant

我有一个由一组微服务组成的运行项目。我们计划引入Vagrant,以便任何加入团队的新开发人员都可以轻松地在他/她的机器上设置和运行环境。

我已经阅读了Vagrant一​​段时间,看起来很有趣。我开始时很简单。我使用Vagrant初始化了一个微服务,然后创建了一个VagrantFile。这是一个好方法吗?每个微服务一个Vagrant文​​件?

然后我尝试为这个微服务创建一个Box。这个盒子应该有什么名字?我应该遵守任何命名惯例吗?这个盒子应该如何以及在何处被保留?这应该是我的微服务组件的源代码的一部分吗?

2 个答案:

答案 0 :(得分:1)

我看到你也问过similar and possibly duplicate这个问题。

我也不确定你为什么要利用微服务,因为我不知道任何特别命名的软件。

Vagrant,以及一般的虚拟化/虚拟机,让您选择系统架构 - 通常人们会尝试选择接近生产或将来的东西。如果你有一个小型网站,一切都将通过共享盒或VPS运行,那么将所有内容安装在一个流浪盒中并进行配置(使用Docker或只是简单的shell配置脚本)都可以。

如果生产中有多台服务器(www,app,db等),那么您可以选择。您仍然可以将所有这些角色配置到一个流浪盒中,或者您可以启动多个框,每个框都尝试复制这些角色(请参阅multi-machine vagrant) - 这种情况下您可能更喜欢Docker over shell provisioning脚本。据推测,您可以在所有环境(开发,qa,生产等)中使用相同或非常类似的Docker配置。

上一段中的问题,

  

这个盒子应该有什么名字?我应该坚持任何命名   约定?这个盒子应该如何以及在何处被保留?应该这样   是我的微服务组件的源代码的一部分?

通常取决于您和您的开发和部署工作流程。在多开发人员环境中,我通常会将Vagrantfile以及源代码存储在版本控制中,因此所有开发人员都可以在同一个开发环境中工作,并且可以快速轻松地登录新开发人员或者将您的盒子插入盒子中如果您正在进行部署和配置,请重新开始。

  • 命名框,并且不需要命名约定,由您决定
  • 盒子的持久性通常不是一个高优先级 - 想法是你可以快速轻松地(每隔几小时,几天,每周一次等)重新创建你的盒子
  • 我不能确定您是否应将Vagrantfile与源代码一起存储,这取决于您的团队组成,开发工作流程等。

答案 1 :(得分:1)

我同意@Brian的大部分答案

  

我已经读过Vagrant一​​段时间了   有趣。我开始简单了。我初步确定了其中一个   使用Vagrant的微服务然后创建VagrantFile。这是   一个好方法?每个微服务一个Vagrant文​​件?

我不会这样做,设置整个虚拟机会有一些成本(CPU,RAM)(就像流浪汉一样,即使使用docker provider),所以最好的办法就是让你的服务有一个Vagrantfile已部署,因此,如果部署新服务,则可以在此VM上部署。

你可以看到(我发现的)一个很好的例子,看到使用Vagrant https://github.com/ewolff/microservice/tree/master/docker-vagrant

的微服务架构