Puppet e automação. Porque?

Olá a todos,

Prefácio: Este é o primeiro de vários posts sobre automação utilizando puppet. Neles irei demonstrar uma implementação básica de uma infraestrutura de automação no nosso homelab, e como escrever código básico para puppet, nomeadamente efetuar configuração e enforcing de settings de DNS ou instalação de software em máquinas geridas.

Vem na sequencia de uns artigos que efetuei á uns anos atrás, pelo que achei que agora seria a altura correta para continuar com o tema, especialmente no que trata a parte da automação de data center.
Disclamer: Sim, eu seu que existem milhentas soluções de datacenter automation, desde ansible a salt, passando por puppet. Apenas escolhi Puppet porque tenho visto a capacidade enorme do produto.

Automation, Provisioning and Configuration Management with PUPPET - DevOps.com

A automação do data center tornou-se um requisito essencial para empresas e organizações de todos os tamanhos.
A exigência por serviços IT mais rápidos, estáveis e críticos para o negócio, ​​levou a um aumento brutal no volume de dados que são trabalhados ​​e armazenados.Isso tornou mandatório ter processos simplificados (lol) e eficientes.
A automação é um focal point fundamental de garantir que as operações do data center sejam executadas sem problemas, e o Puppet é uma das ferramentas de data center automation mais populares em uso atualmente.

O que é em si o Puppet?

O Puppet no seu core é uma ferramenta de gestão de configuração, que permite aos administradores automatizar a implementação e a gestão da infraestrutura de IT.
Oferece uma variedade de recursos, abertura de código e uma “code forge” que o tornam a escolha sem muitas duvidas no que trata de gerir ambientes de data center em grande ou pequena escala.

 

Puppet #1: Entendendo o Puppet | Tiago Hillebrandt

Com o puppet é possível automatizar a instalação e configuração de software, gerir contas e permissões de utilizadores e executar várias outras tarefas adhoc que, de outra forma, teriam que ser feitas manualmente. A somar a isto tudo, se o código não existir, podemos ser nós a faze-lo, ou procurar na forge se alguém já o fez. A probabilidade é que alguém já tenha tido a mesma necessidade e já tenha escrito o modulo para isso.

Um dos principais benefícios de usar o Puppet para data center automation é facto que ele fornece uma abordagem padronizada para gerenciar a infraestrutura de TI (recordam-se o meu post sobre SOE?).

Quais os principais selling points do Puppet?

  • Eliminação da necessidade de configuração repetitiva manual reduzindo enormemente o risco de erro humano.
  • Os sysadmins podem definir o estado desejado de sua infraestrutura usando código.
  • Garantia que todos os sistemas no data center são configurados pelo mesmo código e sejam configurados da mesma forma consistente e transversal, o que melhora a estabilidade e reduz o risco de downtime para o cliente que consome os nossos dados. O erro em um servidor será o mesmo nos restantes 10 mil, portanto de facil resolução.
  • Em termos de escalabilidade o o puppet é projetado para lidar com grandes ambientes de infraestrutura e pode ser facilmente escalado para efetuar a gestão de centenas de milhares de servidores e dispositivos.
  • O Puppet tem a capacidade em si próprio de se suster numa infraestrutura global e escalar a si próprio conforme a necessidade. A arquitetura do software é em si e por definição, distribuída.
  • O Puppet prima pela flexibilidade e extensibilidade pelo que suporta uma ampla variedade de sistemas operativos, linguagens de programação e tecnologias IT e de networking.
  • A abertura de código e comunidade que o envolve. É uma plataforma de código aberto com uma enorme comunidade de usuários e developers, isto traduz-se numa abundância de recursos e suporte disponíveis para os usuários.

Outro benefício importante de usar o Puppet na automação do nosso data center é que ele permite o provisionamento rápido de nova infraestrutura.

Com o Puppet, os sysadmins podem definir a configuração desejada de uma nova plataforma ou solução e implantá-la em questão de minutos.
Isso torna possível responder rapidamente às necessidades do negócio em constante mudança e aumentar ou diminuir o tamanho provisionado do nosso data center conforme necessário quando se paga á escala como por exemplo na AWS ou Azure.
Mais uma vantagem do produto é a rapidez com que se pode acudir a situações imprevistas, seja de segurança ao nível aplicational seja ao nível de segurança de sistema operativo. Pode ser usado para automatizar o processo de deployment de aplicativos, o que reduz ainda mais o tempo necessário para provisionar uma nova infraestrutura.

Outra coisa fundamental oferecida pelo  puppet é a visão centralizada de todo o nosso ambiente de data center. Através do painel da Puppet Console, os administradores podem visualizar o status de todos os sistemas geridos pelo Puppet em data center, monitorar o desempenho do sistema e acompanhar as alterações de configuração. Isso torna mais fácil identificar problemas e resolvê-los rapidamente antes que causem downtime ou outros problemas que impactem o nosso negócio.

Para alem de todos estes benefícios descritos acima, e como já foi também referido, o Puppet também oferece uma variedade de recursos de segurança que o tornam a escolha ideal para automação de procedimentos de segurança no nosso data center: Desde a gestão de contas de utilizadores e permissões dos mesmos, garantindo que apenas utilizadores autorizados tenham acesso a sistemas e dados confidenciais.

Podemos impor igualmente políticas de segurança em todo o data center, garantindo que todos os sistemas sejam configurados para atender aos requisitos de segurança da organização. O produto fornece ainda recursos de auditoria e geração de relatórios que facilitam a identificação e investigação de incidentes de segurança.

 

Em conclusão, a automação do data center é essencial para organizações que precisam gerenciar infraestrutura de IT em grande escala de forma eficiente, confiável e repetível.
É uma das ferramentas de automação mais populares em uso atualmente, e por bom motivo: Fornece uma abordagem padronizada para o gerenciamento da infraestrutura de TI, permite o provisionamento rápido de nova infraestrutura, fornece uma visão centralizada de todo o ambiente do data center que já esteja gerido pela ferramenta, oferece uma variedade de recursos de segurança e é de código aberto e personalizável.

Ao usar o Puppet para automação de data center, as organizações (e nós mesmos para quem tem homelabs) podem melhorar sua eficiência, reduzir o tempo de downtime, garantir a segurança e a confiabilidade de sua infraestrutura de IT.

Sei que este artigo foi algo maçudo e um pouco repetitivo, pois o produto tem muitas valências, todas na automação de tarefas, gestão e administração, nas no próximo artigo já voltarei ás componentes páticas e irei demonstrar através um how to de como implementar o nosso primeiro servidor de puppet, e dois puppet-clients, nos quais iremos instalar software, baseado no código que construiremos em puppet.

Até lá, se tiverem duvidas já sabem onde me encontrar.

Um abraço.
Nuno