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 vRealize Automation Code Stream 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 vRealize Automation Code Stream vertegenwoordigt uw Blue-Green-implementatiemodel in twee fasen. Eén fase is voor ontwikkeling en de andere fase is voor productie.

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 vRealize Automation Code Stream 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 vRealize Automation Code Stream 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 Implementatie-gebied het clustereindpunt voor de ontwikkelings-en productieomgevingen.
    4. Voor het productie-implementatiemodel selecteert u Blue-Green en klikt u op Maken.

    Het selecteren van de Blue-Green-implementatie in de slimme CICD-pijplijnsjabloon.

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. 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: codestream-82855
  namespace: codestream-82855

YAML-code om een voorbeeld-service te maken:

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

YAML-code om een voorbeeld-implementatie te maken:

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

Volgende stappen

Zie Tutorials voor het gebruik van vRealize Automation Code Stream voor meer informatie over hoe u vRealize Automation Code Stream kunt gebruiken.

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

Zie Meer resources voor vRealize Automation Code Stream-beheerders en -ontwikkelaars voor aanvullende referenties.