De implementatiepijplijn ontwerpen

Voltooid

In deze les ontwerpt u een CI/CD-pijplijn ter ondersteuning van de behoeften van uw project. U wilt dat de Contoso Video-website wordt gepubliceerd in Azure Kubernetes Service (AKS) na elke geslaagde push naar de hoofdbranch die is gelabeld voor release naar productie. Met het tagontwerp kunt u eenvoudig de versie controleren van elke implementatie die naar productie gaat.

U wilt de website ook implementeren in een faseringsomgeving voor testen na elke push naar de hoofdvertakking, ongeacht of de push is gelabeld voor release naar productie. U kunt tags gebruiken voor het routeren van verschillende containerinstallatiekopieën wanneer u ze naar Azure Container Registry pusht.

De pijplijn ontwerpen

Als u de pijplijn wilt ontwerpen, moet u rekening houden met de taken en triggers.

Triggers

Uw pijplijn moet worden geactiveerd op twee verschillende gebeurtenissen:

  • Een getagde push naar de hoofdbranch.
  • Een niet-gemarkeerde push naar de hoofdbranch.

U splitst de twee gebeurtenissen op in twee afzonderlijke triggers, omdat de acties voor een getagde push verschillen van de acties voor een niet-gemarkeerde push. Een gelabelde push wordt geïmplementeerd in productie, terwijl een niet-gemarkeerde push wordt geïmplementeerd in de faseringsomgeving. In het volgende diagram ziet u de twee triggers voor de pijplijn:

Diagram that shows two types of pipeline triggers.

Nadat u de triggers hebt gedefinieerd, plant u de pijplijnstroom zelf.

Stap 1: De opslagplaats klonen

De eerste stappen zijn de buildstappen, waarbij u een configuratie voorbereidt en de installatiekopieën bouwt voordat u deze naar het AKS-cluster pusht. In de buildstappen stelt u alle informatie in die nodig is voor de implementatiestap. In dit geval is de eerste buildstap na ontvangst van het triggersignaal hetzelfde voor beide triggers om de opslagplaats te klonen.

Diagram that shows the procession from triggers to the first build step in a pipeline.

Stap 2: De installatiekopieën bouwen

De volgende logische stap is het bouwen van een installatiekopieën. Als u wilt uitvoeren in de AKS-omgeving, moet de website een Docker-installatiekopieën zijn. U moet de nieuwe installatiekopieën bouwen met behulp van het Dockerfile dat zich in de hoofdmap van de opslagplaats bevindt. Hier kunt u verschillende triggers opgeven.

Voor de getagde doorvoerpijplijn bouwt u de installatiekopieën en tagt u deze vervolgens met behulp van dezelfde tag als de push. Als de doorvoer bijvoorbeeld is getagd v1.0.0, bouwt u de installatiekopieën als contoso/website:v1.0.0. Als u een niet-gemarkeerde doorvoering in de hoofdbranch hebt, bouwt u de installatiekopieën met de latest tag.

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

Stap 3: de installatiekopieën naar een containerregister pushen

Nadat de installatiekopie is gemaakt, pusht u deze naar het Contoso-containerregister en stelt u het AKS-cluster in voor toegang tot het register. Het cluster downloadt de installatiekopieën uit Container Registry en voert deze uit.

Op dit punt wordt de pijplijn geconvergeerd in één stap. Uw Container Registry-exemplaar heeft geen interne afdelingen, dus u pusht beide installatiekopieën naar dezelfde locatie.

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

Stap 4: De toepassing implementeren

De laatste implementatiestap implementeert de website op de juiste locatie. Als een getagde doorvoering de pijplijn heeft geactiveerd, implementeert u de website in de production naamruimte van het AKS-cluster. Als de pijplijn is geactiveerd met een niet-gemarkeerde doorvoering, pusht u naar de staging naamruimte van hetzelfde cluster.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Nu u de werkstroompijplijn hebt ontworpen, gaat u verder met de volgende eenheden om uw projectomgeving in te stellen en GitHub Actions te maken voor het klonen, bouwen, pushen en implementeren op het AKS-cluster.