DevOps

04/08/2019

Última atualização: 31/10/2022

O que é DevOps? Quebre a barreira entre desenvolvimento e operações

O que é DevOps? Quebre a barreira entre desenvolvimento e operações

O que é DevOps?

O DevOps é um conjunto de práticas que automatiza os processos entre as equipes de desenvolvimento de software e de TI para que possam criar, testar e liberar software de maneira mais rápida e confiável. O conceito de DevOps é fundado na construção de uma cultura de colaboração entre equipes que historicamente funcionavam em silos relativos. Os benefícios prometidos incluem maior confiança, lançamentos de software mais rápidos, capacidade de resolver problemas críticos rapidamente e gerenciar melhor o trabalho não planejado.

Na sua essência, o DevOps é uma cultura, um movimento, uma filosofia. É um aperto de mão entre desenvolvimento e operações que enfatiza uma mudança de mentalidade, melhor colaboração e integração mais rígida. Une entrega ágil e contínua para ajudar as equipes de desenvolvimento e operações a serem mais eficientes, inovadoras e fornecerem maior valor a empresas e clientes.

Como surgiu o DevOps?

O movimento DevOps começou entre 2007 e 2008, quando as operações de TI e as comunidades de desenvolvimento de software se manifestaram sobre o que consideravam um nível fatal de disfunção no setor. Eles protestaram contra o modelo tradicional de desenvolvimento de software, que exigia que aqueles que escrevessem o código fossem organizacionais e funcionalmente separados daqueles que implantam e suportam esse código.

Desenvolvedores e profissionais de TI/Ops tinham objetivos separados (e frequentemente concorrentes), liderança de departamento separada, indicadores-chave separados de desempenho pelos quais eram julgados e, muitas vezes, trabalhavam em andares separados ou até mesmo em edifícios separados. O resultado foi equipes isoladas, preocupadas apenas com seus próprios feudos, longas horas, lançamentos mal feitos e clientes insatisfeitos.

Certamente há um jeito melhor, eles disseram. Então as duas comunidades se juntaram e começaram a conversar - com pessoas como Patrick Dubois, Gene Kim e John Willis dirigindo a conversa. O que começou em fóruns online e encontros locais é agora um tema importante no zeitgeist de software. Você e sua equipe sentiram a dor causada por equipes isoladas e linhas de comunicação quebradas em sua empresa.

O DevOps não é mágico e as transformações não acontecem da noite para o dia. A boa notícia é que você não precisa esperar que a alta gerência lance uma iniciativa em larga escala. Entendendo o valor do DevOps e fazendo pequenas mudanças incrementais, sua equipe pode embarcar na jornada de DevOps imediatamente. Vamos analisar cada um desses benefícios em detalhes.

Quais os benefícios do DevOps?

Colaboração e Confiança

Construir uma cultura de responsabilidade compartilhada, transparência e feedback mais rápido é a base de toda equipe de DevOps de alto desempenho.

As equipes que trabalham em silos geralmente não aderem ao 'pensamento sistêmico' do DevOps. 'Sistema pensado' é estar ciente de como suas ações não afetam apenas sua equipe, mas todas as outras equipes envolvidas no processo de lançamento. Falta de visibilidade e objetivos compartilhados significam falta de planejamento de dependências, prioridades desalinhadas, apontamento de dedos e mentalidade de "não é nosso problema", resultando em velocidade mais lenta e qualidade abaixo do padrão. DevOps é essa mudança de mentalidade de olhar para o processo de desenvolvimento de forma holística e quebrar a barreira entre Dev e Ops.

Lance mais rápido e trabalhe de maneira mais inteligente

A velocidade é tudo. Equipes que praticam DevOps lançam com mais frequência, com maior qualidade e estabilidade.

A falta de ciclos automatizados de teste e revisão bloqueiam a liberação para a produção e o tempo de resposta a incidentes insatisfatório mata a velocidade e a confiança da equipe. Ferramentas e processos diferentes aumentam o OPEX, levam à mudança de contexto e diminuem a dinâmica. Por meio de ferramentas e processos de automação e padronização, as equipes podem aumentar a produtividade e lançar com mais frequência.

Acelere o tempo para a resolução

A equipe com o feedback mais rápido é a equipe que prospera. Transparência total e comunicação perfeita permitem que as equipes de DevOps minimizem o tempo de inatividade e resolvam os problemas mais rapidamente do que nunca.

Se os problemas críticos não forem resolvidos rapidamente, a satisfação dos clientes estanca. Questões importantes escapam pelas rachaduras na ausência de comunicação aberta, resultando em maior tensão e frustração entre as equipes. A comunicação aberta ajuda as equipes de Desenvolvimento e Operações a lidar com problemas, corrigir incidentes e desbloquear o fluxo de lançamento mais rapidamente.

