A metodologia DevOps tem movimentado a TI desde 2008, quando Patrick Debois, um administrador de sistemas e gerente de projetos norte-americano, propôs métodos que solucionassem a eterna discussão entre as áreas de desenvolvimento e operações de TI.
De lá para cá, o DevOps lançou milhares, senão milhões, de discussões, artigos e conferências. Mas será que essa se tornou apenas uma palavra da moda ou há substância real por trás da metodologia?
Em 2009, quando o DevOps foi popularizado pela primeira vez, o novo movimento se propôs a oferecer uma cultura de abertura, inovação e transparência, o que levaria a uma maior implantação de código e produtos de maior qualidade. Muitas dessas teorias foram baseadas no Agile Manifesto, que incentivou a colaboração, bem como a implantação e teste frequentes de código.
O DevOps levou isso para o próximo nível, combinando as funções dos profissionais de desenvolvimento e operações, a fim de aumentar a agilidade e a responsabilidade entre as equipes. Agora, ambas equipes compartilham a responsabilidade de produzir código funcional e de qualidade, e precisam trabalhar juntas para alcançar esses objetivos comuns.
No entanto, em cerca de 11 anos desde sua popularização, a metodologia DevOps tomou diversas formas e foi influenciada por diferentes culturas organizacionais. O que, então, é mito ou verdade sobre ela? Para te ajudar, abaixo desvendamos os principais mistérios e fatos que circulam sobre o DevOps!
Antes de começar, o que é DevOps?
Antes de analisarmos os mitos e verdades sobre a metodologia DevOps, precisaremos definir o que realmente ela é. Como já adiantamos, o DevOps tem o compromisso de alinhar o desenvolvimento e as operações em direção a um conjunto comum de metas. Geralmente, para uma organização DevOps, esse objetivo é ter entrega de software antecipada e contínua.
O DevOps é baseado no Desenvolvimento Ágil. Embora cada uma das metodologias ágeis seja única em sua abordagem específica, todas compartilham uma visão e valores fundamentais comuns (consulte o Manifesto Ágil).
No começo, as equipes ágeis eram compostas principalmente de desenvolvedores. À medida que essas equipes ágeis se tornaram mais eficazes e eficientes na produção de software, ficou claro que ter Garantia de Qualidade (QA) e Dev como equipes separadas era ineficiente.
O Agile cresceu para abranger o controle de qualidade, a fim de aumentar a velocidade da entrega de software, e agora o Agile está crescendo novamente para abranger os membros de entrega e suporte, a fim de estender a agilidade da concepção à entrega.
Os ideais do DevOps ampliam as práticas de Desenvolvimento Ágil, simplificando ainda mais o movimento das alterações de software nos estágios de construção, validação e implantação e entrega, enquanto capacita as equipes multifuncionais com a propriedade total dos aplicativos de software — do design ao suporte de produção.
O DevOps é uma mentalidade de TI que incentiva a comunicação, colaboração, integração e automação entre desenvolvedores de software e operações de TI, a fim de melhorar a velocidade e a qualidade do fornecimento de software.
O foco principal das ferramentas e metodologias do DevOps é construir uma cultura de colaboração entre equipes, em vez de fazê-las trabalhar em silos. O objetivo é automatizar processos entre profissionais de desenvolvimento e operações, para ajudar as organizações a criar, testar, liberar e melhorar rapidamente serviços que não são apenas mais confiáveis, mas também de qualidade otimizada.
As 5 principais verdades do DevOps
Uma implementação significativa do DevOps é uma junção de ações e princípios. Se houver apenas uma verdade importante que você tira deste artigo, é que o DevOps está em constante evolução.
As pessoas precisam estar dispostas a aprender continuamente, desenvolver novos processos e ferramentas e ajustar suas equipes à medida que novas informações surgem, levando-nos à nossa primeira verdade sobre o DevOps:
Desejo de melhorar continuamente
As equipes de DevOps devem sempre se concentrar em experimentação e aprimoramento constantes. Há um grande número de áreas a serem aprimoradas em todo o ciclo de vida de entrega de software (SDLC). Desenvolvedores de software, profissionais de TI, engenheiros de controle de qualidade e equipes de suporte a operações têm interesse em um SDLC aprimorado. Do planejamento à implantação, incluindo manutenção, sempre há onde melhorar.
Tanto o Continuous Improvement (CI) / Continuous Deployment (CD) quanto o gerenciamento de incidentes ficam mais fáceis à medida que você itera e aprimora processos, ferramentas e fluxos de trabalho.
Desde que todos na equipe permaneçam abertos a novas ideias, manifestem interesse em aprender novas linguagens de programação, experimentem diferentes técnicas de controle de qualidade ou estejam dispostos a alterar as estruturas da equipe, seu time continuará melhorando. O DevOps tem tudo a ver com aprender muito, aplicar esses aprendizados rapidamente e iterar continuamente.
Colabore melhor e com mais frequência
A colaboração é um grande componente do DevOps. A colaboração é útil em qualquer capacidade, seja sobre a manutenção de um pipeline de CI / CD ou em referência à aceleração da resposta e correção de incidentes.
As equipes multifuncionais precisam ter uma comunicação profunda antes, durante e após o lançamento ou incidente de um recurso. As equipes bem-sucedidas de DevOps melhorarão a colaboração por meio de ferramentas de comunicação em tempo real, relatórios aprofundados de revisão pós-incidente e visibilidade das informações de monitoramento, alerta e entrega de software.
O DevOps precisa de apoio e apoio organizacional
Para implementar efetivamente o DevOps em sua empresa, você precisa obter apoio da liderança. O DevOps é normalmente implementado para desenvolvedores e equipes de operações de TI, mas muitas das verdades do DevOps podem ser aplicadas em equipes de vendas, marketing e suporte a operações.
Quando as equipes aderem aos princípios do DevOps e você obtém suporte da liderança, as equipes multifuncionais colaboram melhor e você pode obter o apoio financeiro e pessoal necessário para o sucesso dos negócios. O DevOps não pode ser um interesse em silos isolados, ele precisa ser aplicado em equipes.
Automação, Automação, Automação
Qualquer coisa, desde a automação de alertas de TI até a entrega automatizada de software, precisa aumentar a eficiência e facilitar o fluxo de trabalho humano. A automação pode ser aplicada em praticamente qualquer estágio do SDLC. A chave para uma automação eficaz é encontrar pontos problemáticos no processo de gerenciamento de incidentes ou de entrega de software.
Depois de identificar os pontos problemáticos do gerenciamento de incidentes ou SDLC, você pode se concentrar em áreas nas quais é possível automatizar implantações, cargas úteis de alerta, roteamento de alertas, rotações de plantão ou políticas de escalação. Mas, no final, a automação sempre precisa ser confiável e melhorar a qualidade de vida de seu pessoal.
Responsabilidade, propriedade do código e transparência
Antes de o termo DevOps ser oficialmente cunhado, muitas equipes passaram tarefas e projetos de pessoa para pessoa em todo o SDLC. Isso significava que os gerentes de produto, desenvolvedores de front-end, engenheiros de plataforma, profissionais de TI, engenheiros de controle de qualidade etc. ficaram isolados em suas tarefas específicas no ciclo de vida da entrega e tinham pouco entendimento de qualquer outra coisa.
Uma equipe de DevOps envolverá todas as pessoas necessárias, em todas as etapas de um projeto, do planejamento à implantação. Isso cria transparência em todas as etapas do SDLC. À medida que você trabalha em equipes menores e colaborativas de DevOps, todos tomam posse do código que escrevem.
Enquanto trabalham de forma multifuncional, os engenheiros podem ver como o código que eles escrevem se encaixa em todo o sistema. Então, quando os engenheiros têm a responsabilidade de ajudar a manter o código que escrevem, sentem-se mais inclinados a se concentrar na confiabilidade geral dos serviços que constroem.
As equipes de DevOps que assumem a responsabilidade pelo desenvolvimento e manutenção e obtêm uma compreensão mais profunda do sistema, incorporando confiabilidade em tudo o que constroem.
Os 5 principais mitos do DevOps
Agora que abordamos várias verdades do DevOps, vamos abordar os mitos ou equívocos comuns sobre a metodologia:
DevOps é uma implementação de um processo ou ferramenta
O DevOps não é uma ferramenta, não é um processo. DevOps é uma crença — é a crença na ideia de que colaboração, experimentação e melhoria contínua impulsionam o sucesso. Não há ferramenta ou processo singular que faça da sua equipe uma equipe de DevOps. Cada equipe é estruturada de maneira diferente e não existe uma abordagem única para a construção rápida de software confiável. O entendimento e a implementação de uma pessoa dos principais valores do DevOps é a única ferramenta que pode criar uma cultura DevOps.
Todo mundo precisa ser administrador e desenvolvedor de sistemas
Há um equívoco comum no DevOps de que todas as pessoas da equipe precisam atuar como desenvolvedor e profissional de TI. Nenhuma pessoa sozinha pode fazer tudo. Essa ideia de que todos precisam ser capazes de codificar não é precisa, especialmente na era dos aplicativos baseados em nuvem.
Mas a equipe como um todo precisa ter essa experiência. Mesmo se você estiver executando aplicativos baseados em nuvem, ter experiência em administração de sistemas na equipe pode ajudá-lo a lidar com quaisquer problemas que possam surgir com sua infraestrutura.
A experiência diversificada em sua equipe de DevOps pode ajudá-lo a configurar ferramentas de monitoramento, backups, runbooks e políticas de segurança adequados. Em uma equipe de DevOps, administradores de sistemas podem colaborar facilmente com os desenvolvedores para identificar possíveis problemas no código ou na infraestrutura.
Com o tempo, todos na equipe se tornam mais informados sobre como escrever código e manter a infraestrutura. Com essa diversidade de conjuntos de habilidades colaborativas integradas em uma equipe de DevOps, o gerenciamento de incidentes e a entrega de software tornam-se repentinamente muito mais rápidos — alimentando um pipeline confiável de CI / CD.
O DevOps é uma função específica
Algumas organizações têm engenheiros com títulos como “engenheiro de DevOps”. Mas o DevOps não é uma função específica. Semelhante ao ponto anterior, você não pode esperar que todas as pessoas tenham profundo conhecimento em todas as áreas do SDLC.
Os desenvolvedores e engenheiros de TI de uma equipe de DevOps precisam ter uma ampla variedade de conhecimentos, mas também são altamente qualificados em algumas áreas específicas. Ao criar pequenas equipes de pessoas com habilidades complementares, você pode cultivar uma cultura de confiabilidade e colaboração no SDLC.
DevOps é apenas para organizações menores
É um equívoco pensar que o DevOps é mais difícil de implementar em organizações empresariais maiores. Por alguma razão, as pessoas acreditam que a metodologia não pode ser aplicada ou que é ineficaz em empresas grandes. Porém, organizações grandes e pequenas sempre podem encontrar maneiras inovadoras e exclusivas de adotar o DevOps.
Toda empresa cresce de maneira diferente e a estrutura organizacional muda. A identificação de pontos fracos nos fluxos de trabalho e processos podem ajudar você a começar a abordar como o DevOps deve ser implementado em sua equipe. Para um ótimo exemplo de DevOps sendo usado em uma organização maior, confira o Squad Framework do Spotify.
Há um processo específico para DevOps
Como em muitos outros mitos do DevOps, não existe um processo único para a implementação da metodologia. Existem tantas variáveis ao implementar ferramentas, formar equipes e estabelecer processos que você não pode atribuir uma única maneira de fazê-lo.
Qualquer que seja o processo que você determine para cultivar o DevOps, verifique se ele se concentra na melhoria contínua, colaboração, responsabilidade e automação.
Gostou de aprender os mitos e verdades sobre a metodologia DevOps? Assine nossa newsletter para receber muito mais conteúdos como esse diretamente no seu e-mail!