Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Canary Deployments #84

Open
dvallin opened this issue Mar 1, 2019 · 3 comments
Open

Canary Deployments #84

dvallin opened this issue Mar 1, 2019 · 3 comments

Comments

@dvallin
Copy link
Owner

dvallin commented Mar 1, 2019

Is your feature request related to a problem? Please describe.
It is not clear what is needed to do canary releases. Perhaps it is already possible with the current feature set. Perhaps we need finer control for that.

Describe the solution you'd like
A example setup for canary deployment. Perhaps additional pipeline steps.

@dvallin
Copy link
Owner Author

dvallin commented Mar 1, 2019

Possibly close to an actual solution:
First you would need a load balancer that distributes traffic to your canary pods and your stable pods that are getting most of the load. This would be done outside Spacegun (we use Terraform for that). Then you would create two deployments with some labels for the load balancer. In Spacegun, you would write one deployment pipeline that deploys your newest version to the canary deployment. Then in a second deployment pipeline, you would add a cluster probe to the pipeline (see 'Deploy only working clusters' in the readme) and deploy the image from the canary to your service that runs with higher replication. You would need an endpoint that returns a 200 response if your canary is still fine (perhaps by looking at some monitoring data) for the cluster probe step to call. But as I said, I have never tried something like that before. Perhaps I am missing something here?

@dvallin
Copy link
Owner Author

dvallin commented Mar 1, 2019

We also need a way to make this gradual and roll back in case of error. So this feature seems to be a bit more than just putting together what is already there!

@stefansedich
Copy link

@dvallin we use Ambassador for canary deployments so we can have the ability to send 10% of traffic to the canary and then gradually dial it up. Could also could use Istio here, but went with Ambassador for a simpler setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants