Infraestrutura como código - Introdução ao DevOps na AWS

Infraestrutura como código

Um princípio fundamental de DevOps é tratar a infraestrutura da mesma maneira que os desenvolvedores tratam o código. O código da aplicação tem um formato e uma sintaxe definidos. Se o código não for escrito de acordo com as regras da linguagem de programação, as aplicações não poderão ser criadas. O código é armazenado em um sistema de gerenciamento de versão ou controle de origem que registra um histórico de desenvolvimento, alterações e correções de bugs de código. Quando o código é compilado ou incorporado em aplicações, esperamos que uma aplicação consistente seja criada e a compilação seja repetível e confiável.

Praticar a infraestrutura como código significa aplicar o mesmo rigor do desenvolvimento de código de aplicação ao provisionamento de infraestrutura. Todas as configurações devem ser definidas de forma declarativa e armazenadas em um sistema de controle de origem, como AWS CodeCommit, o mesmo que o código da aplicação. O provisionamento, a orquestração e a implantação da infraestrutura também devem oferecer suporte ao uso da infraestrutura como código.

Tradicionalmente, a infraestrutura era provisionada usando uma combinação de scripts e processos manuais. Às vezes, esses scripts eram armazenados em sistemas de controle de versão ou documentados detalhadamente em arquivos de texto ou runbooks. Muitas vezes, a pessoa que escreve os runbooks não é a mesma pessoa que executa esses scripts ou acompanha os runbooks. Se esses scripts ou runbooks não forem atualizados com frequência, eles têm o potencial de se tornar um obstáculo nas implantações. Isso faz com que a criação de novos ambientes nem sempre seja repetível, confiável ou consistente.

Em contraste com o anterior, a AWS fornece uma maneira focada em DevOps de criar e manter a infraestrutura. Semelhante à maneira como os desenvolvedores de software escrevem o código da aplicação, a AWS fornece serviços que permitem a criação, a implantação e a manutenção da infraestrutura de maneira programática, descritiva e declarativa. Esses serviços fornecem rigor, clareza e confiabilidade. Os serviços da AWS discutidos neste documento são fundamentais para uma metodologia de DevOps e formam a base de vários princípios e práticas de DevOps da AWS de nível superior.

A AWS oferece os seguintes serviços para definir a infraestrutura como um código: