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 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 Code Stream vertegenwoordigt uw Blue-Green-implementatiemodel in twee fasen. Eén fase is voor ontwikkeling en de andere fase is voor productie.
De Code Stream-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 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 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
- 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 Code Stream 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 Code Stream 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 Code Stream 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: 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 Code Stream voor meer informatie over hoe u Code Stream kunt gebruiken.
Zie Hoe kan ik mijn implementatie terugdraaien in Code Stream? om een implementatie terug te draaien.
Zie Meer resources voor Code Stream-beheerders en -ontwikkelaars voor aanvullende referenties.