As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Descobrir os benefícios de uma abordagem baseada no trunk
Uma das coisas que geralmente torna necessário um hotfix é que, em um fluxo de trabalho legado, o estado da aplicação em que os desenvolvedores estão trabalhando pode conter vários recursos não lançados que ainda não estão em produção. O ambiente de produção e o de desenvolvimento só ficam sincronizados quando ocorre um lançamento programado e, em seguida, eles imediatamente começam a divergir novamente até o próximo lançamento programado.
É possível programar lançamentos dentro de um processo de CI/CD totalmente otimizado. Você pode atrasar a liberação do código para a produção usando sinalizadores de recursos. No entanto, um processo de CI/CD totalmente otimizado permite mais flexibilidade, tornando desnecessários os lançamentos programados. Afinal, contínuo é uma palavra-chave em CI/CD, e isso sugere que as mudanças são lançadas à medida que ficam prontas. Evite manter um ambiente de lançamento separado que esteja quase sempre fora de sincronia com os ambientes de teste inferiores.
Se um pipeline de CI/CD não for totalmente otimizado, a divergência entre os ambientes superior e inferior geralmente ocorrerá no nível da ramificação. Os desenvolvedores trabalham em uma ramificação de desenvolvimento e mantêm uma ramificação de lançamento separada, que é atualizada somente quando chega a hora de um lançamento programado. À medida que a ramificação de lançamento e a de desenvolvimento divergem, outras complicações podem surgir.
Além de os ambientes estarem fora de sincronia, à medida que os desenvolvedores trabalham na ramificação de desenvolvimento e se acostumam com um estado da aplicação muito à frente do que está em produção, eles precisam se reajustar ao estado de produção sempre que surge um problema. O estado da ramificação de desenvolvimento pode ter muitos recursos a mais do que o da produção. Quando os desenvolvedores trabalham nessa ramificação todos os dias, é difícil lembrar o que foi ou não liberado para produção. Isso aumenta o risco de que novos bugs sejam introduzidos durante o processo de correção de outros bugs. Esse resultado é um ciclo aparentemente interminável de correções que estendem os prazos e atrasam o lançamento de recursos por semanas, meses ou até anos.