Trabalhando no conceito de melhoria contínua aplicada ao processo de fabricação e entrega de softwares, conhecer os pilares do DevOps é fundamental para aspectos que podem influenciar decisivamente nessa questão.

O DevOps enfatiza a diminuição nos gaps existentes entre as equipes de trabalho, concentrando-se no aumento da capacidade de fornecer códigos e sistemas de maneira mais rápida, criando métricas de sucesso com base na frequência de lançamentos em vez de lidar apenas com KPIs ou outros parâmetros que podem até gerar conflitos de  interesse entre os diversos setores envolvidos.

Neste artigo, você poderá compreender melhor sobre a lógica de funcionamento da cultura DevOps e sobre suas bases. Continue sua leitura!

O conceito de DevOps

DevOps é um termo que agrupa uma série de conceitos que, embora não sejam todos novos, culminaram para a formação de um movimento. Eles estão se espalhando rapidamente por toda a comunidade técnica. Como qualquer ideia nova que se torna popular, as pessoas podem ter impressões confusas e às vezes contraditórias do que é. Seu conceito surge da união de duas grandes tendências relacionadas.

A primeira delas também foi chamada de “infraestrutura ágil”. Com ela, surgiu a aplicação de abordagens mais dinâmicas e enxutas para as operações de trabalho em TI. A segunda é uma compreensão muito mais ampla do valor da colaboração entre as equipes de desenvolvimento e de operações em todos os estágios do ciclo de vida de concepção e criação de um software.

Jez Humble, importante membro da comunidade global de TI, associado ao Google, propôs a seguinte definição sobre o que é o DevOps:

uma comunidade de prática interdisciplinar dedicada ao estudo da construção, evolução e operação de sistemas resilientes que mudam rapidamente em escala”.

DevOps está relacionado às práticas de engenheiros de operações e desenvolvedores que participam juntos em todo o ciclo de vida do serviço, desde o projeto, passando pelo processo de desenvolvimento, até o suporte de produção. É também caracterizado pela equipe de produção que utiliza muitas das mesmas técnicas correlacionadas.

“Dev” é usado como uma abreviação para designar os desenvolvedores em particular, mas, na prática, é ainda mais amplo e significa “todas as pessoas envolvidas no desenvolvimento do produto”, que podem incluir especificações, controle de qualidade e outros tipos de disciplinas.

“Ops” é um termo geral para engenheiros e administradores de sistemas, equipes de operações, engenheiros de lançamento, DBA’s, engenheiros de rede, profissionais de segurança e várias outras subdisciplinas e cargos.

O movimento DevOps é construído em torno de todo esse grupo de pessoas que acredita que a aplicação de uma combinação de tecnologia e atitudes apropriadas pode revolucionar o mundo da fabricação e entrega de softwares, em que o objetivo é melhorar o fluxo desde o desenvolvimento até as operações, trabalhando juntos e entendendo os desafios um do outro.

Ligação com outras metodologias

O DevOps tem fortes afinidades com as abordagens Agile e Lean. A visão antiga das operações tendeu para o lado “Dev” como sendo os criadores e o lado “Ops”, as “pessoas que lidam com implementação após a concepção”.

Dessa forma, o DevOps pode ser interpretado como uma consequência direta da aplicação das metodologias ágeis. O desenvolvimento ágil de software prescreve uma estreita colaboração de clientes, gerenciamento de produto, desenvolvedores para preencher as lacunas e rapidamente iterar para um produto melhor.

As bases do movimento DevOps

Os objetivos propostos pelo DevOps podem ser alcançados por meio da criação de um conjunto de práticas e padrões em torno de 4 pilares principais, a saber.

Comunicação

Para criar um software melhor e fazer lançamentos melhores, as equipes precisam se comunicar constantemente entre si, desde a fase de planejamento até a liberação. Dessa forma é possível resolver impedimentos e melhorar a qualidade do processo de liberação. A equipe precisa estar unida e alinhada a um mesmo objetivo. Os membros precisam conversar e aprender continuamente uns com os outros durante o processo. A comunicação é muitas vezes facilitada com o apoio de ferramentas como Slack, Trello etc.

Colaboração

A colaboração é fundamental para uma verdadeira abordagem de DevOps. Isso precisa ser buscado sempre da melhor maneira, permitindo que haja cooperação entre as equipes de desenvolvedores e operacionais. Assim, é possível alcançar um processo simplificado que facilita a integração entre eles.

O melhor entendimento da infraestrutura ajuda a preparar as pessoas para eventuais mudanças necessárias. Ao preparar e compreender esse processo, é possível aprender continuamente e aumentar as taxas de sucesso dos próximos lançamentos. Normalmente, as equipes de DevOps bem-sucedidas trabalham de maneira eficaz utilizando plataformas de colaboração para suporte como o Yammer, o SharePoint, dentre outras.

Automação

A automação é o coração de todo o processo de transformação de DevOps bem-sucedido. Ela é o principal facilitador dentro desse movimento. É preciso consolidar ambientes estáveis, desenvolvendo processos consistentes de criação, testes e lançamentos com êxito.

A automação pode ser usada para tornar o processo de lançamento mais determinístico e para preencher as lacunas entre concepção e produção. As equipes de desenvolvimento podem aprender com as operações. Juntos, são responsáveis por definir o estado desejado da infraestrutura e convertê-lo em código. Ferramentas como PowerShell DSC, Chef e Puppet podem ser usadas para automatizar quase tudo que a equipe precise.

Monitoramento

O monitoramento nas equipes de DevOps é necessário para fornecer informações cruciais, visando garantir o cumprimento de prazos do serviço e também que o desempenho esteja dentro do ideal planejado. É importante medir o progresso da abordagem para saber se as equipes estão melhorando ou progredindo.

Com o suporte de dados e métricas adequadas para compreender o funcionamento no dia a dia, é fácil para as equipes inspecionar a maneira atual de trabalhar e apresentar ideias ou processos para melhorar o sucesso dos lançamentos, que é o que realmente interessa dentro do movimento.

A medição dos recursos e processos atuais ajuda as equipes a determinar as áreas problemáticas e definir pontos de atenção que precisam ter recursos dedicados para fazer as alterações de rota.

Para entender melhor sobre os pilares do DevOps ou mesmo para conseguir implementá-la de forma satisfatória em sua empresa, você pode buscar por cursos ou consultorias que aumentem a suas possibilidades de sucesso. A Gaea é uma empresa com mais de 10 anos de mercado e que oferece diversas soluções que podem lhe ajudar nesse sentido.

Agora que você entendeu quais são os pilares do DevOps, convidamos você a acessar este guia completo sobre DevOps e a cultura do código!