Qual é a diferença entre Juju e Puppet / Chef?

80

Tentei perguntar a terceiros sobre as principais diferenças entre Juju e Puppet / Chef. Terceiros não estão muito familiarizados com Juju e não sabiam dizer. Eles simplesmente declararam que os outros têm muito impulso e seria difícil superar sua liderança.

Os mais próximos de Juju estariam dispostos a destacar as vantagens deste software e por que ele superará o Puppet / Chef na arena de gerenciamento de configurações?

marca
fonte

Respostas:

48

Mark, essa é uma ótima pergunta, e foi a primeira que eu fiz quando alguém me contou sobre Juju. Aqui estão algumas das grandes diferenças.

  • O Juju encapsula serviços - um encanto define todas as maneiras pelas quais o serviço precisa expor ou consumir dados de configuração de / para outros serviços. Como um encanto faz isso é da conta dele. Ele pode usar qualquer ferramenta, desde scripts de shell até Chef em modo solo, para fazer isso.

  • O Juju orquestra o aprovisionamento - o juju monitora os recursos disponíveis e pode adicioná-los ou removê-los conforme necessário. Atualmente, esses recursos são máquinas AWS EC2, nuvens OpenStack (como HP Cloud), Microsoft Azure, Joyent, máquinas bare metal via MAAS e um provedor local LXC / KVM.

  • Juju facilita o compartilhamento - qualquer pessoa pode contribuir com um encanto para a Juju Charm Store ; esses encantos são examinados e revisados ​​por pares pela comunidade Juju.

Aqui estão algumas outras comparações que as pessoas fizeram na Web:

SpamapS
fonte
1
O Puppet também lida com a descrição de recursos, o provisionamento de VMs e o compartilhamento de módulos . Você pode explicar como o Juju faz diferente ou melhor, ou resolve um problema diferente?
poolieby
Não tinha conhecimento do provisionador de nuvens fantoches no momento dessa resposta. Os módulos fantoches não foram espaçados no nome na última vez que verifiquei e, portanto, apresentam problemas de compartilhamento que podem exigir que um usuário modifique o código de um módulo fantoche para utilizá-lo.
SpamapS
Existem namespaces no fantoche . Não usei muito o Puppet, mas meu entendimento é que os problemas ocorrem principalmente quando dois módulos estão realmente tentando gerenciar a mesma coisa lógica. Juju tem alguma maneira sistemática de evitar isso?
poolie
Os espaços para nome no fantoche sofreram alterações recentes para facilitar o compartilhamento de um módulo de fantoche independente em funcionamento. No passado, era necessário o equivalente a variáveis ​​globais para se comunicar entre dois módulos. O Juju não lida de forma alguma com a configuração da instância, é apenas um facilitador para a orquestração; portanto, não, isso não impedirá que dois encantos disputem um único arquivo.
SpamapS
1
Olá @SpamapS, trata-se do seu segundo ponto (também conhecido como Juju orquestra o provisionamento). No fantoche, podemos definir relacionamentos usando "exigir", "notificar" etc. Não podemos simplesmente usar essas construções para provisionar a orquestração? Ou Juju fornece um nível diferente de semântica de orquestração?
Denis Weerasiri
33

(Aviso Legal - Sou o fundador da Puppet e CEO da Puppet Labs)

Eu não sei muito bem o juju , mas pelo que posso dizer, eles se sentam em camadas diferentes. O Puppet é ótimo no gerenciamento de comportamentos e capacidades das próprias máquinas, enquanto o juju parece dedicado principalmente a falar sobre conjuntos de máquinas e explica principalmente como fazer com que as máquinas se comportem de maneira específica às ferramentas externas, como Puppet ou shell scripts.

Nossa estratégia com o Puppet é construir a melhor pilha do zero, enquanto o juju parece ser uma camada específica da pilha e deixar outras camadas para outras ferramentas. Assim, enquanto você pode resolver todo o problema com o Puppet (embora às vezes com um pouco mais de trabalho do que gostaria), será necessário integrar o juju com outras ferramentas para fazer muito.

Realmente, juju parece uma versão local do CloudFormation da Amazon, embora sem o gráfico e tal. Portanto, utilizável com o Puppet etc., mas não um substituto para ele.

Luke Kanies
fonte
6
Não tenho certeza se punting é a palavra certa aqui. É como dizer que os pacotes fazem a compilação do software para autotools / scons / setup.py. Se os pacotes tentassem executar todas as etapas de cada compilação, não teríamos pacotes!
SpamapS
9

Aqui está outra visão de como o Juju se encaixa com outras ferramentas de automação:

Sou responsável pela Estratégia de Nuvem na Canonical, a empresa por trás do Ubuntu e Juju. Juju não é um concorrente de Puppet ou Chef. O Juju pode instalar o Puppet ou Chef e, de dentro de um encanto, o encapsulamento de um serviço por Juju, você pode chamar seus módulos Puppet ou recibos de Chef existentes.

Então, o que é o Juju? O Juju permite implantar, integrar e escalar instantaneamente sua pilha / serviços / aplicativos de TI. A TI instantânea ganha sem esforço. Ou através da linha de comando ou da GUI.

Portanto, o Juju está mais próximo do PaaS do que da ferramenta Devops, já que você pode criar sua nuvem (o Juju é o instalador padrão do OpenStack da Canonical), a infraestrutura que o acompanha (servidores web / app / db, Hadoop, MongoDB etc.), mas a maioria O Juju permite que aplicativos sejam implantados e integrados imediatamente (a relação de adição entre o Wordpress e o MySQL configurará automaticamente as tabelas e os dados do Wordpress dentro do MySQL).

Além disso, os servidores de aplicativos (java, php, node.js, scala etc.) podem trabalhar em conjunto com o controle de versão, portanto, a implantação e o dimensionamento automáticos dos seus aplicativos são possíveis. Portanto, diferentemente do PaaS, você não está limitado a uma pilha de software específica, mas ainda obtém as vantagens instantâneas de implantação, integração e dimensionamento. Pense nisso como um PaaS ou FlexiPaaS flexível que implanta, integra e dimensiona instantaneamente seus serviços de software sem ser limitado ou bloqueado.

Fonte - Aviso: login necessário.

Jorge Castro
fonte
3

Nos termos mais simples, o juju encapsula a descoberta de serviços, um armazenamento de valores-chave e o gerenciamento de configurações. Puppet / chef etc são pura gestão de configuração.

Juju é baseado em eventos e usa um "nó de autoinicialização" central para rastrear e orquestrar eventos. O boneco e o chef podem aparecer com base no evento, no entanto, normalmente é apenas executar o trabalho relevante dentro de um cronograma.

No entanto, você não pode executar o juju em um estado distribuído ou sem agente e isso é possível na maioria dos sistemas de gerenciamento de configuração.

Na maioria das vezes, fantoches etc são idiomas específicos do domínio, enquanto o juju é um sistema, não um idioma.

J0hnG4lt
fonte