Blue-Green is een implementatiemodel dat gebruikmaakt van twee Docker-hosts die u op identieke wijze implementeert en configureert in een Kubernetes-cluster. Met het Blue-Green-implementatiemodel verlaagt u de uitvaltijd die in uw omgeving kan optreden wanneer uw pijplijnen in Automation Pipelines uw applicaties implementeren.

De Blue-Green-instanties in uw implementatiemodel dienen elk een ander doel. Slechts één instantie tegelijk accepteert het live-verkeer dat uw applicatie implementeert en elke instantie accepteert dat verkeer op specifieke momenten. De Blue-instantie ontvangt de eerste versie van uw applicatie en de Green-instantie ontvangt de tweede.

De load balancer in uw Blue-Green-omgeving bepaalt welke routering het live-verkeer volgt terwijl het uw applicatie implementeert. Door het Blue-Green model te gebruiken blijft uw omgeving operationeel, bemerken gebruikers geen uitvaltijd en wordt uw applicatie voortdurend door uw pijplijn geïntegreerd en naar uw productieomgeving geïmplementeerd.

De pijplijn die u maakt in Automation Pipelines vertegenwoordigt uw Blue-Green-implementatiemodel in twee fasen. Eén fase is voor ontwikkeling en de andere fase is voor productie.

De Automation Pipelines-pijplijnwerkplek ondersteunt Docker en Kubernetes voor taken voor continue integratie en aangepaste taken.

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

Tabel 1. Taken in de ontwikkelingsfase voor Blue-Green-implementatie
Taaktype Taak
Kubernetes Maak een naamruimte voor uw Blue-Green-implementatie.
Kubernetes Maak een geheime sleutel voor Docker Hub.
Kubernetes Maak de service die wordt gebruikt om de applicatie te implementeren.
Kubernetes Maak de Blue-implementatie.
Poll Controleer de Blue-implementatie.
Kubernetes Verwijder de naamruimte.
Tabel 2. Taken in de productiefase voor Blue-Green-implementatie
Taaktype Taak
Kubernetes Green krijgt de servicegegevens van Blue.
Kubernetes Haal de details op voor de Green-replicaset.
Kubernetes Maak de Green-implementatie en gebruik de geheime sleutel om de containerimage op te halen.
Kubernetes Werk de service bij.
Poll Controleer of de implementatie is gelukt op de productie-URL.
Kubernetes Voltooi de Blue-implementatie.
Kubernetes Verwijder de Blue-implementatie.

Als u uw applicatie in uw eigen Blue-Green implementatiemodel wilt implementeren, maakt u een pijplijn in Automation Pipelines die twee fasen bevat. De eerste fase bevat de Blue-taken die uw applicatie implementeren op de Blue-instantie en de tweede fase bevat de Green-taken die uw applicatie implementeren op de Green-instantie.

U kunt uw pijplijn maken met behulp van de slimme CICD-pijplijnsjabloon. De sjabloon maakt uw pijplijnfasen en -taken voor u en omvat de implementatieselecties.

Als u handmatig een pijplijn maakt, moet u de pijplijnfasen plannen. Zie Een CICD-systeemeigen build plannen in Automation Pipelines voordat u handmatig taken toevoegt voor een voorbeeld.

In dit voorbeeld gebruikt u de slimme CICD-pijplijnsjabloon om uw Blue-Green-pijplijn te maken.

Voorwaarden

Procedure

  1. Klik op Pijplijnen > Nieuwe pijplijn > Slimme sjablonen > CI/CD-sjabloon.
  2. Voer de informatie voor het CI-gedeelte van de slimme CICD-pijplijnsjabloon in en klik op Volgende.
  3. Voltooi het CD-gedeelte van de slimme pijplijnsjabloon
    1. Selecteer de omgevingen voor uw applicatie-implementatie. Bijvoorbeeld: Ontwikkeling en Productie.
    2. Selecteer de service die door de pijplijn wordt gebruikt voor de implementatie.
    3. Selecteer in het implementatiegebied het clustereindpunt voor de ontwikkelingsomgeving en de productieomgeving.
    4. Voor het productie-implementatiemodel selecteert u Blue-Green en klikt u op Maken.

    In de slimme pijplijnsjabloon selecteert u de service en implementaties en klikt u op Blauwgroen voor het productie-implementatiemodel.

resultaten

Gefeliciteerd! U heeft de slimme pijplijnsjabloon gebruikt om een pijplijn te maken die uw applicatie implementeert op uw Blue-Green-instanties in uw Kubernetes-cluster voor productie op AWS.

Voorbeeld: Voorbeeld van YAML-code voor bepaalde Blue-Green-implementatietaken

De YAML-code die wordt weergegeven in Kubernetes-pijplijntaken voor uw Blue-Green-implementatie, kan op de volgende voorbeelden lijken die de Naamruimte, Service en Implementatie maken. Als u een image moet downloaden uit een privéopslagplaats, moet het YAML-bestand een sectie bevatten met het Docker-configuratiegeheim. Zie het CD-gedeelte van Een systeemeigen CICD-build plannen in Automation Pipelines voordat u de slimme pijplijnsjabloon gebruikt.

Nadat de slimme pijplijnsjabloon uw pijplijn heeft gemaakt, kunt u de taken wijzigen zoals nodig voor uw eigen implementatie.

YAML-code om een voorbeeld-naamruimte te maken:

apiVersion: v1
kind: Namespace
metadata:
  name: pipelines-82855
  namespace: pipelines-82855

YAML-code om een voorbeeld-service te maken:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: pipelines-demo
  name: pipelines-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  ports:
  - port: 80
  selector:
    app: pipelines-demo
    tier: frontend
  type: LoadBalancer

YAML-code om een voorbeeld-implementatie te maken:

apiVersion: extensions/v1
kind: Deployment
metadata:
  labels:
    app: pipelines-demo
  name: pipelines-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  replicas: 1
  selector:
    matchLabels:
      app: pipelines-demo
      tier: frontend
  template:
    metadata:
      labels:
        app: pipelines-demo
        tier: frontend
    spec:
      containers:
      - image: ${input.image}:${input.tag}
        name: pipelines-demo
        ports:
        - containerPort: 80
          name: pipelines-demo
      imagePullSecrets:
      - name: jfrog-2
      minReadySeconds: 0

Volgende stappen

Zie Tutorials voor het gebruik van Automation Pipelines voor meer informatie over hoe u Automation Pipelines kunt gebruiken.

Zie Hoe kan ik mijn implementatie terugdraaien in Automation Pipelines? om een implementatie terug te draaien.

Zie de extra resources onder Aan de slag met VMware Aria Automation voor meer informatie.