Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Scopri i vantaggi di un approccio basato su trunk
Uno degli aspetti che spesso rende necessario un hotfix è che, in un workflow legacy, lo stato dell'applicazione su cui stanno lavorando gli sviluppatori potrebbe contenere diverse funzionalità inedite che non sono ancora disponibili in produzione. L'ambiente di produzione e l'ambiente di sviluppo si sincronizzano solo quando si verifica un rilascio pianificato e quindi ricominciano immediatamente a divergere fino alla successiva versione pianificata.
La possibilità di disporre di rilasci pianificati all'interno di un CI/CD process. You can delay the release of code to production by using feature flags. However, a fully CI/CD processo completo consente una maggiore flessibilità rendendo superflui i rilasci pianificati. Dopotutto, continuo è una parola chiave in CI/CD e ciò suggerisce che le modifiche vengono rilasciate non appena sono pronte. Evitate di mantenere un ambiente di rilascio separato, quasi sempre non sincronizzato con gli ambienti di test precedenti.
Se una pipeline non è completamente CI/CD, la divergenza tra gli ambienti superiori e quelli inferiori di solito si verifica a livello di filiale. Gli sviluppatori lavorano in un ramo di sviluppo e gestiscono un ramo di rilascio separato che viene aggiornato solo quando è il momento di una versione pianificata. Man mano che il ramo di rilascio e il ramo di sviluppo divergono, possono sorgere altre complicazioni.
Oltre alla mancata sincronizzazione degli ambienti, man mano che gli sviluppatori lavorano nel ramo di sviluppo e si abituano a uno stato dell'applicazione molto più avanzato di quello in produzione, devono riadattarsi allo stato di produzione ogni volta che si verifica un problema. Lo stato del ramo di sviluppo potrebbe riguardare molte funzionalità prima della produzione. Quando gli sviluppatori lavorano ogni giorno in quel settore, è difficile ricordare cosa viene rilasciato e cosa non viene rilasciato alla produzione. Ciò aumenta il rischio che vengano introdotti nuovi bug durante il processo di correzione di altri bug. Il risultato è un ciclo apparentemente infinito di correzioni che allungano le tempistiche e ritardano il rilascio delle funzionalità per settimane, mesi o addirittura anni.