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.
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. |
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
- Controleer of u toegang heeft tot een werkend Kubernetes-cluster op AWS.
- Controleer of u een Blue-Green-implementatieomgeving heeft ingesteld en dat u de Blue-Green-instanties heeft geconfigureerd om identiek te zijn.
- Maak een Kubernetes-eindpunt in Automation Pipelines dat uw applicatie-image implementeert op het Kubernetes-cluster op AWS.
- Raak vertrouwd met het gebruik van de slimme CICD-pijplijnsjabloon. Zie Een systeemeigen CICD-build plannen in Automation Pipelines voordat u de slimme pijplijnsjabloon gebruikt.
Procedure
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.