IaaS: Boas práticas em gerenciamento de infraestrutura com ferramentas open source

Quando você pensa em IaaS, o que lhe vem à cabeça? Um bom caminho inicial seria atentar-se às chamadas “boas práticas”, que orientam um desenvolvimento mais sadio e robusto a longo prazo. Por exemplo, no caso específico de IaaS, é preciso atentar para pontos fundamentais no processo, tais como:

– Controle de versão
– Reuso
– Versionamento semântico
– Testes
– CI/CD

“Quando desenvolver aplicações para cloud, procure dividi-las em camadas, para tirar o melhor proveito que a cloud oferece, e aí com essas camadas procure pensar quais ferramentas precisa utilizar para gerenciar melhor cada camada”, propõe Eduardo Rozário, da equipe DevOps da Rivendel Tecnologia. Eduardo falou sobre boas práticas no desenvolvimento orientado à computação em nuvem no tech-talk realizado na última sexta, 22 de setembro.

Como o desenvolvimento requer manutenção e controle da aplicação, Eduardo também elucidou os principais pontos envolvendo os 3 tipos de gerenciamento de infraestrutura, bem como seus prós e contras:

  • Gerenciamento Manual

    Abordagem tradicional pré-automação – faça login em um servidor, edite arquivos, instale pacotes e crie contas de usuário; Ainda é uma abordagem bastante comum mesmo para pessoas que usam ferramentas de automação como Ansible, Chef e Puppet. As pessoas escrevem ou modificam uma definição de configuração e, em seguida, as executam manualmente. Mas não executam a ferramenta de configuração, a menos que haja uma alteração específica.
  • Gerenciamento Sincronizado
    Aplica-se repetidamente às definições de configuração dos servidores. Isso acontece em todos os servidores, independentemente de terem sido feitas quaisquer alterações nas definições. Fazer isso garante que as alterações feitas fora da automação sejam trazidas de acordo com as definições. Isso desencoraja as mudanças manuais. Também garante que cada servidor esteja atualizado, tendo tido todas as definições de configuração atuais aplicadas.
  • Gerenciamento Imutável
    As equipes que utilizam infraestrutura imutável fazem alterações de configuração substituindo completamente os servidores. Uma mudança é feita construindo uma nova versão de um modelo de servidor (como um AMI) e, em seguida, reconstruindo qualquer servidor baseado nesse modelo específico. Isso aumenta a previsibilidade, uma vez que há pouca variação entre servidores testados e servidores em produção.

Veja a íntegra do tech-talk com o Eduardo na sede da Rivendel em São Paulo:

Acesse os slides da palestra dele em:

Referências:

Desenvolvimento e testes com Ansible
https://github.com/metacloud/molecule

Validação e teste de servidor
https://github.com/aelsabbahy/goss

Spinnaker (Plataforma CD open source)
https://www.spinnaker.io/

21