Als een pijplijnuitvoering mislukt, kunt u terugdraaien gebruiken om uw omgeving terug te brengen naar een vorige stabiele status. Als u terugdraaien wilt gebruiken, plant u een terugdraaistroom en leert u hoe deze moet worden geïmplementeerd.

Een terugdraaistroom schrijft de vereiste stappen voor om een fout in de implementatie terug te draaien. De stroom neemt de vorm aan van een terugdraaipijplijn die een of meer opeenvolgende taken bevat die afhankelijk zijn van het implementatietype dat is uitgevoerd en mislukt. De implementatie en het terugdraaien van een traditionele applicatie is bijvoorbeeld anders dan de implementatie en het terugdraaien van een container-applicatie.

Om terug te keren naar een goede implementatiestaat, bevat een terugdraaipijplijn doorgaans taken voor het volgende:
  • Statussen of omgevingen opschonen.
  • Een door de gebruiker gespecificeerd script uitvoeren om de wijzigingen terug te draaien.
  • Een vorige revisie van een implementatie implementeren.

Om terugdraaifuncties toe te voegen aan een bestaande implementatiepijplijn, koppelt u de terugdraaipijplijn aan de taken of fasen in de implementatiepijplijn die u wilt terugdraaien voordat u uw implementatiepijplijn uitvoert.

Hoe configureer ik terugdraaien?

Als u terugdraaien in uw implementatie wilt configureren, moet u:

  • Een implementatiepijplijn maken.
  • Mogelijke foutpunten identificeren in de implementatiepijplijn die het terugdraaien activeren zodat u de terugdraaipijplijn kunt koppelen. U kunt bijvoorbeeld uw terugdraaipijplijn koppelen aan een voorwaarde of polling-taaktype in de implementatiepijplijn waarmee wordt gecontroleerd of een vorige taak met succes is voltooid. Zie Hoe gebruik ik variabelebindingen in een voorwaardetaak om een pijplijn uit te voeren of te stoppen in Code Stream? voor informatie over voorwaardetaken.
  • Bepaal het bereik van de fout die de terugdraaipijplijn activeert, zoals een taak- of fasefout. U kunt terugdraaien ook koppelen aan een fase.
  • Bepaal welke terugdraaitaak of -taken moeten worden uitgevoerd in geval van een fout. U maakt een terugdraaipijplijn met die taken.

U kunt handmatig een terugdraaipijplijn maken, of Code Stream kan er een voor u maken.

  • Als u een leeg canvas gebruikt, kunt u handmatig een terugdraaipijplijn maken die parallel loopt met een bestaande implementatiepijplijn. Vervolgens koppelt u de terugdraaipijplijn aan een of meer taken in de implementatiepijplijn die terugdraaiacties activeren bij een fout.
  • Met behulp van een slimme pijplijnsjabloon kunt u een implementatiepijplijn configureren met de terugdraaiactie. Vervolgens maakt Code Stream automatisch een of meer standaard terugdraaipijplijnen met vooraf gedefinieerde taken die de implementatie terugdraaien bij een fout.

Zie Hoe kan ik mijn implementatie terugdraaien in Code Stream? voor een gedetailleerd voorbeeld van hoe u een CD-pijplijn kunt configureren met terugdraaien met behulp van een slimme pijplijnsjabloon.

Wat gebeurt er als mijn implementatiepijplijn meerdere taken of fasen met terugdraaifunctie heeft

Als u meerdere taken of taken en fasen met terugdraaifunctie heeft toegevoegd, dan moet u er rekening mee houden dat de terugdraaisequentie varieert.
Tabel 1. Terugdraaivolgorde bepalen
Als u terugdraaien toevoegt aan… Wanneer wordt er teruggedraaid…
Parallelle taken Als een van de parallelle taken mislukt, wordt deze taak teruggedraaid nadat alle parallelle taken zijn voltooid of zijn mislukt. Er wordt niet onmiddellijk teruggedraaid nadat de taak is mislukt.
Zowel de taak in een fase als de fase Als een taak mislukt, wordt het terugdraaien van de taak uitgevoerd. Als de taak deel uitmaakt van een groep parallelle taken, wordt de taak teruggedraaid nadat alle parallelle taken zijn voltooid of zijn mislukt. Nadat het terugdraaien van de taak is voltooid of niet is voltooid, wordt het terugdraaien van de fase uitgevoerd.

Overweeg een pijpleiding met de volgende onderdelen:

  • Een productiefase met terugdraaifunctie.
  • Een groep parallelle taken, elke taak met een eigen terugdraaifunctie.

De taak met de naam UPD Deploy US heeft de terugdraaipijplijn RB_Deploy_US. Als UPD Deploy US mislukt, volgt het terugdraaien de stroom die is gedefinieerd in de RB_Deploy_US-pijplijn.

In een pijplijnfase die parallelle taken heeft, wordt op het tabblad Terugdraaien de terugdraaipijplijn weergegeven die wordt gebruikt als de taak mislukt.

Als UPD Deploy US mislukt, wordt de RB_Deploy_US-pijplijn uitgevoerd nadat UPD Deploy UK en UPD Deploy AU ook zijn voltooid of mislukt. Er wordt niet onmiddellijk teruggedraaid nadat UPD Deploy US is mislukt. En omdat de productiefase ook een terugdraaifunctie heeft, wordt de terugdraaipijplijn voor de fase uitgevoerd nadat de RB_Deploy_US-pijplijn is uitgevoerd.