O DevOps é uma cultura de engenharia de Software que integra os times de desenvolvimento e operações de forma colaborativa. Seu principal objetivo é melhorar a eficiência e a qualidade do processo de desenvolvimento, através de algumas práticas como automação de processos, integração e entrega contínua (CI/CD), testes e monitoramento.
Ele visa eliminar as barreiras e silos entre os times. Portanto, não faz distinção entre setores, mas sim promove a colaboração e a integração de todos os membros da equipe em um processo de desenvolvimento de software mais ágil e eficiente.
Continue lendo para entender tudo sobre o assunto!
O que é preciso para implementar o DevOps?
A utilização de DevOps em uma empresa, geralmente requer mudanças culturais significativas. Além do uso de uma metodologia ou conjunto de ferramentas, também é necessário uma filosofia que enfatize a colaboração, comunicação, automação e melhoria contínua.
Isso exige transformações na mentalidade e no comportamento das equipes de desenvolvimento e operações, bem como na cultura organizacional como um todo. Alguns dos pontos necessários para implementar o DevOps são:
Quebra de barreiras
Para que os processos ocorram de forma mais ágil, todos precisam estar integrados. Para isso, é necessário quebrar as barreiras entre os times de desenvolvimento e operações, promovendo ações de colaboração e a comunicação.
Valor agregado
Os clientes estão cada vez mais exigentes em busca de soluções para suas demandas. Enquanto isso, o mercado de tecnologia torna-se mais competitivo.
Então, para atender de maneira assertiva, é preciso estabelecer um pensamento focado na agregação de valor para o cliente, que vai além da entrega do software.
Padronização e eficiência
Promover a automação e a padronização de processos é mais uma mudança necessária com o DevOps. Com isso, é possível aumentar a eficiência e reduzir erros humanos. Aqui entra a busca pela melhoria da performance do negócio, assim como sua capacidade de respostas.
Inovação contínua
Outro fator importante é incentivar a experimentação e a inovação contínua. Em outras palavras, estabelecer uma cultura de aprendizado e melhorias.
Quais os benefícios do DevOps?
Para implementar com sucesso o DevOps em uma empresa, é importante envolver toda a organização, desde a alta gerência até as equipes de desenvolvimento e operações. No caso de transição a partir de um modelo mais tradicional, os benefícios incluem:
- Melhoria da qualidade e confiabilidade do software, com automação de testes e análise de código;
- Maior eficiência e produtividade, automatizando tarefas repetitivas;
- Entrega de software mais rápida e frequente, através da colaboração;
- Redução de custos promovida através da automação e melhorias.
Como foi a mudança de cultura na Teclógica?
A Teclógica começou a utilizar DevOps em meados de 2015, quando percebemos que nossa equipe de desenvolvimento e nossos clientes necessitavam de um processo de entrega que acompanhasse o nosso crescimento.
Existia uma dependência de que pessoas executassem uma série de processos e procedimentos manuais, dependendo de conhecimentos específicos para que algo fosse entregue nos ambientes, seja em desenvolvimento ou em produção.
Para melhorar isso, começamos a utilizar as práticas de DevOps e ferramentas de CI/CD, como o Jenkins – servidor de automação de código aberto, para automatizar o máximo possível destes processos, visando nosso ciclo de vida de desenvolvimento desde a criação de ramificações do projeto (branches) até a entrega da solução.
Tivemos grandes avanços nesse sentido, e continuamos evoluindo por acreditarmos numa melhoria contínua, com a constante evolução das ferramentas. Com o passar do tempo, houveram contribuições da própria equipe, que ajudaram a aprimorar e lapidar os processos.
Já em 2019, fizemos a migração da ferramenta Jenkins para a ferramenta GitLab, que possuía alguns recursos mais adequados às necessidades de evolução e crescimento. Além disso, ela foi importante para centralizar as ferramentas de desenvolvimento e deixar o processo mais estruturado, integrado e transparente, diminuindo a possibilidade de falhas humanas.
O Jenkins atendia muito bem as nossas necessidades de CI/CD, porém o Gitlab, além de atender as mesmas demandas perfeitamente, permitiu vincular e controlar todas as as tarefas de desenvolvimento automaticamente.
Como o DevOps é feito hoje na empresa?
Atualmente, o GitLab é a principal ferramenta de desenvolvimento na Teclógica, onde registramos todas as questões envolvendo os produtos, desde melhorias até os erros de programas, permitindo acompanhar todo o fluxo até a resolução.
As alterações de código fonte podem ser facilmente observadas através da rastreabilidade fornecida pela ferramenta, as quais são agrupadas em um marco (milestone) para ser enviado para produção através de uma release.
Cria-se assim um processo que organiza uma série de complexidades de forma mais transparente, tornando-se imprescindível para o bom funcionamento de DevOps.
Tendo nossos produtos na nuvem na Google Cloud desde 2016, em meados de 2020 começamos a utilizar o Google Kubernetes Engine (GKE), que nada mais é do que uma ferramenta de orquestração de serviços em container para disponibilizar as aplicações. Esta prática contribuiu diretamente na disponibilidade, elasticidade e resiliência das aplicações.
Outra inovação importante foi a adoção de Infrastructure as Code (IaC), que significa manter os procedimentos de infraestrutura, como criação de máquinas e recursos, em código fonte.
Isto significa que, para reconstruir as máquinas e serviços, basta executar scripts, sem muita necessidade de intervenção humana, diminuindo significativamente o risco de falhas neste processo, especialmente em ambientes extremamente complexos.
Além disso, o IaC faz com que tudo fique documentado e versionado, facilitando a rastreabilidade das mudanças. Isso também permite executar processos de fallback mais facilmente, o que é algo muito trabalhoso em modelos de infraestrutura tradicionais.
Conclusão
Após todos estes ciclos de evolução, podemos concluir que DevOps deixou de ser uma recomendação e virou uma necessidade para quem trabalha com desenvolvimento de softwares. Suportando a evolução ágil, contínua e organizada das aplicações.
DevOps não tem receita pronta: cada empresa precisa implementar um processo ajustado a sua realidade e as suas necessidades. Ele deve ser encarado como um processo em contínua evolução, pois as ferramentas disponíveis no mercado e as necessidades de negócio vão mudando, gerando oportunidades para adotar melhores práticas e soluções.
Esse processo é também um instrumento para proporcionar o aumento da satisfação do cliente, contribuindo para a estabilidade e confiabilidade de uso das soluções. Gostou deste conteúdo? Então continue acompanhando o blog da Teclógica.
*Este artigo foi produzido pela equipe da Teclógica: Sílvio Etges, Gerente de Produto; João Batista Gianisini Junior, Arquiteto de Software e Igor Thiago Balsanelli Martins, Analista de Infraestrutura.