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.
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
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!
Top comments (0)