Jx: Support for Blue/Green deployment

Created on 18 Apr 2018  路  10Comments  路  Source: jenkins-x/jx

Enhancement

Support for deployment strategies like blue/green

  • can be part of environment setup as to what type of deployment strategy you are looking for this environment.

Why the request

For now the deployment strategy just replaces the current container with the new version and there is a slight downtime, which is fine for a demo. But then if you really want to use it for some sort of production deployment it should have an option for a better deployment strategy.

aredeployment areenvironment kinenhancement lifecyclrotten prioritimportant-soon

Most helpful comment

Totally agreed! That would be great. We've started pondering an istio approach for this in this issue: https://github.com/jenkins-x/jx/issues/582 am hoping we can add flexible promotion groups (e.g. Canary -> employees -> early adopters -> rolling upgrade across all other users) etc

All 10 comments

Totally agreed! That would be great. We've started pondering an istio approach for this in this issue: https://github.com/jenkins-x/jx/issues/582 am hoping we can add flexible promotion groups (e.g. Canary -> employees -> early adopters -> rolling upgrade across all other users) etc

Deployments have blue/green rolling-updates built-in (with unnoticed downtime). In order for this to work, the strategy for the rolling update must be filled out and a readiness probe must be specified.

Readiness probes by default report success immediately (see: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).

Obviously, with applications starting up, they are not immediately available; however, kubernetes is already throwing traffic at them and terminating the previously working application which results in the issue described above.

TLDR version: Implement a Readiness Probe so that the kube scheduler knows when to swap out the new code with the old running code.

@andrewwippler do you have a suggested POC of what you're describing in the context of JX? I mean what you said sounds pretty much as you would do it in a hand made yaml world... but how is it done in jx?

Is there anyone knows whether the Blue/Green is supported?

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://jenkins-x.io/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://jenkins-x.io/community.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close

@jenkins-x-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.

Was this page helpful?
0 / 5 - 0 ratings