Om een pijplijn met continue integratie en continue levering (CICD) in vRealize Automation Code Stream te maken, kunt u de slimme CICD-pijplijnsjabloon gebruiken. Om uw native build voor CICD te plannen, verzamelt u de informatie die u nodig heeft om de slimme pijplijnsjabloon in te vullen voordat u de pijplijn in dit voorbeeldplan maakt.

Als u een CICD-pijplijn wilt maken, moet u zowel de fase voor continue integratie (CI) als de fase voor continue levering (CD) van uw pijplijn plannen.

Nadat u de informatie in de slimme pijplijnsjabloon hebt ingevoerd en de sjabloon opslaat, wordt een pijplijn gemaakt die fasen en taken bevat. Deze geeft ook de implementatiebestemming van uw image aan op basis van de typen omgeving die u selecteert, zoals ontwikkeling (Dev) en productie (Prod). De pijplijn publiceert uw containerimage en voltooit de acties die nodig zijn om deze uit te voeren. Nadat uw pijplijn is uitgevoerd, kunt u trends volgen over alle pijplijn-uitvoeringen.

Wanneer een pijplijn een image van Docker Hub bevat, moet u ervoor zorgen dat cURL of wget in de image is ingesloten voordat u de pijplijn uitvoert. Wanneer de pijplijn wordt uitgevoerd, downloadt vRealize Automation Code Stream een binair bestand dat gebruikmaakt van cURL of wget om commando's uit te voeren.

Zie De pijplijnwerkplek configureren voor meer informatie over het configureren van de werkplek.

De fase voor continue integratie (CI) plannen

Om de CI-fase van uw pijplijn te plannen, stelt u de externe en interne vereisten in en bepaalt u de informatie die nodig is voor het CI-gedeelte van de slimme pijplijnsjabloon. Hier volgt een overzicht.

In dit voorbeeld wordt een Docker-werkplek gebruikt.

Eindpunten en opslagplaatsen die u nodig heeft:

  • Een opslagplaats voor Git-broncode waar ontwikkelaars hun code inchecken. vRealize Automation Code Stream haalt de meest recente code op in de pijplijn wanneer ontwikkelaars wijzigingen doorvoeren.
  • Een Git-eindpunt voor de opslagplaats waar de broncode van de ontwikkelaars zich bevindt.
  • Een Docker-eindpunt voor de Docker-buildhost die de bouwcommando’s in een container uitvoert.
  • Een Kubernetes-eindpunt zodat vRealize Automation Code Stream uw image kan implementeren op een Kubernetes-cluster.
  • Een builderimage die de container maakt waarop de continue integratietests worden uitgevoerd.
  • Een imageregister-eindpunt zodat de Docker-buildhost daar de builderimage kan ophalen.

U heeft toegang tot een project nodig. Het project groepeert al uw werk, inclusief uw pijplijn, eindpunten en dashboards. Controleer of u lid bent van een project in vRealize Automation Code Stream. Als u geen beheerder bent, vraagt u de vRealize Automation Code Stream-beheerder om u als lid toe te voegen aan een project. Zie Hoe voeg ik een project toe in vRealize Automation Code Stream?.

U zult een Git-webhook nodig hebben waarmee vRealize Automation Code Stream de Git-trigger kan gebruiken om uw pijplijn te activeren wanneer ontwikkelaars codewijzigingen doorvoeren. Zie Hoe gebruik ik de Git-trigger in vRealize Automation Code Stream om een pijplijn uit te voeren?.

Uw build-toolsets:

  • Uw buildtype, zoals Maven.
  • Alle buildtools voor de naverwerking die u gebruikt, inclusief JUnit, JaCoCo, Checkstyle en FindBugs.

Uw publicatietool:

  • Een tool, zoals Docker, die uw buildcontainer implementeert.
  • Een imagetag, ofwel de commit-ID ofwel het buildnummer.

Uw werkruimte voor het bouwen:

  • Een Docker-buildhost, oftewel het Docker-eindpunt.
  • Een imageregister. Het CI-gedeelte van de pijplijn haalt de image op van het geselecteerde registereindpunt. De container voert de CI-taken uit en implementeert uw image. Als het register verificatiegegevens vereist, moet u een imageregistereindpunt maken en dit vervolgens hier selecteren, zodat de host de image uit het register kan ophalen.
  • URL voor de builderimage die de container maakt waarop de taken voor continue integratie worden uitgevoerd.

De fase voor continue levering (CD) plannen

Om de CD-fase van uw pijplijn te plannen, stelt u de externe en interne vereisten in en bepaalt u de informatie die moet worden ingevoerd in het CD-gedeelte van de slimme pijplijnsjabloon.

Eindpunten die u nodig heeft:

  • Een Kubernetes-eindpunt zodat vRealize Automation Code Stream uw image kan implementeren op een Kubernetes-cluster.

