O que é DevOps?
DevOps é a união de pessoas, processos e produtos para habilitar a entrega contínua de valor para nossos clientes. No entanto, o que isso significa exatamente? Vamos nos unir à equipe conforme Clara explica o que é o DevOps, o que não é e o que torna as organizações com desempenho de elite bem-sucedidas.
Clara convocou uma breve reunião com seus colegas. Todos compareceram, mas ninguém quer estar ali. Ela colocou uma caixa de donuts na mesa.
Clara: Olá, obrigada por virem. Eu queria falar mais sobre nosso mapa de fluxo de valor e como podemos tornar nossos processos mais eficientes.
O mapa de fluxo de valor de Clara ainda está no quadro de comunicações da reunião anterior:
Clara: Nosso mapa de fluxo de valor mostra os pontos em que perdemos eficiência ao proporcionar valor para nossos usuários finais. Assim como todos os outros, podemos melhorar, e podemos decidir quais áreas enfrentar primeiro.
Paulo: Isso nos mostra os pontos em que temos problemas, mas não o que fazer em relação a eles.
Clara: Certo, é um exercício que ajuda a nos colocar na direção certa. Quanto ao que fazer sobre nossos problemas, acho que o DevOps pode nos ajudar. Na minha última empresa, nossas taxas de implantação subiram muito, os tempos de entrega foram mais rápidos e as operações tiveram muito menos incidentes. Demorou algum tempo para chegarmos lá, mas valeu a pena. O DevOps não é uma solução rápida.
Pedro: Conheço alguém que acabou de conseguir um emprego como engenheiro de DevOps. Eu acho que é mais para os desenvolvedores. Parece você, Paulo.
Clara: DevOps não é um cargo.
Marina: Há algum programa de software que possamos obter que possa nos ajudar, ou um modelo? Talvez haja uma planilha do DevOps.
Clara: DevOps não é um software.
Paulo: É mais uma metodologia.
Clara: Não exatamente.
Paulo, Marina, Pedro: Então o que é?!
Clara: Aqui está a definição que gosto de usar:
O DevOps é a união de pessoas, processos e produtos para habilitar a entrega contínua de valor para nossos usuários finais.
Na verdade, Abel Wang, consultor de nuvem da Microsoft, tem um ótimo conjunto de vídeos com respostas rápidas para algumas de nossas perguntas. Vejamos como Abel define o DevOps:
Pergunte ao Abel
Nossa meta é fornecer aos nossos clientes jogos que eles adorarão. Fazemos isso trabalhando junto com um conjunto de práticas e ferramentas compartilhadas.
Marina: O que isso significa? Quais práticas compartilhadas? Quais ferramentas compartilhadas?
Clara: Aqui está o que quero dizer com práticas:
- Planejamento ágil: juntos, criaremos uma lista de pendências de trabalho que todos na equipe e no gerenciamento possam ver. Vamos priorizar os itens para sabermos no que precisamos trabalhar primeiro. A lista de pendências pode incluir históricos, bugs e outras informações que nos ajudam.
- Integração contínua (CI): automatizaremos a forma como construímos e testamos nosso código. Vamos executar isso sempre que um membro da equipe confirmar alterações no controle de versão.
- Entrega contínua (CD): a CD é como testamos, configuramos e implantamos de uma construção para um ambiente de controle de qualidade ou produção.
- Monitoramento: usaremos a telemetria para obter informações sobre padrões de uso e desempenho do aplicativo. Podemos usar essas informações para melhorar conforme fazemos a iteração.
Marina: Não sei sobre testes automatizados. Meus testes são manuais e os faço depois que o Paulo entrega o código para mim. Eu não tenho tempo para mudar como eu faço tudo.
Pedro: Não há a menor possibilidade de eu permitir que qualquer um de vocês faça a implantação na produção.
Paulo: Isso vai assustar o gerenciamento. Eles nunca pensam além do próximo lançamento e querem para ontem.
Clara: Eu sei o que você está dizendo sobre o gerenciamento. Eu reuni este material informativo sobre o que compõe uma equipe com desempenho de elite.
O que compõe uma equipe com desempenho de elite?
Este é o material informativo que Clara preparou. As informações são baseadas nos relatórios de pesquisa do DevOps e pesquisas realizadas com profissionais técnicos no mundo todo.
O DevOps ajuda as empresas a experimentar maneiras de aumentar a adoção e a satisfação do cliente. Isso pode levar a um melhor desempenho organizacional e muitas vezes à maior lucratividade e participação no mercado.
Ele usa métricas para criar quatro categorias pelas quais comparar as equipes com desempenho de elite com as com baixo desempenho.
Equipes com desempenho de elite:
Implantam com mais frequência
Na verdade, algumas equipes implantam até dezenas de vezes por dia.
Práticas como monitoramento, testes contínuos, gerenciamento de alterações de banco de dados e integração de segurança anteriormente no processo de desenvolvimento de software ajudam os artistas de elite a implantar com mais frequência e com maior previsibilidade e segurança.
Reduzem o prazo de entrega da confirmação ("commit") à implantação
O prazo de entrega é o tempo necessário para um recurso chegar ao cliente. Ao trabalhar em lotes menores, automatizando processos manuais e implantando com mais frequência, as organizações com desempenho de elite podem realizar em horas ou dias o que antes levava semanas ou até mesmo meses.
Reduzem a taxa de falha de alteração
Um novo recurso que falha na produção ou faz com que outros recursos sejam interrompidos pode criar uma oportunidade perdida entre você e seus usuários. Conforme as equipes com alto desempenho amadurecem, elas reduzem sua taxa de falha de alteração ao longo do tempo.
Recuperam-se de incidentes mais rapidamente
Quando ocorrem incidentes, as organizações com desempenho de elite são capazes de se recupere mais rapidamente. Atuar nas métricas ajuda as equipes com desempenho de elite a se recuperar mais rápido enquanto também implantam com mais frequência.
Como você implementa a infraestrutura de nuvem também faz diferença. A nuvem aprimora o desempenho de entrega de software e as equipes que adotam as características de nuvem essenciais têm uma probabilidade maior de se tornarem equipes com desempenho de elite.
A terceirização pode representar uma economia financeira e fornecer um pool de trabalho flexível, mas você deve usá-la nas áreas corretas. Equipes de baixo desempenho têm uma probabilidade maior de terceirizar funções inteiras (como testes e operações) do que suas contrapartes de alto desempenho.
O resultado
O DevOps é um dos principais motivos pelos quais as equipes de desempenho de elite são capazes de agregar valor aos clientes na forma de novos recursos e aprimoramentos, mais rapidamente do que os concorrentes. Neste breve vídeo, Abel explica por que você deve saber mais sobre o DevOps:
Pergunte ao Abel
O que o DevOps não é
Ao considerar o que é DevOps, também é importante garantir que saibamos o que ele não é. DevOps não é:
- Uma metodologia.
- Um software específico.
- Uma solução rápida para os desafios de uma organização.
- Apenas uma equipe ou um cargo (embora esses títulos sejam razoavelmente comuns no setor).