O que é Infraestrutura como Código?

A infraestrutura como código (IaC) permite que uma empresa automatize métodos de provisionamento para dimensionar a nuvem de forma eficiente, economizando tempo e dinheiro.

IaC

A infraestrutura como código permite que as empresas controlem com mais eficiência as alterações e configurações em um ambiente de nuvem. IaC oferece práticas de DevOps que permitem que desenvolvedores e operações trabalhem mais de perto na implantação de máquinas virtuais, nas redes virtuais que são construídas em torno delas e no aplicativo dentro delas.

Imperativo vs. declarativo

Uma das decisões que precisam ser feitas para aproveitar o IaC é se deve fazer alterações em seu ambiente com automação imperativa ou declarativa. A maior parte do IaC é de natureza declarativa. Aqui está uma maneira simples de olhar para isso: imperativo vs. declarativo é a diferença entre como o programa deve operar e o que o programa precisa realizar.

Para fazer alterações imperativas de automação em sua infraestrutura, você pode usar uma Interface de Linha de Comando (CLI). Ele direciona as mudanças para a nuvem primeiro dentro de um contêiner, depois para a máquina virtual (VM) e, em seguida, para a nuvem privada virtual, em ordem, por meio de um script. Esta é uma lista de verificação detalhada, mas se a configuração precisar ser alterada após o envio para várias máquinas, as etapas e o script deverão ser refeitos.

Uma abordagem de automação declarativa requer metas de criação. Por exemplo, em vez de usar a CLI e listar a configuração exata passo a passo para uma VM, você simplesmente declararia que deseja uma VM com, digamos, um domínio anexado e, em seguida, deixe a automação assumir. A abordagem declarativa permite que você defina mais facilmente o que precisa ser realizado pelas ferramentas de automação.

Mutável vs. imutável

O desvio de configuração é um grande problema em relação à configuração de toda e qualquer parte da infraestrutura. Isso ocorre quando a infraestrutura mutável está em vigor. Mutável significa que está sujeito a mudanças. Como uma parte da infraestrutura muda, ela fica fora de sincronia com o resto. É muito importante para a segurança que uma aplicação consistente de configurações esteja em vigor em toda a infraestrutura.

A infraestrutura imutável não pode ser alterada depois de implantada. As alterações ainda ocorrerão, mas são feitas nas declarações declarativas originais. Assim que as alterações estiverem prontas, todos os dispositivos ou configurações semelhantes são alterados de forma consistente. A consistência é necessária do ponto de vista da segurança, porque os hackers precisam apenas de uma porta aberta para entrar. Fechar todas as portas da mesma forma complica as coisas para o hacker.

Devops

O desenvolvimento, o teste e a implantação de aplicações em um ambiente de produção geralmente exigem que os desenvolvedores esperem pela produção ou vice-versa. Uma implantação mais fácil e rápida é possível quando as configurações de rede e máquina virtual são feitas por meio de um sistema controlado. Os desenvolvedores podem então solicitar contêineres ou máquinas virtuais por meio de uma solicitação automatizada com o mesmo nível de estabilidade que é aplicado ao código. Isso resulta em um melhor controle de versão que é mais fácil de rastrear.