Omgevingstypen en -bestanden:

  • Alle omgevingstypen waar vRealize Automation Code Stream uw applicatie implementeert, zoals ontwikkeling en productie. De slimme pijplijnsjabloon maakt de fasen en taken in uw pijplijn op basis van de door u geselecteerde omgevingstypen.
    Tabel 1. Pijplijnfasen die door de slimme CICD-pijplijnsjabloon worden gemaakt
    Pijplijn-inhoud Wat het doet
    Bouw-publicatiefase Bouwt en test uw code, maakt de builderimage en publiceert de image naar uw Docker-host.
    Ontwikkelingsfase Gebruikt een Amazon Web Services (AWS)-cluster voor ontwikkeling om uw image te maken en te implementeren. In deze fase kunt u een naamruimte op het cluster maken en een geheime sleutel maken.
    Productiefase Gebruikt een productieversie van de VMware Tanzu Kubernetes Grid Integrated Edition (voorheen VMware Enterprise PKS) om uw image naar een Kubernetes-cluster in productie te implementeren.
  • Een Kubernetes YAML-bestand dat u selecteert in de Cd-sectie van de slimme CICD-pijplijnsjabloon.

    Het Kubernetes YAML-bestand bevat drie vereiste secties voor naamruimte, service en implementatie en een optionele sectie voor Geheim. Als u van plan bent een pijplijn te maken door een image te downloaden uit een privéopslagplaats, moet u een sectie met het Docker-configuratiegeheim opnemen. Als de pijplijn die u maakt, alleen openbaar beschikbare images gebruikt, is geen geheim vereist. Het volgende YAML-voorbeeldbestand bevat vier secties.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: codestream
      namespace: codestream
    ---  
    apiVersion: v1
    data:
      .dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZ1234567890lci5pby92MS8iOnsidXNlcm5hbWUiOiJhdXRvbWF0aW9uYmV0YSIsInBhc3N3b3JkIjoiVk13YXJlQDEyMyIsImVtYWlsIjoiYXV0b21hdGlvbmJldGF1c2VyQGdtYWlsLmNvbSIsImF1dGgiOiJZWFYwYjIxaGRHbHZibUpsZEdFNlZrMTNZWEpsUURFeU13PT0ifX19
    kind: Secret
    metadata:
      name: dockerhub-secret
      namespace: codestream
    type: kubernetes.io/dockerconfigjson
    ---   
    apiVersion: v1
    kind: Service
    metadata:
      name: codestream-demo
      namespace: codestream
      labels:
        app: codestream-demo
    spec:
      ports:
        - port: 80
      selector:
        app: codestream-demo
        tier: frontend
      type: LoadBalancer 
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: codestream-demo
      namespace: codestream
      labels:
        app: codestream-demo
    spec:
      replicas: 10
      selector:
        matchLabels:
          app: codestream-demo
          tier: frontend
      template:
        metadata:
          labels:
            app: codestream-demo
            tier: frontend
        spec:
          containers:
          - name: codestream-demo
            image: automationbeta/codestream-demo:01
            ports:
            - containerPort: 80
              name: codestream-demo
          imagePullSecrets:
          - name: dockerhub-secret

    Als u het bestand in de slimme sjabloon wilt toepassen, klikt u op Selecteren en selecteert u het Kubernetes YAML-bestand. Klik vervolgens op Proces. In de slimme pijplijnsjabloon worden de beschikbare services en implementatieomgevingen weergegeven. U selecteert een service, het clustereindpunt en de implementatiestrategie. Als u bijvoorbeeld het Canary-implementatiemodel wilt gebruiken, selecteert u Canary en voert u een percentage in voor de implementatiefase.

    De slimme pijplijnsjabloon kan Canary, Rolling upgrade en Blue-Green CICL-implementaties verwerken.

Zie Hoe implementeer ik mijn applicatie in vRealize Automation Code Stream naar mijn Blue-Green-implementatie? als u een voorbeeld wilt zien van het gebruik van de slimme pijplijnsjabloon om een pijplijn te maken voor een Blue-Green-implementatie.

Hoe u de CICD-pijplijn maakt met behulp van de slimme pijplijnsjabloon

Nadat u alle informatie hebt verzameld en het benodigde hebt ingesteld, kunt u op de volgende manier een pijplijn maken op basis van de slimme CICD-pijplijnsjabloon.

In pijplijnen selecteert u Nieuwe pijplijn > Slimme sjablonen.

Wanneer u een pijplijn maakt, kunt u een slimme pijplijnsjabloon gebruiken.

U selecteert de slimme CICD-pijplijnsjabloon.

U kunt een pijplijn voor continue integratie en continue levering maken door op de sjabloonkaart voor de slimme pijplijn voor continue integratie en continue levering te klikken.

U vult de sjabloon in en slaat de pijplijn op met de fasen die deze maakt. Als u nog laatste wijzigingen moet aanbrengen, kunt u de pijplijn bewerken en opslaan.

De slimme pijplijnsjabloon voor CICL maakt de pijplijn met fasen die uw applicatie bouwen en publiceren en levert deze in ontwikkelings- en productieomgevingen.

Vervolgens schakelt u de pijplijn in en voert u deze uit. Nadat deze is uitgevoerd, kunt u de volgende zaken nog bekijken:

  • Controleer of uw pijplijn is geslaagd. Klik op Uitvoeringen en zoek naar uw pijplijn. Als de pijplijn is mislukt, corrigeert u eventuele fouten en voert u deze opnieuw uit.
  • Controleer of de Git-webhook goed werkt. Op het tabblad Activiteit in Git worden de gebeurtenissen weergegeven. Klik op Triggers > Git > Activiteit.
  • Bekijk het pijplijndashboard en onderzoek de trends. Klik op Dashboards en zoek naar uw pijplijndashboard. U kunt ook een custom dashboard maken om te rapporteren over aanvullende KPI's.

Zie Hoe kan ik code vanuit mijn GitHub- of GitLab-opslagplaats continu integreren in mijn pijplijn in vRealize Automation Code Stream? voor een gedetailleerd voorbeeld.