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 se refere 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 de script (código) em vez de configuração manual ou uso de ferramentas de configuração tradicionais. A 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 o código pode.
Essa abordagem, que cresceu com a popularidade das infraestruturas em 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 da aplicação. Uma abordagem de IaC oferece suporte à integração, entrega e implantação contínuas ao criar o mesmo ambiente de infraestrutura sempre que é aplicado.
A capacidade de tratar a infraestrutura como código proporciona os benefícios de automação, visibilidade, eficiência e escalabilidade para o gerenciamento da infraestrutura, de modo que as aplicações possam ser implantadas de forma mais rápida e confiável, com menos esforço manual e menos risco de erro humano ou vulnerabilidades de segurança. Como a configuração é desacoplada do sistema, ela pode ser implementada mais prontamente em um sistema semelhante em outro lugar. Dessa forma, reduz os desafios de migração 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 da 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 da configuração desejada (sem detalhar como alcançá-lo, 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 etapas adotar e em que ordem (declarativa) — ou especificar todas as etapas necessárias para fazê-lo, sem necessariamente mencionar que 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 configuração da IaC e ferramentas de controle de versão, como Terraform e Ansible.
O F5 Automation Toolchain incorpora extensões AS3 e extensões F5 Declarative Onboarding (DO). AS3 é um mecanismo flexível de baixa sobrecarga, baseado em declarações JSON, para configurar serviços de aplicação de L4–L7 em um sistema BIG-IP. As extensões DO permitem a integração declarativa da L1–L3 para produtos BIG-IP.