Gerencie melhor o trabalho não planejado

O trabalho não planejado é uma realidade que toda equipe enfrenta - uma realidade que, na maioria das vezes, afeta a produtividade da equipe. Com processos estabelecidos e priorização clara, as equipes de desenvolvimento e operações podem gerenciar melhor o trabalho não planejado enquanto continuam a se concentrar no trabalho planejado.

Como funciona o framework CALMS do DevOps?

Culture (cultura)

Se pudéssemos resumir a cultura de DevOps em uma palavra, seria "colaboração". Toda ferramenta e automação no mundo são inúteis se não forem acompanhados por um desejo genuíno por parte dos profissionais de desenvolvimento e de TI de trabalhar juntos. O DevOps não resolve problemas de ferramentas, resolve problemas humanos.

Pense no DevOps muito parecido com o ágil, mas com as operações incluídas. Formar equipes orientadas a projetos ou produtos para substituir equipes baseadas em funções é um passo na direção certa. Inclua desenvolvimento, controle de qualidade, gerenciamento de produtos, design, operações, gerenciamento de projetos e qualquer outro conjunto de habilidades que o projeto exigir.

Automação (automation)

Investir em automação elimina trabalho manual repetitivo, produz processos repetíveis e cria sistemas confiáveis. A automação de criação, teste, implantação e provisionamento são pontos de partida típicos para equipes que ainda não estão no local. Que melhor razão para desenvolvedores, testadores e operadores trabalharem juntos do que construir sistemas para beneficiar a todos?

Equipes novas para automação geralmente começam com uma entrega contínua: a prática de executar cada código é alterada por meio de testes automatizados, geralmente facilitados pela infraestrutura baseada em nuvem, e depois desenvolvem compilações bem-sucedidas e promovem a produção usando implantações automatizadas. A entrega contínua não é uma tarefa rápida e fácil de configurar, mas o retorno sobre o investimento vale a pena.

Outra das principais contribuições do DevOps é a ideia de “configuração como código”. Os desenvolvedores se esforçam para criar aplicativos modulares e compostos, porque eles são mais confiáveis ​​e sustentáveis. Esse mesmo raciocínio pode ser estendido à infraestrutura que os hospeda, seja na nuvem ou na própria rede da empresa.

Lean

Quando ouvimos “lean” no contexto de software, geralmente pensamos em eliminar atividades de baixo valor e em nos mover rapidamente. Ainda mais relevante para o DevOps são os conceitos de melhoria contínua e adoção de falhas. Uma mentalidade do DevOps vê oportunidades de melhoria contínua em todos os lugares.

Temos um desenvolvimento ágil para agradecer por fazer da melhoria contínua uma ideia comum. Os primeiros adeptos da metodologia ágil provaram que um produto simples nas mãos dos clientes hoje é mais valioso do que um produto perfeito nas mãos dos clientes daqui a seis meses. Se o produto for aprimorado continuamente, os clientes ficarão por perto.

O fracasso é inevitável e você pode também preparar sua equipe para absorver, recuperar e aprender com ela. E no contexto do DevOps, o fracasso não é uma ofensa punível. As equipes supõem que as coisas estão fadadas a ter forma em algum momento, então elas são construídas para rápida detecção e rápida recuperação. Post-mortem enfocam onde os processos caíram e como fortalecê-los - não em qual membro da equipe preparou o código. A melhoria contínua e o fracasso andam de mãos dadas.

Medição (measurement)

É difícil provar que seus esforços de melhoria contínua estão realmente melhorando tudo sem dados. Felizmente, existem muitas ferramentas e tecnologias para medir o desempenho, como quanto tempo os usuários gastam em seu produto ou com que frequência os alertas críticos aparecem nos seus registros.

Embora você possa medir praticamente qualquer coisa, isso não significa que você precisa (ou deve) medir tudo. Comece com o básico:

Com uma base sólida, é mais fácil capturar métricas mais sofisticadas sobre uso de recursos, jornadas de clientes e contratos de nível de serviço (SLAs). As informações que você recebe são úteis quando é hora de fazer o mapeamento de caminhos e especificar sua próxima grande jogada.

Compartilhando (sharing)

O atrito de longa data entre as equipes de desenvolvimento e operações é em grande parte devido à falta de um terreno comum. Compartilhar responsabilidade e sucesso será um longo caminho para superar essa divisão. O DevOps é grande na ideia de que as mesmas pessoas que criam um aplicativo devem estar envolvidas no envio e na execução dele.

Isso não significa que você contrata desenvolvedores e simplesmente espera que eles também sejam excelentes operadores. Isso significa que os desenvolvedores e operadores se combinam em cada fase do ciclo de vida do aplicativo.

Blogs relacionados