O que é essa tal de infraestrutura como código que diversos profissionais andam falando pelas empresas?

História do DevOps

Infraestrutura como Código

hnz-consultoria-e-treinamentos-blog-o-devops-matou-o-gerenciamento-do-ciclo-de-vida-do-aplicativo-cva

O DevOps nasce talvez a partir de uma visão de cooperação entre desenvolvedores e operação que se materializou na conferência da Velocity em 2009. Nesta conferência, uma palestra foi apresentada por dois funcionários da Flickr onde eles mostravam que a cooperação tinha resultado em mais de 10 implantações por dia cooperando dev e ops. Patrick Debouis, grande padrinho do cunho DevOps, já estava pensando em ideias de colaboração antes da palestra, porém foi neste momento que o estalo aconteceu e ele começou a desenvolver o que hoje conhecemos como DevOps.

Ele criou um evento que tinha como objetivo reunir os especialistas da área para eles mostrarem as práticas que todos estavam utilizando em suas organizações para a evolução da TI. Esse evento ficou conhecido como DevOpsDays. Se você tiver mais interesse na história do devops, clica aqui que nós temos um artigo falando sobre isso!

DevOps nasce com uma transformação da maneira de trabalhar da TI, e talvez a revolução principal que ele traz é conseguir integrar o negócio com a área de TI de uma maneira gritante. Ou seja, negócio e TI trabalhando juntos para atender o cliente final. Só e possível fazer isso a partir da possibilidade de construir ambientes padronizados.

A agilidade nasceu no ano 2001 a partir do manifesto, mas isso não significa que os métodos tenham nascido naquela data. Não, teve um momento anterior de construir uma maneira diferente de desenvolver softwares e a partir daí veio uma consolidação que se materializou no manifesto ágil. Porém, o que estava faltando para conseguir ter uma visão sistêmica de todo o trabalho?

Conseguimos colocar agilidade no desenvolvimento, práticas como integração contínua, testes automatizados, programação em pares, entre outras já eram bem conhecidas. O que mudou com a integração de práticas de infraestrutura como código? A possibilidade de disponibilizar ambientes de maneira padronizada e ágeis. Ou seja, Patrick Debouis estava naquela época olhando para a equipe de desenvolvimento nessa disciplina que é versionar códigos, e conseguir a partir desse versionamento poder ter possibilidade de acessar, aceder a versões anteriores de códigos que foram evoluídos com o tempo de maneira rápida.

A extensão dessa ideia para uma infraestrutura que lembrando anos atras que o próprio pessoal de infra disponibilizava de maneira manual os ambientes, lentamente e de maneira artesanal. Quando dava um erro em produção havia uma comoção para tentar resolver esse problema materializando mudanças, parametrização, configuração de maneira muito artesanal. A solução começou a ficar extremamente complexa a ponto de não conseguirmos ter um controle total dela.

Práticas da Infraestrutura como código 

A infraestrutura como código é a abordagem para definir a infraestrutura de computação e rede, que se utiliza de técnicas de gerenciamento de código fonte, sendo tratado como qualquer sistema de software.

Esse código pode ser mantido no controle de fonte para permitir audibilidade e construção reproduzível, sujeito às práticas de teste e à disciplina total de Entrega Continua.

A infraestrutura como código é baseada em algumas práticas:

  • Usar arquivos de definição
  • Sistemas e processos auto documentados
  • Versão todos os elementos
  • Teste continuamente sistemas e processos
  • Pequenas mudanças em vez de lotes
  • Mantenha os serviços disponíveis continuamente

Transformação no trabalho de TI

Infraestrutura como Código

hnz-consultoria-e-treinamentos-blog-como-implementar-devops-as-24-praticas-para-a-adocao-do-devops-capacidades-de-arquitetura

“Habilita a reconstrução do negócio do nada, além de um repositório de código fonte, backup de dados de aplicações e recursos físicos crus” Adam Jacob, CTO da Chef

Isso mudou a maneira de conseguir trabalhar da TI.

A partir disso se tornou possível integrar dentro desse espaço, que é desenvolvimento e operação, justamente o que se chama de entrega contínua. A Entrega contínua disponibiliza soluções implantáveis de maneira muito rápida.

Anteriormente com o modelo cascata era possível disponibilizar uma ou duas vezes por ano soluções, com agilidade já era possível fazer isso com maior frequência, agora com infraestrutura como código é possível disponibilizar e desconstruir os ambientes de forma muito rápida, se tornando possível realizar testes atômicos.

Exemplificando um pouco, imagine que se eu texto uma funcionalidade de ponta a ponta, cancelamento de uma compra, alteração de endereço, coisas que são realmente muito mais complexas que simplesmente um teste unitário, eu preciso de um banco de dados que me permita trabalhar aquele serviço de ponta a ponta. Se eu consigo reproduzir esse cancelamento 1,2,3…1000 vezes e sempre dando o mesmo resultado, ela me permite trabalhar essa previsibilidade, uma vez que eu mudo a parametrização, mudo o código, mudo alguma parte, eu submeto essa mudança a uma coisa que não deveria mudar.

A regra de negócios está materializada a partir de testes de aceitação, e eles me permitem elevar o grau de estabilidade do ponto de vista do que seria previsível para conseguir implantar em produção. Ainda mais, a infraestrutura como código me permite a partir de diferentes variações resolver rapidamente falhas no sistema. Se uma coisa é certa é que os sistemas irão falhar e para isso é necessário ter mecanismos de uma rápida recuperação dele. As técnicas vindas da infraestrutura como código me permitem recuperar rapidamente os sistemas, ou seja, consigo ter um controle maior do que está ocorrendo, a partir de uma proatividade do trabalho gerenciando melhor essas falhas que passam a ser materializadas por alguma situação não completamente prevista.

A complexidade começa a ser tratada de uma maneira muito melhor.

Temos várias vertentes que partem de devops. Agildiade, Operação, Lean, Entrega contínua, Resiliência em ambientes a prova de falhas, é sustentada a partir de toda essa gestão de sistemas automatizados. A infraestrutura como código passa a ser uma das vertentes mais fundamentais para sustentar o processo de entrega contínua

Gostaria de saber mais sobre tema? Então confira o vídeo que preparamos para você!

Newsletter HNZ

Fique por dentro de nossos conteúdos se cadastrando na nossa newsletter semanal! Clique aqui!

HNZ

HNZ

Leave a Reply