Princípios e práticas recomendadas do DevOps
Seis princípios do DevOps para fluxos de trabalho mais eficientes
Várias práticas importantes de DevOps podem ajudar você a acelerar a produção enquanto reduz crises. Aprenda como a implementação das automações certas e o acompanhamento dos KPIs mais relevantes vão ajudar você a preparar seu estúdio para o sucesso.
Eliminar crises e heroísmo não se trata apenas de eficiência fria e crua (embora aumente a produtividade). Trata-se também de criar uma cultura de trabalho positiva e sustentável, em que as equipes possam florescer e produzir seu melhor trabalho. Em uma cultura colaborativa, os funcionários se sentem mais confiantes, as ideias são compartilhadas mais amplamente e há um maior senso de união e responsabilidade. Tudo isso tem um impacto positivo na produção do produto e no resultado final.
Para construir um ambiente colaborativo, incentive a sinceridade, a transparência e o feedback (positivo e negativo), enfatizando que não existem ideias ruins. Implemente sistemas que permitam a polinização cruzada de trabalho entre as equipes e reconheça publicamente os indivíduos e as equipes por seus sucessos. Ter as ferramentas certas, como um sistema de controle de versão que todos podem usar, também é essencial.
Em DevOps, o princípio de “shift left” se refere à reorganização das etapas em um fluxo de trabalho. Processos que normalmente acontecem mais à frente no pipeline de desenvolvimento são “deslocados para a esquerda”, para um estágio anterior, com o intuito de se alinhar com as práticas recomendadas do ciclo de vida de DevOps.
CI/CD é um exemplo de como o descolamento para a esquerda pode ajudar as equipes a trabalhar com maior agilidade. A integração contínua (CI) é o processo de mesclagem automática de trabalhos em um repositório central. As alterações são validadas criando uma build e executando testes automatizados na build.
A implantação contínua (CD) começa onde a CI termina, implantando lançamentos da build e realizando testes automatizados do sistema. Esse é um processo costuma ser feito manualmente, o que desacelera o pipeline. A implementação de CI/CD fornece uma maneira consistente e automatizada para criar, empacotar e testar seu software.
A eliminação de processos manuais que desperdiçam tempo e são vulneráveis a erros humanos é um princípio fundamental do DevOps. Testes automatizados e ferramentas de rastreamento de erros poupam as equipes do trabalho tedioso de caçar e eliminar bugs, ao mesmo tempo em que tornam esses processos mais eficientes em geral. Na verdade, o conjunto certo de ferramentas de monitoramento e de relatório de erros pode realmente ajudar você a virar o jogo com os bugs e usá-los a seu favor, transformando-os em sinalizadores que apontam para um código otimizado e, no final das contas, um produto melhor.
O teste automatizado é outro exemplo do princípio de “shift left” do DevOps. Em um fluxo de trabalho tradicional, uma build é colocada em execução e testada manualmente. Os fluxos de trabalho que incorporam testes automatizados podem monitorar erros antes que as alterações de código sejam liberadas para a build e também antes da produção. Quando os erros são sinalizados antes de irem ao ar, os programadores podem solucionar problemas em tempo real e minimizar as interrupções de serviço, como patches e hotfixes.
Para quantificar o desempenho do pipeline e encontrar oportunidades de otimização, você deve acompanhar vários indicadores-chave de desempenho (KPIs). Os quatro principais KPIs de DevOps são:
- Frequência de implantação: frequência com que o código é implantado para preparação, testes ou produção
- Tempo de processamento das alterações: tempo necessário para um commit entrar em produção
- Taxa de falha das alterações: porcentagem de implantações que interrompem a produção
- Tempo médio para reparo (MTTR): tempo médio para recuperação de falhas do produto ou do sistema
Outros KPIs incluem:
- Tempo para implantação: tempo necessário para implantar o código em preparação, teste ou produção
- Tempo do ciclo de pull request: tempo gasto para escrever e implantar código
- Número de erros
- Tempo médio para detectar (MTTD): tempo médio até encontrar erros
Concentre-se em KPIs relevantes e acionáveis. Acompanhar muitos KPIs pode causar sobrecarga de informações e dados sem contexto, dificultando a otimização.
As equipes que implementam os princípios do DevOps podem se beneficiar das práticas do Agile, já que os dois são complementares, com os valores do Agile sendo fundamentais para uma colaboração eficaz de DevOps.
O DevOps se concentra no desenvolvimento iterativo em todo o processo de produção, desde a pré-produção até o lançamento, com atualizações enviadas de forma consistente até várias vezes por semana. O foco do Agile está mais na fase de produção e segue um modelo de sprint, com novas builds sendo lançadas em uma cadência mais prolongada, de semanas em semanas ou até mês a mês.
Os profissionais de DevOps podem se beneficiar da abordagem do Agile para o gerenciamento de projetos. Práticas do Agile como Kanban e Scrum garantem que os fluxos de trabalho estejam organizados. Há também um foco maior em processos e reuniões, com ferramentas usadas principalmente para acompanhamento de produtividade, cálculo de gráficos de burndown e organização do backlog.
No DevOps, um ciclo de feedback é quando uma entrada é transmitida para uma saída, recebida de volta e revisada, com o objetivo de melhorar um ou mais processos ou resultados.
Existem dois tipos de ciclos de feedback. Em um ciclo de feedback de reforço, uma atualização positiva de um processo beneficia outro processo relacionado, compondo o valor da atualização original. Isso às vezes é chamado de um “ciclo de mudança acelerada”. Já em um ciclo de feedback de equilíbrio, uma atualização positiva para um processo resulta em um resultado negativo para outro, colocando o valor da atualização original em questão. Em geral, deseja-se maximizar os ciclos de feedback de reforço e minimizar os ciclos de feedback de equilíbrio.
Quanto mais curtos forem os ciclos de feedback, mais fáceis eles serão de manter, monitorar e otimizar.
Leituras semelhantes
O gerenciamento de código-fonte (SCM) ajuda equipes a trabalharem rapidamente e colaborarem com eficiência. Aprenda tudo o que você precisa saber sobre ferramentas de controle de versão, quando usá-las e como funcionam.
A implementação de práticas de DevOps pode otimizar seu pipeline de desenvolvimento e deixar sua equipe e seus usuários mais felizes. Saiba mais sobre como o DevOps pode te ajudar.
O Agile e DevOps têm os mesmos objetivos: entregar valor ao cliente com cronogramas regulares de lançamento, mas diferem ligeiramente em sua abordagem. Veja como eles podem trabalhar juntos.
E-books sobre DevOps
Aprenda sobre as ferramentas de DevOps que todo estúdio de desenvolvimento de jogos deveria ter, e saiba mais sobre os estúdios que obtiveram sucesso com o portfólio de soluções da Unity.
Aprenda como as soluções automatizadas de DevOps para o gerenciamento de falhas e erros podem acelerar o desenvolvimento, minimizar custos e ajudar você a oferecer uma melhor experiência do usuário.
Como um estúdio cooperativo comandado pelos funcionários consegue alinhar artistas e engenheiros na produção? Leia como a KO_OP implementou o Plastic SCM da Unity como parte de sua metodologia de DevOps.
O controle de código-fonte do Unity foi projetado com mais do que apenas código em mente. Mantenha tudo gerenciado e o versionamento em dia com uma plataforma fácil de usar criada para programadores e artistas.