Pular para o conteúdo principal
BlogFerramentas para desenvolvedoresMelhores práticas para projetar sua infra-estrutura IaC

Melhores práticas para projetar sua infra-estrutura IaC

Melhores práticas para projetar sua infra-estrutura IaC

A IaC (Infrastructure as Code, infraestrutura como código ) é uma filosofia e um conjunto de práticas para implantar e gerenciar redes na era da nuvem. A IaC foi projetada para maximizar os benefícios da computação em nuvem e aproveitar os recursos das ferramentas de configuração e implantação automatizadas, como PuppetChef, Salt, Ansible, e Terraform. A instalação e a configuração totalmente automatizadas fornecidas por essas ferramentas permitem que o administrador defina sistemas completos com arquivos de configuração.

Os arquivos 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 assumir muitas formas diferentes e seguir por outros nomes, dependendo da ferramenta (por exemplo, um livro de receitas no Chef e um playbook em Ansible). Independentemente das diferenças entre plataformas, esta capacidade de definir antecipadamente uma configuração completa leva a uma nova visão de infra-estrutura, na qual o conhecimento dos sistemas reside na forma de código, e é rapidamente implantado na nuvem sem a necessidade de instalação convencional ou reconfiguração com comandos de console.

Os passos para implantar sua própria solução variarão dependendo de sua plataforma de automação e dos detalhes de sua rede, mas mantenha estes princípios em mente ao começar a explorar as possibilidades da IaC.

  1. Sistemas simples e modulares

Na era do hardware, um escritório pode empregar um único sistema de servidor para e-mail, armazenamento de arquivos e várias outras tarefas, mas a primeira lição do IaC é romper com a mentalidade de tudo em um. Sistemas grandes e multiuso acrescentam complexidade, e a complexidade pode levar a erros e problemas de segurança. Projete sua infra-estrutura IaC para ser simples, racionalizada e modular e depois os implante como blocos de construção para atender às necessidades de seu ambiente.

  1. Fonte Única de Verdade

Múltiplas versões do mesmo arquivo de configuração podem causar confusão e levar a erros. Cada configuração deve ter uma única fonte. Isto significa implementar uma versão clara e eficaz usando um sistema de controle de versão como o Git. Entretanto, a fonte única da filosofia da verdade significa mais do que apenas o controle de versão. O foco deve ser uma constelação central de modelos padrão, com personalizações ocorrendo através de um processo claro e previsível, em vez de em tempo real.

  1. Nenhuma documentação externa

O próprio arquivo de configuração deve conter todas as informações necessárias para a compreensão do conteúdo. A colocação de instruções e comentários sobre a configuração em documentos separados requer que a equipe acompanhe e mantenha arquivos separados em paralelo. O antigo hábito de alterar a configuração primeiro e atualizar os documentos depois faz um trabalho extra, leva a erros e convida à possibilidade de a configuração e a documentação ficarem fora de sincronia.

A maioria das plataformas IaC fornecem um meio para adicionar comentários ao código, mas também é importante que os membros da equipe se familiarizem com as ferramentas de interface e a linguagem declarativa utilizada com a plataforma IaC para ler e compreender os detalhes da configuração.

  1. Garantia através de testes automatizados

Os testes automatizados são um princípio central do DevOps e da filosofia do IaC. A modularidade e reprodutibilidade embutida no ambiente IaC facilita a modelagem do ambiente de produção em um ambiente de teste. Os testes devem começar após fazer uma alteração na configuração e devem prosseguir sistematicamente com testes unitários, testes de função, testes de integração e testes de regressão antes que a nova versão do sistema seja implantada.

  1. Incline-se para imutável

No IaC, a configuração vive no código. O objetivo é expressar os detalhes da configuração através do arquivo de configuração. Uma vez que o sistema gira em vida, você poderia ser tentado a gerenciá-lo e reconfigurá-lo como qualquer outro sistema de computador, mas o princípio da uniformidade é melhor servido deixando-o em paz. A reconfiguração local do floco de neve pode levar a erros e dificultar a segurança e a manutenção do sistema para outros. Idealmente, você deve fazer todas as mudanças através do arquivo de configuração e, em seguida, reimplantar quando houver necessidade de uma atualização, em vez de ajustar um sistema em execução.

  1. Desenhe seus Processos de Colaboração

O conhecimento da configuração geral e dos objetivos deve ser compartilhado por toda a equipe, em vez de ser obstruído por um único usuário. O controle de versão é um componente chave do ambiente colaborativo, mas é apenas o começo. Você deve implantar processos interativos e ferramentas de colaboração de forma a maximizar a informação e a responsabilidade compartilhada, mantendo ao mesmo tempo políticas sensatas de segurança e auditoria. Um humano com informações não compartilhadas ou não transferíveis é uma ameaça para a continuidade das operações.

Tenha estes princípios em mente ao explorar as possibilidades do IaC e vislumbre um processo de implantação de sua própria infra-estrutura IaC.


Comentários

Deixe uma resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *