O que é infraestrutura como código?

Gerenciar a infraestrutura de TI é uma tarefa difícil, mas nos últimos anos os provedores de nuvem tornaram mais fácil automatizar todos os aspectos da vida de um administrador de sistema. Infraestrutura como código é a próxima etapa: definir todos os seus serviços em um arquivo de configuração que pode ser rastreado por meio do controle de origem.
Como funciona a infraestrutura como código?
Infraestrutura como código (IaC) é muito simples na teoria. Todas as suas implantações de servidor, serviços de nuvem e suas configurações associadas são armazenados em um arquivo de configuração modificável centralmente ou conjunto de arquivos de configuração, geralmente YAML ou algo semelhante. Cada arquivo de configuração contém as instruções e diretivas necessárias para recriar toda a sua solução de nuvem do zero.
Este princípio básico significa que as modificações nesta infraestrutura podem ser rastreadas com o controle de origem. Quer lançar um novo servidor? Você precisará modificar sua configuração de implantação e enviar uma atualização. Se algo der errado, você sempre pode reverter para uma versão anterior de sua implantação, o que pode ser muito útil para sistemas de alta disponibilidade onde uma implantação mal configurada pode custar muito dinheiro.
Isso significa que o IaC é muito ou tudo ou nada. Não é uma boa ideia executar IaC junto com implantações gerenciadas manualmente, embora você certamente possa fazer isso, especialmente se os sistemas forem separados.
Na prática, a infraestrutura como código é bastante complicada. Se você pensava que o sysadmining regular era um trabalho difícil, converter toda a sua implantação para IaC não será uma tarefa simples. Mas, depois de fazer a parte difícil de configurá-lo, manter sua implantação e fazer alterações se torna muito mais fácil. Todas as suas configurações de implantação não estarão mais na cabeça de seu administrador de sistema com IaC, tudo está claramente definido no código.
E, como tudo está definido no código, você também pode automatizar facilmente o processo de execução dos ambientes de desenvolvimento, teste, teste e produção. Dessa forma, você pode testar as alterações em toda a implantação antes de atualizar. Você pode até automatizar testes de unidade IaC, se desejar.
Embora seja bastante complicado de configurar, os benefícios para projetos maiores certamente superam as possíveis dores de cabeça.
Usando infraestrutura como código
Naturalmente, codificar toda a sua infraestrutura pode ser um processo árduo. No entanto, nem sempre é necessário criar o modelo YAML manualmente; A solução CloudFormation IaC da AWS apresenta um “ Designer ” baseado na web, &’ que exibirá toda a sua pilha de produtos visualmente. Por exemplo, aqui está um dos modelos de amostra, para uma implantação WordPress de escalonamento automático e carga balanceada usando uma instância RDS como banco de dados.

Cada nó individual requer configuração, mas no final, ele produzirá um arquivo de modelo que você pode usar para criar toda a implantação.

A implementação exata irá variar dependendo do provedor, mas o AWS CloudFormation cuidará da criação de todos os recursos na ordem adequada. Por exemplo, se você tiver uma instância EC2 com um grupo de segurança, o CloudFormation se certificará de criar o grupo de segurança primeiro e, em seguida, criará a instância com esse grupo de segurança. Tudo que você precisa fazer é vinculá-los no console.
Para obter mais informações sobre o CloudFormation, você pode ler nosso guia para começar a usá-lo.
RELACIONADO: Codifique sua infraestrutura AWS com CloudFormation
Nenhum comentário