# data[].attributes.body
A ascensão das clouds públicas – como AWS, Azure e GCP – trouxe uma nova tendência muito citada quando o assunto é DevOps, que é a Infrastructure as Code (IaC).

Ferramentas como SaltStack, CloudFormation, Chef, Puppet, Vagrant, CFEngie e outras surgiram quase que simultaneamente. Mas nos dias de hoje, uma das ferramentas que a comunidade mais tem usado é o Terraform.

Terraform é uma ferramenta para construção, manutenção e versionamento de infraestrutura de forma segura e eficiente. O Terraform pode gerenciar tanto provedores públicos quanto privados.

# data[].attributes.body
O Ansible é uma ferramenta de automação de TI que automatiza o provisionamento em nuvem, o gerenciamento de configurações, a implantação de aplicativos, a orquestração intra-serviço e muitas outras necessidades de TI. É semelhante ao Puppet e Chef, porém com muito mais recursos, mais simples e amplamente utilizada por profissionais de DevOps.

Projetado para implantações de várias camadas desde o primeiro momento, o Ansible modela sua infraestrutura de TI, descrevendo como todos os seus sistemas se inter-relacionam, em vez de apenas gerenciar um sistema por vez. Um dos seus grandes diferenciais é o fato de utilizar agentes e nenhuma infraestrutura de segurança personalizada adicional, por isso é fácil de implantar – e o mais importante, usa uma linguagem muito simples (YAML, na forma de Ansible Playbooks).

# data[].attributes.body
David
Gaspar
Nelson
André
Fernando
Giovani

# data[].attributes.body
Google Cloud Platform é uma suíte de computação em nuvem oferecida pelo Google, funcionando na mesma infraestrutura que a empresa usa para seus produtos dirigidos aos usuários, dentre eles o Buscador Google e o Youtube.

# data[].attributes.body
O Azure Resource Manager é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure.
Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

Com a mudança para a nuvem, muitas equipes adotaram métodos de desenvolvimento ágeis. Essas equipes iteram rapidamente. Elas precisam implantar repetidamente suas soluções na nuvem e saber que sua infraestrutura está em um estado confiável. À medida que a infraestrutura se tornou parte do processo iterativo, a divisão entre operações e desenvolvimento desapareceu. As equipes precisam gerenciar a infraestrutura e o código do aplicativo por meio de um processo unificado.

Para atender a esses desafios, você pode automatizar implantações e usar a prática da infraestrutura como código. No código, você define a infraestrutura que precisa ser implantada. O código de infraestrutura torna-se parte do seu projeto. Assim como o código do aplicativo, você armazena o código de infraestrutura em um repositório de origem e controla a versão dele. Qualquer um em sua equipe pode executar o código e implantar ambientes semelhantes.

Para implementar a infraestrutura como código para suas soluções do Azure, use modelos de Azure Resource Manager (modelos ARM). Um modelo é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do projeto. O modelo usa a sintaxe declarativa, que permite declarar o que você pretende implantar sem precisar gravar a sequência de comandos de programação para criá-lo. No modelo, especifique os recursos a serem implantados e as propriedades deles.

Apresentamos uma nova linguagem chamada Bicep, que é usada para desenvolver o modelo do ARM em JSON. Os modelos de arquivos do Bicep e do JSON oferecem as mesmas capacidades. Você pode converter o modelo entre as duas linguagens. O Bicep fornece uma sintaxe que é mais fácil de usar para a criação de modelos.

# data[].attributes.body
CloudFormation é antes de mais nada um serviço gerenciado pela AWS que ajuda a organizar as soluções criadas na núvem, é uma peça fundamental para replicar configurações entre ambientes de desenvolvimento, homologação e produção dos clientes, mas também pode ser utilizado para replicar soluções reutilizáveis entre diversos clientes.

Costumo dizer que o CloudFormation sintetiza conhecimento, provisionamento de infraestrutura e horas de troubleshooting em templates de soluções.

Tecnicamente CloudFormation é a forma oficial de definir infraestrutura como código na nuvem da AWS, portanto, é uma peça fundamental para possibilitar processos de entrega contínua e DevOps.