Avançar para o conteúdo principal
BlogFerramentas de desenvolvimentoMelhores práticas para a concepção da sua infra-estrutura IaC

Melhores práticas para a concepção da sua infra-estrutura IaC

Melhores práticas para a concepção da sua infra-estrutura IaC

A Infraestrutura como Código (IaC) é uma filosofia e um conjunto de práticas para implementar e gerir redes na era cloud. A infraestrutura IaC está concebida para maximizar os benefícios da computação cloud e potenciar a configuração e as ferramentas de implementação automatizadas, tais como Puppet, Chef, Salt, Ansible, e Terraform. A instalação totalmente automatizada e a configuração disponibilizada por estas ferramentas permite que o administrador defina sistemas completos com ficheiros de configuração.

Os ficheiros de configuração são conjuntos de instruções com especificações sobre como montar e configurar o sistema. Este conjunto de instruções pode adotar muitas formas diferentes e receber outros nomes dependendo da ferramenta (e.g., um livro de cozinha em Chef e um playbook em Ansible). Independentemente das diferenças entre plataformas, esta capacidade de definir uma configuração completa por antecipação leva a uma nova visão da infraestrutura, na qual o conhecimento dos sistemas reside em forma de código, podendo ser rapidamente implementada na cloud sem a necessidade de recorrer à instalação convencional ou à reconfiguração com comandos de consola.

Os passos para a implementação da sua própria solução irá variar em função da sua plataforma de automatização e das especificidades da sua rede, mas tenha estes princípios em mente ao começar a explorar as possibilidades de uma IaC.

  1. Sistemas Simples e Modulares

Na era do hardware, um escritório pode ter o sistema de um servidor único para email, armazenamento de ficheiros e várias outras tarefas, mas a primeira lição da IaC é a de acabar com a mentalidade de tudo-em-um. Os grandes sistemas de multifunções trazem complexidade, e a complexidade pode conduzir a erros e a problemas de segurança. Conceba a sua infraestrutura IaC para ser simples, racionalizada e modular e depois implemente-a como blocos de construção para ir ao encontro das necessidades do seu ambiente.

  1. Única Fonte de Confiança

Várias versões da mesma configuração podem causar confusão e conduzir a erros. Cada configuração deve ter uma única. fonte. Isto significa implementações claras e com versões eficazes que utilizam um sistema de controlo de versões como o Git. Contudo, a filosofia de única fonte de confiança significa mais do que apenas o controlo de versões. O foco deverá estar num grupo central de modelos standard, com as personalizações a acontecerem num processo claro e previsível em vez de ser em tempo real.

  1. Sem Documentação Externa

O próprio ficheiro de configuração deve ter toda a informação necessária para que se entenda o seu conteúdo. Colocar instruções e comentários sobre a configuração em documentos separados exige que a equipa siga e mantenha diversos ficheiros paralelamente. O velho hábito de alterar a configuração primeiro e atualizar os documentos mais tarde significa trabalho extra, conduz a erros e abre caminho para que a configuração e a documentação acabem por não estar em sincronia.

A maioria das plataformas IaC disponibilizam meios para adicionar comentários ao código, mas também é importante que os membros da equipa fiquem familiarizados com as ferramentas da interface e a linguagem declarativa utilizada com a plataforma IaC para lerem e compreenderem os detalhes da configuração.

  1. Garantia Através de Testes Automatizados

Os testes automatizados são um fundamento central do DevOps e da filosofia IaC. A capacidade de modular e de reprodução integrada no ambiente IaC faz com que seja mais fácil modelar a configuração de produção num ambiente de teste. Os testes devem começar após fazer uma alteração à configuração e devem continuar de forma sistemática com testes unitários, testes funcionais, testes de integração e testes de regressão antes que seja implementada a nova versão do sistema.

  1. Apoie-se no Imutável

Na IaC a configuração vive no código. O objetivo é revelar os detalhes da configuração no ficheiro de configuração. Uma vez que o sistema tem vida, pode deixar-se tentar a geri-lo e a reconfigurá-lo conforme faria num outro qualquer sistema informático, mas o princípio da uniformidade atinge-se melhor deixando-o conforme está. A reconfiguração local do snowflake pode conduzir a erros e fazer com que o sistema se torne difícil de assegurar e de manter por outros. De preferência deve fazer todas as alterações através do ficheiro de configuração e depois voltar a implementar quando existir a necessidade de uma atualização, em vez de modificar um sistema que está em funcionamento.

  1. Faça o design dos seus Processos para Colaboração

O conhecimento sobre toda a configuração e os objetivos devem ser partilhados na equipa, em vez de ficarem concentrados apenas num utilizador. O controlo de versões é um componente chave para o ambiente de colaboração, mas é apenas o princípio. Deve implementar processos interativos e ferramentas de colaboração de forma a maximizar a informação e a partilhar responsabilidade continuando a manter uma segurança exigente e políticas de auditoria. Uma pessoa com informações não partilhadas ou sem possibilidade de serem transferidas é uma ameaça à continuidade das operações.

Tenha estes princípios em mente se estiver a explorar as possibilidades de uma IaC e estiver a perspetivar um processo de implementação da sua própria infraestrutura IaC.


Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *