O que é infraestrutura como código?

Infraestrutura como código (IaC) é a capacidade de provisionar e dar suporte à infraestrutura de computação usando código em vez de configurações e processos manuais. Todo ambiente de aplicações requer muitos componentes de infraestrutura, como sistemas operacionais, conexões de banco de dados e armazenamento. Os desenvolvedores precisam configurar, atualizar e manter regularmente a infraestrutura para desenvolver, testar e implantar aplicações. 

O gerenciamento manual da infraestrutura é demorado e propenso a erros, especialmente quando você gerencia aplicações em grande escala. A infraestrutura como código permite definir o estado desejado da infraestrutura sem incluir todas as etapas para chegar a esse estado. Ela automatiza o gerenciamento da infraestrutura para que os desenvolvedores possam se concentrar em criar e aprimorar aplicações em vez de gerenciar ambientes. As organizações usam a infraestrutura como código para controlar custos, reduzir riscos e responder com rapidez a novas oportunidades de negócios.

Quais são os benefícios da infraestrutura como código?

A automação é uma meta fundamental em qualquer ambiente de computação. A infraestrutura como código (IaC) é usada para automação de infraestrutura para criar ambientes. O uso mais comum da IaC é no desenvolvimento de software para criar, testar e implantar aplicações.

Tradicionalmente, os administradores de sistemas usavam uma combinação de scripts e processos manuais para configurar ambientes de infraestrutura. O processo era complexo e demorado. Hoje, você pode usar a IaC para configurar automaticamente o ambiente em minutos e gerenciá-lo com mais eficiência. Em seguida, oferecemos alguns benefícios.

Duplique facilmente um ambiente

O mesmo ambiente pode ser implantado em um sistema diferente em outro local usando a mesma IaC, desde que os recursos de infraestrutura estejam disponíveis.

Por exemplo, imagine que a filial regional de uma empresa tenha IaC para descrever todo o ambiente corporativo da filial, incluindo servidores, redes e configurações personalizadas. Se a empresa abrisse outra filial regional, ela poderia usar a IaC para duplicar exatamente o mesmo ambiente e tornar a filial on-line e operacional rapidamente. A IaC remove as etapas manuais repetitivas e as listas de verificação que eram necessárias no passado.

Reduza os erros de configuração

A configuração manual está sujeita a erros devido ao envolvimento humano. As pessoas cometem erros. Ou pode haver um desvio de configuração devido a alterações em uma configuração (como um ambiente de desenvolvedor) que foram perdidas em outra configuração (como um ambiente de teste).

Por outro lado, a IaC reduz os erros e agiliza a verificação deles. Se houver erros devido às atualizações do código da IaC, você pode corrigir rapidamente a situação transferindo a base de código para os últimos arquivos de configuração estáveis conhecidos. Também é possível reverter ambientes usando versões anteriores dos arquivos de configuração da IaC por outros motivos, como a implantação de versões mais antigas da aplicação.

Faça iterações em ambientes de melhores práticas

O controle de origem permite que os desenvolvedores de software criem e se ramifiquem facilmente em ambientes. Por exemplo, imagine que uma aplicação cresceu para incluir um módulo opcional de machine learning. Um desenvolvedor poderia ramificar a IaC da aplicação para iniciar, usar e interromper uma instância Trn1 de alto desempenho do Amazon Elastic Compute Cloud (Amazon EC2). Ele pode definir a região de implantação como dependente da região de implantação da aplicação.

Como funciona a infraestrutura como código?

Assim como o código de software descreve uma aplicação e como ela funciona, a infraestrutura como código (IaC) descreve uma arquitetura de sistema e como ela funciona. Uma arquitetura de infraestrutura contém recursos como servidores, redes, sistemas operacionais e armazenamento. A IaC controla os recursos virtualizados tratando os arquivos de configuração como arquivos de código-fonte. Você pode usá-la para gerenciar a infraestrutura de forma codificada e repetível. 

