Infraestrutura como código (IaC) é uma abordagem para gerenciar infraestruturas de sistemas de TI que dependem do uso de arquivos de configuração repetíveis para gerar ambientes de implantação consistentes para o desenvolvimento de CI/CD.
Infraestrutura como código refere-se ao provisionamento e gerenciamento de infraestrutura, incluindo hardware, recursos virtuais, plataformas, sistemas de contêineres, serviços e topologias, por meio de definições declarativas ou com script — código — em vez de por meio de configuração manual ou do uso de ferramentas de configuração tradicionais. O IaC separa configurações, políticas, perfis, scripts e modelos do hardware ou software no qual eles são implantados para que possam ser armazenados, compartilhados, revisados e aplicados como código.
Essa abordagem, que cresceu com a popularidade das infraestruturas de nuvem, surge de uma mentalidade DevOps e aplica o mesmo tipo de controle de versão e repetibilidade à orquestração da infraestrutura que os desenvolvedores usam para o código-fonte do aplicativo. Uma abordagem IaC oferece suporte à integração, entrega e implantação contínuas, criando o mesmo ambiente de infraestrutura sempre que é aplicada.
A capacidade de tratar a infraestrutura como código traz os benefícios de automação, visibilidade, eficiência e escalabilidade ao gerenciamento de infraestrutura, para que os aplicativos possam ser implantados de forma mais rápida e confiável, com menos esforço manual e risco de erro humano ou vulnerabilidades de segurança. Como a configuração é desacoplada do sistema, ela pode ser implantada mais facilmente em um sistema semelhante em outro lugar. Dessa forma, reduz os desafios de migrar de um data center para uma nuvem ou de uma nuvem para outra.
A IaC também oferece suporte ao desenvolvimento ágil e às estratégias de CI/CD ao garantir que os ambientes de área restrita, teste e produção sejam idênticos e permaneçam consistentes ao longo do tempo, porque todos são configurados com o mesmo código ou scripts declarativos.
A configuração de IaC de servidores, balanceadores de carga, máquinas virtuais e outros recursos de data center ou nuvem pode ser realizada por abordagens imperativas que especificam instruções (sem detalhar o resultado) ou abordagens declarativas que especificam o resultado de configuração desejado (sem detalhar como chegar lá, o que pode ser baseado em fluxos de trabalho e modelos pré-existentes). A diferença pode ser comparada a pedir um sanduíche e confiar que o sanduicheiro saberá quais passos tomar e em que ordem (declarativo) — ou especificar cada passo necessário para fazê-lo sem necessariamente mencionar que eles resultarão em um sanduíche (imperativo).
Quer seja uma abordagem declarativa ou imperativa, a IaC automatiza o provisionamento e o gerenciamento da infraestrutura.
A plataforma F5 BIG-IP pode ser tratada “como código” com plug-ins ou extensões F5 Application Services 3 (AS3) para ferramentas de configuração e controle de versão de IaC, como Terraform e Ansible.
O F5 Automation Toolchain incorpora extensões AS3 e extensões F5 Declarative Onboarding (DO). AS3 é um mecanismo flexível e de baixa sobrecarga, baseado em declarações JSON, para configurar serviços de aplicativos L4–L7 em um sistema BIG-IP. As extensões DO permitem a integração declarativa L–L3 para produtos BIG-IP.