Infraestrutura como código (IaC) é uma abordagem para gerenciar infraestruturas de sistemas de TI que utiliza arquivos de configuração reutilizáveis para gerar ambientes de implantação consistentes para o desenvolvimento de CI/CD.

O que é infraestrutura como código?

Infraestrutura como código refere-se ao provisionamento e gerenciamento da infraestrutura, incluindo hardware, recursos virtuais, plataformas, sistemas de contêineres, serviços e topologias, por meio de definições declarativas ou baseadas em scripts — ou seja, código — em vez de configuração manual ou do uso de ferramentas de configuração tradicionais. A IaC separa configurações, políticas, perfis, scripts e modelos do hardware ou software em que são implantados, permitindo que sejam armazenados, compartilhados, revisados e aplicados da mesma forma que o código.

Essa abordagem, que cresceu com a popularização das infraestruturas de nuvem, tem origem em uma mentalidade DevOps e aplica à orquestração da infraestrutura o mesmo tipo de controle de versão e repetibilidade que os desenvolvedores usam no código-fonte de aplicações. Uma abordagem de IaC oferece suporte à integração, entrega e implantação contínuas, criando o mesmo ambiente de infraestrutura sempre que é aplicada.

diagrama

Figura 1: a IaC separa os recursos de configuração do hardware ou software para que possam ser armazenados, compartilhados e gerenciados como código

Por que a infraestrutura como código é importante?

A capacidade de tratar a infraestrutura como código traz os benefícios da automação, visibilidade, eficiência e escalabilidade para o gerenciamento da infraestrutura, permitindo que as aplicações sejam implantadas com mais rapidez e confiabilidade, com menos esforço manual e menor risco de erros humanos ou vulnerabilidades de segurança. Como a configuração é desacoplada do sistema, ela pode ser implantada com mais facilidade em um sistema semelhante em outro local. Dessa forma, reduzem-se os desafios da migração de um data center para uma nuvem ou de uma nuvem para outra.

A IaC também oferece suporte a estratégias de desenvolvimento ágil e CI/CD, garantindo que os ambientes de sandbox, teste e produção sejam idênticos e permaneçam consistentes ao longo do tempo, pois todos são configurados com o mesmo código declarativo ou os mesmos scripts.

Como funciona a infraestrutura como código?

A configuração de servidores, balanceadores de carga, máquinas virtuais e outros recursos de data center ou de nuvem por meio de IaC pode ser realizada tanto por abordagens imperativas, que especificam instruções (sem detalhar o resultado), quanto por abordagens declarativas, que especificam o resultado de configuração desejado (sem detalhar como alcançá-lo, o que pode se basear em fluxos de trabalho e modelos preexistentes). A diferença pode ser comparada a pedir um sanduíche e confiar que quem o prepara saiba quais etapas seguir e em que ordem (declarativa) — ou especificar cada etapa necessária para prepará-lo sem necessariamente mencionar que elas resultarão em um sanduíche (imperativa).

Independentemente de ser usada uma abordagem declarativa ou imperativa, a IaC automatiza o provisionamento e o gerenciamento da infraestrutura.

Como a F5 lida com infraestrutura como código?

A plataforma F5 BIG-IP pode ser tratada “como código” com plug-ins ou extensões do F5 Application Services 3 (AS3) para ferramentas de configuração e versionamento de IaC, como Terraform e Ansible.

A F5 Automation Toolchain incorpora extensões do AS3 e do F5 Declarative Onboarding (DO). O AS3 é um mecanismo flexível e de baixa sobrecarga, baseado em declarações JSON, para configurar serviços de aplicativos de L4 a L7 em um sistema BIG-IP. As extensões do DO permitem a integração declarativa de L1 a L3 para produtos BIG-IP.