Prévia do material em texto
Infraestrutura como Código A infraestrutura como código é o processo de gerenciamento e provisionamento da computação do data center por arquivos de definição legíveis por máquina, em vez de definir hardware físico ou configuração interativa de ferramentas. A infraestrutura de TI gerenciada varia de equipamentos físicos, como servidores bare metal, a máquinas virtuais e recursos de configuração associados. As definições podem estar em um sistema de controle de versão. Pode usar os dois scripts como definições declarativas, em vez de processos manuais, mas o termo é mais frequentemente usado para promover abordagens declarativas. O IaC cresceu em resposta à dificuldade apresentada por duas peças de tecnologia: computação sob demanda e estruturas da web de segunda geração. Em 2006, o lançamento da Cloud Computing Elástica da Amazon Web Services e a versão 1.0 do Ruby on Rails poucos meses antes do dimensionamento causou problemas generalizados para muitas empresas, problemas que antes eram testemunhados por grandes empresas. Com o surgimento de novas ferramentas para lidar com esse campo cada vez maior, nasceu a ideia de IaC. A ideia de modelar a infraestrutura com código e, em seguida, ter a capacidade de projetar, implementar e implantar a infraestrutura do aplicativo com as melhores práticas de software conhecidas atraía desenvolvedores de software e gerentes de infraestrutura de TI. A capacidade de tratá-lo como código e usar as mesmas ferramentas de qualquer outro projeto de software permitiria aos desenvolvedores implantar aplicativos rapidamente. O valor dos IaCs pode ser dividido em três categorias mensuráveis: custo (redução), velocidade (execução mais rápida) e risco (eliminação de erros e violações de segurança). A redução de custos visa ajudar não só a empresa em termos financeiros, mas também em termos de pessoas e esforço, o que significa que, ao eliminar a componente manual, as pessoas conseguem reorientar os seus esforços para outras tarefas empresariais. A automação da infraestrutura permite velocidade por meio de uma execução mais rápida ao configurar sua infraestrutura e visa fornecer visibilidade para ajudar outras equipes em toda a empresa a trabalhar com mais rapidez e eficiência. A automação elimina o risco associado a erros humanos, como configuração manual incorreta; eliminá-los pode diminuir o tempo de inatividade e aumentar a confiabilidade. Esses resultados e atributos ajudam a empresa a avançar na implementação de uma cultura deDevOps , o trabalho combinado de desenvolvimento e operações. Em geral, existem três abordagens para IaC: declarativa (funcional) vs. imperativo (procedimental) vs. inteligente (com consciência ambiental). A diferença entre a abordagem declarativa, imperativa e inteligente é essencialmente "o quê" vs. "como" vs. "porque". A abordagem declarativa concentra-se em qual deve ser a configuração de destino final; o imperativo se concentra em como a infraestrutura deve ser alterada para atender a isso; a abordagem inteligente concentra-se em por que a configuração deve ser de certa forma, considerando todos os relacionamentos e co-dependências de vários aplicativos executados na mesma infraestrutura normalmente encontrada na produção. 4A abordagem declarativa define o estado desejado e o sistema executa o que precisa acontecer para atingir esse estado desejado. O imperativo define comandos específicos que devem ser executados na ordem adequada para terminar com a conclusão desejada. O smart determina o estado desejado correto antes que o sistema execute o que precisa acontecer para atingir um estado desejado que não afete os aplicativos codependentes. O Estado Desejado com Consciência Ambiental é a próxima geração de IaC.