Ambos estão resolvendo o mesmo problema? Ou são para dois conjuntos diferentes de problemas? Se sim, para o que é melhor usar vagrant e para que melhor usar juju?
fonte
Ambos estão resolvendo o mesmo problema? Ou são para dois conjuntos diferentes de problemas? Se sim, para o que é melhor usar vagrant e para que melhor usar juju?
versão rápida:
O vagrant é uma ferramenta para trabalhar com instâncias de caixa virtual. Isso geralmente é usado durante o desenvolvimento (em um mac) para implantar seu aplicativo em máquinas virtuais que se parecem mais com o seu ambiente de produção (por exemplo, linux). Ele possui uma pilha personalizável (rubi) de manipuladores para criar um ambiente virtual da maneira que você desejar. O Vagrant é uma ferramenta poderosa para gerenciar programaticamente ambientes virtuais e fornece todos os tipos de variações "locais" de técnicas de desenvolvimento no estilo de integração contínua. É usado com mais frequência para executar VMs do Ubuntu em um Mac, mas é executado em várias plataformas e implementa vários sistemas operacionais de destino. No entanto, ele funciona apenas com o virtualbox como um "provedor" subjacente.
O juju é uma ferramenta para orquestrar serviços usando vários provedores subjacentes: nuvens ec2, nuvens openstack, 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 fornecedor vagrant escrito para o juju, para que o juju possa conduzir contêineres de caixas virtuais em um ambiente local com a mesma facilidade que gera imagens na nuvem e lxc. Isso seria um ótimo ajuste! Além disso, o juju realmente deriva muito de seu valor do conjunto de serviços / encantos que podem ser gerados diretamente da caixa, enquanto o vagabundo é essencialmente um fornecedor local de contêineres de nível inferior.
De fato, fornecemos uma caixa Vagrant com Juju para que os usuários possam testar o provedor local de dentro de uma VM:
Note que não tenham sido os esforços para scripts de implantação "unificar" em torno de vagabundo para que o mesmo scripts podem ser usados para implantar instâncias de nuvem, bem como caixas de vagabundos. Estes parecem ser principalmente únicos, além dos vagabundos, e francamente apenas destacam a necessidade de uma ferramenta como o juju.
Re "unificando scripts de implantação em torno do vagrant", o Vagrant possui uma excelente integração com o Puppet e o Chef, que podem ser usados para automatizar a configuração do sistema em ambientes, desde caixas do Vagrant ao hardware local e nuvens. De fato, muitas pessoas usam o Vagrant para testar seus scripts 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.