Analise a integração contínua
A Integração Contínua é um dos oito recursos da taxonomia de DevOps.
Descubra por que a Integração Contínua é necessária
Em 23 de setembro de 1999, a Mars Climate Orbiter arrumou seus painéis solares para protegê-los de uma descida temporária para a atmosfera marciana superior.
Depois de ter entrado em órbita com sucesso, o satélite deveria transmitir fotos de Marte para a Terra por vários anos. Mas, infelizmente, a nave queimou na atmosfera marciana.
Um bug no software de controle de solo, que foi fornecido por um terceiro, calculou o valor em uma unidade imperial, libra-segundos. O software construído pela NASA esperava que o valor fosse em uma unidade métrica, newton-segundos. Como esses valores não foram convertidos corretamente, pequenas discrepâncias na posição da espaçonave foram agravadas ao longo de milhões de quilômetros.
A garantia de qualidade não havia notado o uso de uma unidade imperial em software externo, embora os padrões de codificação da NASA na época exigissem o uso de unidades métricas. Os cálculos também foram feitos manualmente em vez de usar o software fornecido, devido a erros de formato de arquivo e bugs diversos. Esta situação é um exemplo da necessidade de Integração Contínua.
Explore a integração contínua
A Integração Contínua é uma mentalidade e uma estratégia de equipa. Além disso, o autor e palestrante Martin Fowler diz que a Integração Contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho com frequência, geralmente cada pessoa integra pelo menos diariamente – levando a múltiplas integrações por dia.
Cada integração é verificada por uma compilação automatizada (incluindo teste) para detetar erros de integração o mais rápido possível.
Quando bem feita, esta abordagem conduz a problemas de integração reduzidos, apanhando-os numa fase mais precoce do processo.
Os objetivos da Integração Contínua são:
- Aproveite a colaboração
- Permitir o desenvolvimento paralelo
- Minimizar a dívida de integração
- Atuar como um ponto de controlo de qualidade
- Automatize tudo!
Nota
Note como os objetivos da Integração Contínua incluem Colaboração Contínua, Entrega Contínua e Qualidade Contínua!
Mas o que acontece quando não há Integração Contínua? A falta de esforços contínuos de integração pode muitas vezes resultar em:
- Longos ciclos de desenvolvimento
- Código não compilável
- A qualquer momento, o código-fonte pode não ser funcional
- Congelamento de código
- Altas falhas de compilação / Contagem de bugs
- Branches duradouros, resultando em fusões que levam vários dias
- Código ausente do controle do código-fonte
- Falhas de segurança encontradas no final do ciclo de desenvolvimento
- Grande montante de dívida técnica
- Números de cobertura de código baixos ou inexistentes
- Qualidade geral reduzida
- Comunicação e colaboração limitadas
- Código que não segue os padrões de codificação
- Nenhuma ou poucas revisões de código
- Testes feitos no final do ciclo de desenvolvimento
- Em muitos casos, manual, quando muito
Os pontos de integração são o ciclo de feedback rápido usado para melhorar o sistema. Quando o cronograma dos pontos de integração atrasa, o projeto está com problemas. Aqui está o que Dantar Oosterwal diz sobre eles no livro The Lean Machine:
A epifania dos pontos de integração é que eles controlam o desenvolvimento de produtos. São os pontos de alavancagem para melhorar o sistema. Quando o cronograma dos pontos de integração atrasa, o projeto está com problemas.
Dantar Oosterwal, A Máquina Enxuta
© Scaled Agile, Inc.
Se você se pergunta se sua equipe está realmente fazendo Integração Contínua, essas perguntas podem ajudá-lo a determinar a resposta.
- Todos os desenvolvedores estão fazendo desenvolvimento baseado em tronco?
- Cada alteração em um tronco inicia um processo de compilação?
- Quando a compilação e o teste falham, a equipe corrige a compilação em poucos minutos?
O desempenho também é influenciado pela presença ou ausência de Integração Contínua. Dados coletados e analisados para o livro The Science Of DevOps – Accelerate – Building and scaling high performance technology organizations por Nicole Forsgren, Jez Humble e Gene Kim mostram que quando a velocidade de entrada no mercado de pessoas de baixo desempenho aumenta, sua qualidade diminui.
Mas os profissionais de alto desempenho podem manter a qualidade enquanto aumentam a velocidade de entrada no mercado. Eles têm ciclos de implantação mais curtos (e menos complexos) e usam a Integração Contínua para corrigir problemas imediatamente, aumentando o fluxo e a eficiência.
| 2017 | Profissionais de alto desempenho | Pessoas de desempenho médio | Pessoas de baixo desempenho |
|---|---|---|---|
| Frequência de implantação | Várias vezes por dia | 1 semana - 1 mês | 1 semana - 1 mês |
| Prazo para a mudança | < 1 hora | 1 semana - 1 mês | 1 semana - 1 mês |
| MTTR | < 1 hora | < 1 dia | 1 dia - 1 semana |
| Taxa de falhas nas alterações | 0-15% | 0-15% | 31-45% |