O que é DevOps?

Friday, October 13, 2017

Em muitos casos o termo DevOps é atribuído à um cargo, um departamento ou a uma ferramenta. DevOps é na verdade um conjunto de práticas que integram os processos de desenvolvimento, abstraindo as atividades operacionais, ganhando em agilidade e confiabilidade do ambiente.

É comum, ao interpretar a definição acima, acreditar que DevOps se resume em ferramentas e processos. O DevOps gira em torno de uma cultura de colaboração e comunicação constante entre times que, historicamente, sempre trabalharam separados e com objetivos opostos. Enquanto o time de desenvolvimento precisa entregar novas funcionalidades o mais rapidamente possível, o time de operações tem a obrigação de manter todo o ambiente estável. Estes dois objetivos são conflitantes, pois uma vez que o ambiente está estável, qualquer alteração nele causa um risco de desestabilizá-lo.

Este conflito de interesses se agravou com o avanço da adoção dos métodos ágeis de desenvolvimento, onde times de desenvolvimento fazem deploy de novas funcionalidades no ambiente de produção até mesmo várias vezes ao dia. Sem um novo conceito de operação da infraestrutura e integração entre os times de Dev e SysOps seria inviável fazer vários deploys no ambiente de produção e ainda assim manter o ambiente estável.

Praticar DevOps somente é possível com uma mudança de mindset de todos os profissionais da empresa envolvidos de alguma forma na entrega do software. Isso vai desde o estagiário até o CEO da empresa. Todos devem ter um comprometimento com a colaboração, agilidade e estabilidade do software. Ainda mais por isso, as soft skills tornam-se tão necessárias para profissionais de alta performance. Habilidades como empatia e inteligência emocional são fundamentais para o trabalho em equipe no nível necessário para o DevOps.

Um ambiente saudável de desenvolvimento deve possuir um pipeline consistente, contemplando ambientes de desenvolvimento, homologação e de produção. Cada uma dessas etapas do pipeline habita em um ambiente de operação distinto, onde é possível cumprir, sem riscos, todas as atividades de testes de unidade, funcionais, integração e performance.

A forma encontrada por times de alta performance para que a operação da infraestrutura não se tornasse um gargalo foi abraçar a automação como sua principal aliada. Através da infraestrutura como código e ferramentas de orquestração foi possível empoderar os times de desenvolvimento para que tenham autonomia em construir e destruir seus ambientes de testes e homologação a qualquer momento, sem precisarem aguardar dias até que o time de operação construa manualmente os ambientes.

Quer dizer então que o DevOps veio para matar os times de operações? De forma alguma, pois a operação ainda possui um papel fundamental em manter o ambiente estável, só que agora atuando de forma diferente. O foco agora é em construir ferramentas para automatizar o processo de CI/CD da empresa e entregar essas ferramentas para o time de Dev operar. Essa mudança no perfil de atividade implica em uma mudança no perfil de habilidades que o profissional deve possuir. Infraestrutura como código e ferramentas de automação de infraestrutura são conhecimentos que passaram a ser obrigatórios, além de familiaridade com linguagens de programação. Quem já trabalha com ferramentas como Ansible, Chef, Terraform e Vagrant percebe claramente essa mudança e entende que o time de operações deve estar mais vivo do que nunca. Afinal, exige uma boa dose de esforço e conhecimento multidisciplinar para automatizar um pipeline.

Se sua empresa deseja trabalhar com base no DevOps, primeiramente garanta que você tenha as pessoas certas no seu time, depois invista em uma cultura que preze pela colaboração e, somente depois disso, pense em ferramentas e processos.

ENDEREÇO

FALE CONOSCO

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form