O time da Reductive Labs anunciou recentemente o lançamento da versão 0.25.2 do Puppet, o gerenciador de configuração e ferramenta de automação escrito em Ruby para servidores Linux e Unix. Neste lançamento alguns bugs foram corrigidos, 123 tickets abertos foram concluídos e os desenvolvedores pediram para reduzir o consumo de memória, melhorar o relatório de erros, threadings e lock contention (o último, aparentemente, um sistema manipulador de relatório de código).
Seguindo o modelo cliente-servidor, e com a sua própria linguagem, o Puppet tenta resolver o maior desafio da administração de sistema de servidor: como confiar na automatização do gerenciamento de configuração e distribuição, um requerimento essencial para deploy em grandes data centers. Um artigo da GigaOM de Novembro de 2009 lista o Puppet como um dos 11 maiores recursos open source para cloud computing, enquanto Matt Asay sugere que a Cisco deve considerar a aquisição da Reductive Labs como parte da sua atual estratégia de data centers:
[…] como a Cisco vai átras do Data Center com o seu novo impulso de Unified Computing, uma empresa open-source deve estar na vista da Cisco: Reductive Labs, criadora do Projeto Puppet, um framework para automatizar a administração de sistemas.
Para administradores de sistema tem sido comum por muito tempo automatizar rotinas de administração via scripts personalizados. A Manutenção desses conjuntos de ferramentas customizáveis torna-se incrivelmente complexo como a quantidade de servidores, diversos sistemas operacionais, ou um aumento da complexidade da rede. O Puppet não é a única ferramenta de gerencimento de configuração que existe.
A Cfengine de Mark Burguess é outra ferramenta amplamente utilizada, temos também o BCFG2, desenvolvida pelo Laboratório da Divisão de Ciência da Computação Argonne National. Não é nossa intenção comparar os benefícios das diferentes ferramentas disponíveis, mas para aqueles interessados no debate este post no blog de Luke A. Kanies é um bom começo.
A abordagem de gerenciamento de configuração do Puppet, por um ângulo, é diferente do modelo tradicional script-e-automatização:
- Prove uma Linguagem Específica de Domínio (DSL – Domain Specific Language) para modelos de relacionamento entre servidores, serviços e objetos.
- Traz a automação de sistemas de administração mais perto da realidade do desenvolvimento de sistemas, expressando uma infra-estrutura funcional.
- Seu nível de abstração prove uma flexibilidade cada vez mais relevante para os administradores de sistemas visto que eles necessitam gerenciar uma grande massa de servidores que contenham configurações heterogêneas.
O Puppet é mantido por uma comunidade de desenvolvimento ativa. Uma das vários novidades, que estão disponíveis é um novo web-based dashboard que foi recentemente lançado. Esse dashboard oferece atualmente dois usos funcionais:
- Configuração de nós usando parâmetros, classes e grupos
- Monitoramento de status dos nós, com relatórios em tempo real e controle de alteração
Como qualquer nova funcionalidade em código open-source, os usuários da comunidade fornecem feedbacks e funcionalidades. Para a dashboard do Puppet são esperadas diversas atualizações à medida que a mesma vai evoluindo. O dashboard complementa as funcionaliades do Puppet, fornecendo um nível de visibilidade e abstração da infra-estrutura, que é essencial para a equipe de administração de sistemas responsável pela sua gestão.