第一章 vagrant简介--Why Vagrant?(3)

来源:互联网 发布:淘宝拓拨斯科技怎么样 编辑:程序博客网 时间:2024/05/21 20:29

为了更深入的理解使用vagrant的必要性,我们需要了解vagrant解决了哪些问题。在vagrant出现之前,通常创建一款web应用需要在开发主机上安装和配置所有开发必备的软件,例如Apache、Mysql、RabbitMQ等等。
在早期,开发web应用几乎只使用php和mysql就足够了,多个项目可以通过apache的虚拟主机正常运行,开发环境很少变动。
但是技术发展到今天,开发web应用有了更多可以选择的技术、更复杂的配置,虽然PHP和MYSQL仍然很流行,但是他们显然不再主导开发语言市场,JavaScript、Python、Ruby等越来越受到开发者的青睐。
同样对于数据库而言,现在也有了更多的选择,例如:MySQL、PostgreSQL、Redis、Riak、Cassandra等等,服务器也有了更多的选择,例如:Apache, Nginx, Unicorn, Thin, Rab‐bitMQ, Solr等等。
项目中需要安装大量的软件以及正确的配置他们将变得困难起来,以下是在本地搭建环境时经常遇到的问题。

  • 对于使用Mac OS X 和Windows作为操作系统的人员而言,手动安装所有的软件是很容易的,但是很多软件并不能在windows上编译、运行。
  • 环境配置比软件安装复杂,开发人员可能不太清楚怎样配置才能贴近生产环境,错误的配置将导致程序可以正常运行在开发环境但是无法在生产环境运行。
  • 手动配置好的开发环境和生产环境不一致的情况下会导致很多“works on my machine”bugs(bugs在开发人员的机器上并没有出现,但是在生产环境出现),理想情况下,开发环境应该和生产环境相同。
  • 管理多个项目将变得困难起来,每一个项目的配置可能通常不同,这就导致每一个独立的项目在运行时可能未安装所需要的软件或者安装了很多冗余的软件,这使得开发环境变得很混乱。
  • 每个团队成员都有独立的开发环境,因此很难做到团队成员开发环境的同步一致,当团队有新成员加入时,他需要手动搭建好复杂的开发环境,这将会花费大量的时间。
  • 开发人员使用不同的操作系统,有些软件在一些操作系统上安装和运行是非常困难的。开发人员经常在搭建开发环境时花费大量精力。

vagrant很好的解决了以上问题,vagrant提倡使用shell scripts或者配置管理工具来实现搭建开发环境的自动化,vagrant在虚拟机上搭建开发环境,因此无论开发人员的电脑上安装的操作系统是 Linux、Mac OS X、windows,vagrant都能够使得开发人员的开发环境和生产环境完全相同。同时运行多个项目也是容易实现的,因为每个项目都运行在独立的虚拟机上。统一团队开发环境也是很容易实现的,开发人员可以分享打包后的虚拟机镜像供其他成员使用。

0 0
原创粉丝点击