As ferramentas de gerenciamento de configuração da IaC usam especificações de linguagem diferentes. Você pode desenvolver a IaC de forma semelhante ao código da aplicação em Python ou Java. Você também escreve a IaC em um ambiente de desenvolvimento integrado (IDE) com verificação de erros integrada. E você pode mantê-la sob controle de origem com confirmações em cada alteração de código. Os arquivos da IaC são incluídos como parte de uma base de código mais ampla.

Abordagens à IaC

Há duas abordagens diferentes para a infraestrutura como código.

Declarativa

A IaC declarativa permite que um desenvolvedor descreva recursos e configurações que compõem o estado final de um sistema desejado. A solução IaC, então, cria esse sistema a partir do código de infraestrutura. Isso torna a IaC declarativa simples de usar, desde que o desenvolvedor saiba quais componentes e configurações eles precisam para executar a aplicação.

Imperativa

A IaC imperativa permite que um desenvolvedor descreva todas as etapas para configurar os recursos e chegar ao sistema e ao estado de execução desejados. Embora não seja tão simples escrever a IaC imperativa quanto a IaC declarativa, a abordagem imperativa se torna necessária em implantações complexas de infraestrutura. Isso é verdadeiro especialmente quando a ordem dos eventos é crítica.

Qual é o papel da IaC no DevOps?

O DevOps é o processo de melhorar a colaboração entre as equipes de desenvolvimento de software e operações de TI. O objetivo é reduzir o ciclo de vida de desenvolvimento de aplicações e oferecer entrega contínua de software de alta qualidade. As equipes de DevOps integram as atividades operacionais às ferramentas do desenvolvedor e aos commits de código para que as aplicações possam ter ciclos de lançamento extremamente rápidos.

Um dos principais objetivos do DevOps é automatizar as tarefas de infraestrutura em todo o processo de desenvolvimento. Você pode integrar a infraestrutura como código (IaC) em pipelines de integração contínua e implantação contínua (CI/CD). Dessa forma, quando o software passa pelo processo de criação e lançamento, as mudanças de infraestrutura necessárias podem ser feitas em conjunto.

As equipes de DevOps usam a infraestrutura como código para vários propósitos:

  • Configurar rapidamente ambientes completos, do desenvolvimento à produção
  • Ajudar a garantir configurações consistentemente reproduzíveis entre ambientes
  • Integrar-se perfeitamente aos provedores de nuvem e aumentar ou diminuir os recursos de infraestrutura com eficiência com base na demanda

A IaC apresenta uma linguagem comum para desenvolvedores e operações. As mudanças podem ser revisadas de forma transparente, o que promove uma melhor colaboração em um ambiente de DevOps.

Leia mais sobre DevOps »

Como a AWS pode oferecer suporte aos seus requisitos de IaC?

As ofertas da Amazon Web Services (AWS) são projetadas pensando na infraestrutura como código (IaC). Assim, você pode gerenciar com segurança arquiteturas de nuvem complexas definindo-as e executando-as em código.

Aqui estão os serviços da AWS que podem ajudar com suas necessidades de IaC:

  • Com o AWS Cloud Development Kit (AWS CDK), os desenvolvedores podem definir recursos de aplicações em nuvem com linguagens de programação familiares e ferramentas de configuração interativas, tudo no IDE. Isso elimina a necessidade de aprender novas linguagens e ferramentas para manipular os recursos da nuvem.
  • Com o AWS CloudFormation, os desenvolvedores podem criar e escalar além da infraestrutura da AWS. Os desenvolvedores podem usar a IaC para definir e gerenciar recursos de nuvem publicados no registro do CloudFormation, na comunidade de desenvolvedores e nas bibliotecas internas.
  • Para um controle de origem totalmente gerenciado da IaC e de todo o código da aplicação, o AWS CodeCommit é um serviço seguro e escalável para hospedar repositórios Git privados.

Comece a usar a infraestrutura como código na AWS criando uma conta hoje mesmo.

Próximas etapas na AWS

Confira recursos adicionais relacionados a produtos
Confira os serviços de ferramentas do desenvolvedor 
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS.

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login