Vagrant和微服务开发环境
我有一个由一组微服务组成的正在运行的项目。 我们计划引入Vagrant,以便任何加入该团队的新开发人员都能够轻松地在他/她的机器上启动并运行环境。
我一直在阅读流浪汉一段时间,看起来很有趣。 我开始简单。 我使用Vagrant初始化了一个微服务,然后创建了一个VagrantFile。 这是一个好方法吗? 每个微服务有一个VagrantFile?
然后我尝试为这个微服务创建一个Box。 这个盒子有什么名字? 我应该坚持任何命名约定吗? 这个盒子应该如何以及在哪里坚持? 这应该成为我的微服务组件的源代码的一部分?
我看到你已经提出了一个类似的,可能重复的关于这个东西的问题。
我也不确定你为什么要利用Microservice,因为我不知道任何专门命名的软件。
Vagrant以及一般的虚拟化/虚拟机,可让您选择系统架构 - 通常人们会尝试选择与生产或将要生产的产品接近的东西。 如果你有一个小型网站,所有东西都会从一个共享的盒子或VPS上运行,那么把所有东西都安装在一个流浪盒子中并配置(无论是使用Docker还是简单的shell配置脚本)都没问题。
如果你在生产中有多个服务器(www,app,db,不管),那么你有选择。 您仍然可以将所有这些角色配置到一个流浪盒中,或者您可以启动多个盒子,每个盒子都试图复制这些角色(请参阅多机流浪者) - 这种情况下您可能更喜欢Docker而不是shell配置脚本。 大概你可以在所有环境(dev,qa,production等)中使用相同或非常类似的Docker配置。
你最后一段中的问题,
这个盒子有什么名字? 我应该坚持任何命名约定吗? 这个盒子应该如何以及在哪里坚持? 这应该成为我的微服务组件的源代码的一部分?
通常取决于你和你的开发和部署工作流程。 在多开发环境中,我通常Vagrantfile
和源代码一起存储在版本控制中,这样所有的开发人员都可以在相同的开发环境下工作,并且快速轻松地将新开发人员或者核心开箱包重新启动您正在开展部署和配置。
Vagrantfile
与源代码一起存储,这取决于您的团队组成,开发工作流程等 我同意@Brian的大部分答案
我一直在阅读流浪汉一段时间,看起来很有趣。 我开始简单。 我使用Vagrant初始化了一个微服务,然后创建了一个VagrantFile。 这是一个好方法吗? 每个微服务有一个VagrantFile?
我不这样做,有一些成本(CPU,RAM)来设置整个虚拟机(即使在使用docker提供程序时也是如此),所以最好的做法是在服务器上部署一个Vagrantfile,如果你部署可以部署到此VM上的新服务。
你可以看到(我发现)用Vagrant查看微服务体系结构的好例子https://github.com/ewolff/microservice/tree/master/docker-vagrant
链接地址: http://www.djcxy.com/p/30149.html上一篇: Vagrant and Microservices Dev Environment
下一篇: Where does Elixir/erlang fit into the microservices approach?