Não atualize mais seus softwares

Standard

Levando em consideração que estamos caminhando para um modelo totalmente automatizado, com propostas de containers e servidores Phoenix, se preocupar com a atualização recorrente de softwares tem se tornado cada vez mais irrelevante. Duvida? Vamos lá!

Assim como a ave mitológica, o servidor também pode renascer das cinzas

Imaginemos que você dispõe de um serviço fácil para disponibilizar uma nova máquina, que pode ser um serviço “Cloud” ou não. Nesse caso basta que uma chamada simples seja o suficiente para criar uma máquina a partir de uma imagem padrão, que conterá todo requisito mínimo que seu ambiente precisa, ou seja, com um simples comando você terá a disposição um servidor instalado com a versão mais atual do seu sistema operacional homologado, com a versão homologada mais atual dos softwares básicos do seu ambiente (Ex. Agente de backup, monitoramento, inventário e afins).

Com o servidor disponibilizado, continuemos a imaginar que todos os seu serviços são instalados e configurados automaticamente, usando algum ferramenta de gerência de configuração (Ex. Ansible, Chef, puppet). Com apenas um comando é possível configurar tudo que precisa, seja instalar os pacotes necessário, como configurar os serviços, habilitar regrais locais de firewall e afins.

automation

Com automatização e processo bem definido é bem difícil de algo não funcionar bem

Por fim imagine que caso haja necessidade de armazenar dados, eles foram guardados fora dessa máquina, ou seja, esse servidor é “uma casca” que apenas aponta para onde os dados de fato estão e caso esse ativo seja substituído por um outro parecido o serviço que ele hospeda identificará os dados automaticamente e os usuários não sentirão nenhuma diferença. Isso é possível utilizando Storage com volumes NFS, por exemplo.

Se tudo é feito automaticamente, em alguns poucos minutos, qual a real necessidade de gerenciar os impactos da atualização de pacotes nos servidores, com todo aquele processo de gerência de mudança, com reuniões semanais, longos procedimentos escritos em .doc que nunca serão lidos novamente? Se tudo pode ser feito em paralelo, testado automaticamente e colocado em produção sem que você note a diferença? No máximo receberia um email avisando o que aconteceu.

Quem sabe até não poderíamos refazer todos os dias nossos servidores e assim teríamos os serviços mais atualizados possíveis, pois os testes automatizados se encarregariam em analisar se a nova versão traria algum impacto ao seu atual ambiente. Sei que pode parecer exagero, mas é uma proposta para uma conversa franca sobre uma possível evolução do nosso ambiente.

Se você, assim como eu, acha que o processo convencional de atualização de software pode facilmente se transformar em um desperdício de tempo, pense sobre o uso das ferramentas de automação apresentadas e teste minha teoria. Quem sabe logo não posto novidades sobre como fazer isso na prática.

Obrigado,

  • Robson Peixoto

    Massa Gomex!
    Eu já isso para atualizar os meu docker hosts

    • Isso ae! Você reconstrói eles todos os dias?

      • Robson Peixoto

        Não!!! Aí o buraco é mais embaixo!

        Reconstruir os hosts exige um orquestração muito boa do seu ambiente para não ter downtime. Ainda não temos essa maturidade na nossa infra.