Vamos falar agora sobre gerenciamento de configuração. O gerenciamento das configurações é o processo para garantir que as configurações dos servidores, aplicações e outros ambientes de um sistema permaneçam conhecidas, consistentes e confiáveis ao longo do tempo. Qualquer sistema de TI tem determinadas configurações relacionadas à versão de software, segurança, rede e outras configurações que são essenciais para o funcionamento ideal. O gerenciamento das configurações rastreia, atualiza e mantém essas configurações para que o sistema funcione em uma linha de base pré-determinada e permaneça seguro, independente de quaisquer alterações. Esse recurso estabelece e mantém a consistência do desempenho de um sistema e seus atributos físicos e funcionais. Além disso, o gerenciamento das configurações leva em consideração as informações operacionais, o design e o requisito do sistema ao longo do ciclo de vida útil. Utilizando o Puppet como ferramenta para a gente representar esse pilar de gerenciamento de configuração, o que a gente tem aqui nesse desenho? Bom, na parte de baixo a gente tem aqui os diferentes tipos de nó, no caso do Puppet eu sei que ele é compatível com diferentes versões, sistema operacional Linux, também com Unix, BSD, e dentro desses nós a gente tem um componente que é o Puppet Agent, sistema operacional Linux, também com Unix, BSD. E dentro desses nós, a gente tem um componente que é o Puppet Agent. Esse cara não é agent, ele precisa de um agent instalado em cada um desses servidores. Esses agents buscam as configurações no Puppet Master, então todo mundo aponta para o Puppet Master e o Puppet Master é onde tem as configurações desejadas, vamos dizer assim. Então, como que vai funcionar no fim do dia? Imagina que a gente faz o provisionamento de um nó, geralmente esse nó vai ter algum tipo de bootstrap, certo? Nesse bootstrap a gente pode se preocupar simplesmente em fazer o setup básico ali de repente em certificado, né? Para a gente conseguir bater nesse Puppet Master, então tem que ter um certificado aqui para conseguir fazer essa autenticação e a fazer a instalação do Puppet Agent em si. Daí para frente, o que vai acontecer? Automaticamente ele vai se registrar no Puppet Master e vai conseguir buscar todas as configurações ali, instalação de software, né? Então, supondo que a gente tenha diferentes ambientes aí, sei lá, banco de dados, um outro que é um web server, ou diferentes tipos de produtos ali, a gente consegue deixar tudo isso configurado dentro desse Puppet Master e quando o servidor se registrar, ele sai fazendo um provisionamento ali de todos os componentes necessários. Quando a gente fala de atualização, aplicação de patch, enforcement de configuração, tudo que a gente queira ter o controle, a gente precisa ter um código ali representando qual é o estado desejado. um código ali representando qual que é o estado desejado. Então vamos supor, eu quero que para todos os sistemas operacionais Red Hat e versão XPTO, eu tenha ali uma cadeia de certificado específica. Bom, a gente vai ter uma configuração para isso dentro do Puppet Master e quando esses nós se registrarem, eles vão cair nessa categoria, nesse grupo e vai automaticamente, daí em diante, ficar monitorando. E sempre que alguém for lá no servidor, por exemplo, e fizer qualquer tipo de modificação, de tempo em tempo, ele vai bater de novo no Puppet Master, vai ver que isso está incorreto e vai voltar essa configuração para a configuração para o estado original, ou o estado desejado no caso. A gente consegue ter uma série de informações através do Puppet Dashboards. Os módulos, como eu comentei com vocês, a gente pode ter diferentes tipos de módulos para diferentes tipos de setup dos nós, integração com ferramentas terceiras, e uma informação importante, imagina, como quem faz o trabalho aqui é o Puppet Agent, o que acontece quando esse Puppet Agent morre? Bom, a gente passa a não conseguir mais buscar essas configurações no Puppet Master, mas a gente consegue ter isso registrado no nosso dashboard, e a gente consegue criar um alerta para a gente ser notificado e entender o que está acontecendo. Tá bom. Bem, alguns benefícios desse tipo de abordagem. A gente tem uma melhor capacidade de recuperação do sistema, certo? A gente consegue ter uma redução na interrupção de sistemas, a possibilidade de auditoria do ambiente, tracking das alterações. A gente também tem uma documentação viva e a simplicidade de atualização das configurações. esse tipo de ferramenta de gerenciamento de configuração dentro do nosso ambiente qual que é a maior vantagem cara, a gente beleza, fez a implementação rodou, tá funcionando tudo bonitinho nada impede de alguém ir lá e fazer as alterações no nosso ambiente e a gente perder a visibilidade desse tipo de coisa e as vezes, beleza a gente vai fazer uma segunda implementação, uma terceira implementação e o código já não bate com aquilo que está em produção, então pode ser que a pipe acabe quebrando e aí você não sabe exatamente o que aconteceu, você vai ter que fazer uma investigação quando você tem um tipo de tem ferramentas como essas rodando no seu ambiente é muito mais difícil que esse tipo de cenário aconteça porque a gente vai estar constantemente fazendo olhando para aquele ambiente e fazendo enforcement da configuração que a gente configurou. Então, isso acaba trazendo um conforto e uma segurança muito maior do ponto de vista de resiliência e confiabilidade, principalmente em ambientes de produção.