Qual é a diferença entre vagrant e juju?

10

Ambos estão resolvendo o mesmo problema? Ou são para dois conjuntos diferentes de problemas? Se sim, o que é melhor usar vagrant, e para que melhor usar juju?

    
por txwikinger 14.11.2012 / 23:10

2 respostas

19

versão rápida:

vagrant é uma ferramenta para trabalhar com instâncias de virtualbox. Isso é normalmente usado durante o desenvolvimento (em um mac) para testar a implantação de seu aplicativo em máquinas virtuais que se parecem mais com seu ambiente de produção (ou seja, linux). Ele tem uma pilha de manipuladores (ruby) personalizáveis para criar um ambiente virtual como você quiser. O Vagrant é uma ferramenta poderosa para gerenciar programaticamente ambientes virtuais e fornece todos os tipos de variações "locais" de técnicas de desenvolvimento de estilo de integração contínua. É mais usado para executar o Ubuntu VMs em um Mac, mas será executado em várias plataformas e implantará vários sistemas operacionais de destino. Afaik, só funciona com o virtualbox como um "provedor" subjacente.

O juju é uma ferramenta para orquestrar serviços usando vários provedores subjacentes diferentes: nuvens ec2, nuvens em nuvem aberta, VMs lxc e servidores MaaS. Ele compartilha uma história de "desenvolvimento local" (usando contêineres lxc em vez de VMs de caixa virtual) com vagrant, mas essa é realmente a única sobreposição. Na verdade, eu gostaria de ver um provedor vagrant escrito para o juju, então o juju pode direcionar contêineres de virtualbox em um ambiente local com a mesma facilidade com que ele gera imagens de nuvem e lxc. Isso seria ótimo! Além disso, o juju realmente deriva muito do seu valor do conjunto de charms / serviços que podem ser gerados diretamente, enquanto o vagrant é essencialmente um provedor de contêiner local de nível inferior.

Na verdade, fornecemos uma caixa Vagrant com Juju para que os usuários possam testar o provedor local de dentro de uma VM:

Observe que houve esforços para "unificar" os scripts de implantação em torno do vagrant para que os mesmos scripts possam ser usados para implantar em instâncias de nuvem, bem como em caixas vagrant. Estes parecem ser, na maior parte do tempo, isolados do vagabundo e, francamente, apenas destacam a necessidade de uma ferramenta como o juju.

    
por m_3 16.11.2012 / 19:00
1
Re-unificando scripts de implantação em torno do vagrant, o Vagrant possui excelente integração com o Puppet e o Chef, que podem ser usados para configuração do sistema de automação em vários ambientes, desde caixas do Vagrant até hardware local e nuvens. Na verdade, muitas pessoas usam o Vagrant para testar seus scripts de Puppet / Chef antes de usá-los na produção.

Certamente seria bom adicionar o Juju à lista de ferramentas de automação que funcionam com o Vagrant.

    
por Jeff 06.12.2012 / 17:28