Ciclo de vida DevOps
Tags: devops, braziliandevs, learning, agile
Published: 2023-09-06 23:08:49

# Introdução
Uma cultura que promove a agilidade e colaboração entre os times de desenvolvimento e operação certamente está de baixo do guarda-chuva ágil. Quando bem implantada, os processos afetados por ela tornam-se tão automatizados e seguros quanto se deseja.

![Agile umbrella](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hxuezswg699or3xmrl8w.png)

# Vamos ao que interessa!
A cultura DevOps é fundamentada no sistema de gestão Lean. Seus valores fazem referência ao manifesto ágil. Seu objetivo é que as equipes consigam desenvolver e entrega software de forma contínua e consistente. A forma encontrada para fazer isso é promovendo a boa comunicação e mutua colaboração entre os times de desenvolvimento e operações.
Falar de ágil é dispensar qualquer menção ao modelo cascata, ficando claro que essa metodologia não é compatível. Por estar de baixo do guarda-chuva ágil, a cultura preza pela responsividade às necessidades do negócio. Isso requer que mudanças sejam feitas, testadas e implantadas continuamente. Ou seja, o software está sempre se alinhando com o objetivo do negócio.
## Pipeline DevOps
Na computação, o termo pipeline surgiu para designar uma funcionalidade existente em processadores modernos: o processamento paralelo de instruções em sequência. Da mesma forma, o pipeline DevOps visa definir etapas de desenvolvimento que são seguidas umas das outras, mas que podem acontecer de maneira independente entre funcionalidades distintas. São elas: integração contínua (CI), entrega contínua (CD), teste contínuo, implantação contínua (CD), monitoramento contínuo, feedback contínuo e operação contínua.
### Integração contínua
A literatura recomenda que os desenvolvedores devem integrar seu código ao principal ao menos uma vez ao dia, a ideia é que haja mais estabilidade no código com um topo por meio da rápida identificação de falhas na integração de códigos. Em uma esteira DevOps, os códigos são integrados e automaticamente testados, para que esse processo seja muito mais rápido e automático. Aliado ao versionamento e a comunicação automatizada, temos maiores garantias de que os erros serão rapidamente identificados, comunicados e corrigidos.
### Entrega contínua
A entrega de software também é automatizada, e os critérios que definem isso podem ser os mais variados: fim de sprint, periodicidade, sucesso em certos testes, etc. O objetivo aqui é que uma funcionalidade nova ou correção estejam prontos para serem implantados.
### Teste contínuo
É desnecessário mencionar as vantagens dos testes em software. Há uma metodologia inteira guiada por testes para mostrar isso. Essa etapa dever ser a mais priorizada quando os objetivo é entregar software estável, previsível, seguro, robusto, qualificado e completo. Por muitas vezes, principalmente em pequenos projetos, negligenciamos essa etapa, seja por pressa ou por ignorância. O que a cultura tem a contribuir com os testes é na automatização deles. 
### Operações contínuas
Tempo fora do ar é tempo perdido, e tempo perdido é prejuízo. A palavra-chave aqui é disponibilidade. Busca-se eliminar as paradas programadas, janelas de manutenção, por meio da automação nos processo de recuperação de falhas, sejam de hardware ou de software.
### Monitoramento contínuo
Neste ponto, o desempenho das aplicações é monitorado para que a experiência do cliente esteja dentro das definições de nível de serviço. Não só para isso, mas para a detecção de anomalias, sejam de software como de segurança, e para geração de relatórios que serão utilizados na etapa seguinte.
### Feedback Contínuo
Ter retorno sobre o que fazemos é algo essencial quando se quer ir mais longe. O feedback é uma forma excelente de saber se alcançamos ou não aquilo que planejamos. Esse recurso nos dará insumos no processo de tomada de decisão no modelo de melhoria contínua.
## Automação de atividades no ciclo DevOps
Automação é sinônimo de aumento de produtividade e redução de falhas humanas. A automação deve priorizar em primeira instâncias os processos mais críticos, como os que agregam maior valor ao negócio. Entre os motivos que sustentam a automação estão:
- Menor ocorrência de erros, maior facilidade de identificação de erros;
- Processos repetíveis e seguros
- Documentação do processo facilitada
- Processos automatizados são mais rápidos do que processos manuais
- Automação barateia a execução de processos

![Automation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u3qny94jmh02gyybbjca.png)

A automatização é excelentemente aproveitada quando se deseja ter escalabilidade, replicabilidade, confiabilidade e gerenciamento facilitado. Poucos são os processos que não suportam automação. 
## Ágil x DevOps
O valor "indivíduos e interações mais do que processos e ferramentas" se encaixa com o pilar do compartilhamento/colaboração da cultura DevOps. A Integração contínua, conceito oriundo da metodologia Extreme Programming (XP), foi absorvido na cultura DevOps, devido os seus ganhos significativos para o desenvolvimento. Nota-se que há compatibilidade com outras metodologias e ferramentas ágeis.
# Para não sobrar dúvidas
A cultura DevOps é uma ferramenta agilizadora e poderosa para promover maior integração entre times. Sua compatibilidade com o manifesto ágil e sua abordagem automatizadora faz com o que as empresas tirem muitas vantagens do seu uso. Mas do que cargos e ferramentas, DevOps é uma cultura. O ciclo de vida DevOps influência tanto quando é influenciado pelo ciclo de desenvolvimento, que não foge muito das metodologias ágeis. 
## Interaja
Eu estou curioso para saber da experiência de vocês com DevOps na sua empresa ou em empresas que você passou. Deixe um comentário, curta e me siga para mais conteúdos como esse. Um abraço, rede!