Várias máquinas dentro de uma — Parte 1

O que é?

Vagrant é uma plataforma que permite criar uma infra-estrutura de forma automática, usando máquina virtual.

A palavra “vagrant” significa vagabundo, o que quer dizer que ele não tem uma casa própria, podendo rodar em qualquer lugar (a principio). A ferramenta possui uma série de plugins o que facilita muito uma série de processos, como alteração do arquivo hosts, entro outros.

Como funciona?

O Vagrant possui um arquivo de configuração de nome “Vagrantfile” e é nele que colocamos as definições da máquina virtual.

Pode-se usar várias ferramentas para “provisionar” a sua máquina virtuais, tais como o Puppet, Chef e até o Docker, é possível também utilizar o shell script para isso.

Além disso também existem imagens “pré-compiladas” de sistemas operacionais (na maioria linux) que já vem com o mínimo requerido para que você possa começar o seu desenvolvimento.

Além da ferramentas de provisionamento o Vagrant também pode trabalhar com uma série de provedores de máquinas virtuais, tais como: VirtualBox (padrão), VMWare, Parallels e etc. Também é possivel o provisionamento automático na nuvens, usando o AWS, Rackspace e o Digital Ocean.

Mas para que isso?

Bom, pode-se ter várias funções, mas a que vamos focar aqui é uma história muito comum entre os desenvolvedores principalmente, que é a diferença entre o ambiente de desenvolvimento local e o ambiente de produção ou homologação.

Por exemplo: Um desenvolvedor que utiliza o ambiente Windows e o ambiente de produção é Unix, isso pode gerar algum contratempo como questões de permissionamento de pastas, permissão do usuário a certos serviços e até mesmo questões como caminhos (No windows pode ser:c:\projeto\Servidor\tomcate no Unix ser /opt/tomcat). Ou o simples fato do windows trabalhar com uma quebra de linha diferente do Unix, todos esses fatores podem ser (e são ) preocupações para a passagem de desenvolvimento para produção.

Ou muitas vezes o seu ambiente de desenvolvimento está com certas bibliotecas e configurações que você usou em outros projetos, ou seja, é o famoso “mas na minha máquina funciona”.

Além disso a configuração do ambiente pode ser feita totalmente automatizada, sem precisar de gastar horas configurando a máquina do novo desenvolvedor para rodar o ambiente. Com isso você poupa tempo e o novo desenvolvedor pode simplesmente desenvolver e na máquina já terá a versão exata das aplicações e servidores que será utilizada em produção.

Outra coisa importante, o ambiente pode ser destruido e reconstruido quantas vezes você quiser e garantir que o sistema rode SEMPRE.

No próximo artigo termos um tutorial passo-a-passo de como o Vagrant funciona.

Aguardo vocês, até lá!

Visite este Post em: http://sm4rtchange.com.br/blog-post03.html