DevOps: quebrando barreiras e construindo pontes
Atualmente muito se fala sobre DevOps. Mas o que realmente isso significa no dia a dia das equipes? É sobre isso que vamos falar hoje.
O termo DevOps surgiu entre 2007 e 2008, mas foi somente em 2009 na O’Reilly Velocity Conference, quando dois especialistas que trabalhavam na Flickr apresentaram um seminário enfatizando a importância da integração dos times de desenvolvimento e operações para acelerar as entregas de tecnologia que o termo se consolidou.
A grosso modo é a junção das palavras desenvolvimento e operação: dev + ops = DevOps.
Segundo seu criador, Patrick Debois:
“DevOps é um método para desenvolvimento de software que enfatiza comunicação,colaboração, automação e uso de métricas.”
As empresas tradicionais para se adaptarem ao mundo de transformações e mudanças constantes, precisam adotar as metodologias ágeis de produção e entrega de software, tornando o DevOps o motor para essa transformação.
As velhas estruturas de desenvolvimento de software, voltada para as equipes isoladas e especializadas somente em um parte do negócio, trabalhando com entregas longas e o cliente vendo o produto somente quando estiver totalmente finalizado, começam a sumir.
Falar de DevOps, é falar em integração.
Onde não houver integração, não é possível a implementação do DevOps.
Entre as equipes de desenvolvimento e operações de empresas tradicionais tipicamente existem muitas barreiras. Uma equipe é responsável pelas entregas de software e outra por manter os ambientes estáveis. Qualquer erro que ocorra na implantação, um muro automaticamente é levantado e começa a busca pelo culpado. Cada um dentro das suas responsabilidades estão buscando entregar o melhor para atingir seus objetivos: entrega do software e manter ele no “ar”.
Com a cultura do DevOps, ocorre uma ruptura nessas barreiras e a busca incessante pelo culpado, termina.
Os muros são quebrados e pontes são construídas através de uma mudança de comportamento e mentalidade com o propósito de identificar as falhas, corrigir e entregar o mais rápido possível.
O foco do DevOps é viabilizar a entrega contínua, manter a qualidade e a excelência, responder a necessidade de negócio mais rápido e aumentar a resiliência através de feeedbacks contínuos.
Existe alguns pilares que são essenciais para o sucesso do DevOps que funcionam como engrenagens, ou seja, sem uma delas, sem sucesso. São conhecidos como C.A.L.M.S.:
Pilares do DevOps
Culture: Voltada para a responsabilidade compartilhada e colaboração entre os times. É necessário uma mudança de mindset para que haja a colaboração mútua independente da área. O foco está nas pessoas, estar aberto as experimentações, criar pontes entre dev e ops.
Automation: Quanto mais automatizado for os processo melhor. É imprescindível ter entregas pequenas e constantes, integração contínua, infraestrutura como código, pipeline como código e a orquestração disso tudo.
Lean: O foco é a melhoria contínua no desempenho dos processos, valor, custos e agregar valor ao cliente. Tendo como premissas diminuir as burocracias dos processos, eliminar desperdícios, fazer o simples e
trabalhar com produção puxada ao invés da produção empurrada, ou seja, fazer o necessário.
Measurement: Tudo o que for possível é de suma importância que seja medido e acompanhado com a finalidade de melhorar o direcionamento das equipes, além de apresentar melhorias, monitorar e controlar as ações.
Sharing: O compartilhamento de informações, conhecimento, exposição de fracassos e sucessos , feedbacks constantes, é uma parte importante para melhorar o fluxo de comunicação e fortalecer o trabalho em equipe e o sucesso do DevOps. Assim temos áreas mais integradas e sincronizadas.
O ciclo de vida do DevOps está divido em 5 fases bem estabelecidas e cada um com sua função.
Ciclo de vida DevOps
Desenvolvimento: Abrange desde o planejamento das atividades até o desenvolvimento da solução em si.
Teste contínuo: O software que está sendo desenvolvido precisa ser testado continuamente para identificar falhas e bugs no sistema antes do fim do desenvolvimento.
Integração contínua: Trata-se da integração contínua entre o time de desenvolvimento e de operações. Inclui também a integração contínua do código modificado ao código fonte e aos testes.
Implantação contínua: Trata-se da validação do código desenvolvido e implementação dele junto ao produto final desenvolvido.
Monitoramento: É o monitoramento contínuo do desempenho da implementação, devendo ser monitorado as ferramentas utilizadas, qualidade das entregas e até mesmo os próprios times.
Como você pôde perceber, o DevOps tem muitas vantagens.
Temos uma infraestrutura mais eficiente e rápida, equipes mais organizadas e se comunicando melhor, fazendo mais em menos tempo com menos gente, ambientes padronizados mais rápidos e seguros o que resulta em entregas rápidas, além de estarem totalmente integrados, ambas equipes desenvolvimento e operações participam de todo o ciclo de desenvolvimento do software do início ao fim. Para a empresa, temos menos conflitos entre as equipes, diminuição de riscos, custos e aumento do valor do negócio.
Acelerando as entregas e levando os clientes a alcançar seus objetivos mais rápido, o DevOps se tornou o motor para a transformação digital para que as empresas alcancem um maior diferencial competitivo no mercado. Que tal começar agora mesmo a trilhar esse caminho?