Spinnaker Training Series #8: Rollbacks

Jan 9, 2018 by Armory

Ethan Rogers, our resident Spinnaker expert, explains how to use Rollbacks.

A Transcript of the video is available below:

What’s up guys Ethan here, your Spinnaker expert, thanks for joining us for another installment of our Spinnaker training series. Today we are going to be talking about what I consider to be one of the most powerful features that Spinnaker exposes, and that’s rollbacks. A lot of companies put a lot of effort into deploying their application and making sure that their process from dev to prod is as simple as possible. But what happens when there is application failures? How do you respond if customers are experiencing issues on your site, and do you know one hundred percent how to rollback your application in the event of failure. Spinnaker just gives us a very quick way to do that and it’s integrated right into the platform. Let’s take a look at how to rollback to a previous version of our application with as little effort as possible, let’s get started.

You’ll see here in my clusters view that I’ve got a currently active server group version 1 that is enabled and taking traffic. We will also see here that I have got version 0 disabled but all the instances are up, we can see that by these little boxes here. Now a rollback, what it will do is disable the version that we are rolling back from and re-enable the version that we are rolling back to. In this case we have got instance ready to accept traffic so all we are going to do is enable the old ones and disable the new ones. If we had a case where the server group was available but there were no instances Spinnaker will take care of getting new instances spun up that we can then disable and start solving traffic problem.

So to do a rollback it’s a really simple process, we just click on the version 1 in this case we will click rollback from the server group actions and then select the server group that we want to rollback to. In this case there’s only one and that’s version 0 of our application and we can put in any reason and submit. Spinnaker will then start a bunch of tasks in order to get us to our desired state and we can actually see that from this tasks view here. We will click this link and it will take us over into task and we can see from this tasks view all of the different things that Spinnakers is doing to get us to our rollback state and we can pop over into our clusters view and see this start taking effect. We can see that Spinnaker has already started to enable this new, this previous server group version 0 and as things progress version 1 will be disabled. Now Spinnaker is also going to leave us the version that we rolled back from, leave all the instances in place in case for some reason we want to actually roll forward. Say that we are in peak hours and when we rollback, maybe during off peak hours we can handle some of the issues that are occurring and then just debug from there. So it’s really useful in being able to kind of take that case and get us to the point that we want to get to. So we can actually see from the fact that these tasks have successfully completed in this task pane that our rollback is complete and version 0 is now serving traffic. Rollbacks are probably one of the most important things that you need to think about when designing your deployment strategy. Spinnaker as we know helps us build pipelines, that help us get code out to production more quickly, and more safely and rollbacks are just a piece of that, that help us be as safe as possible.

Recently Published Posts

Spinnaker tips: Integration of Terraform & Kubernetes in a pipeline

Dec 8, 2023

Spinnaker is an incredibly powerful platform that lets you deploy to multiple locations and targets concurrently. An example of this includes armory plugin which lets you call terraform and capture the output of terraform commands (this is similar to how you can capture logs from RunJobs https://spinnaker.io/docs/guides/user/kubernetes-v2/run-job-manifest/#capturing-output but our integration is a deeper integration and […]

Read more

Spinnaker Tips: Setting a github status check on a PR from a pipeline

Oct 12, 2023

A common situation we hit is creating a pull request on github with some terraform changes that are run through our pipelines. We’d like to verify the terraform changes cleanly “plan” before we apply them. An example is when someone has a typo (how many times I’ve left dangling commas in a JSON object!) and […]

Read more

Introducing Pipelines-as-Code Plugin for Open Source Spinnaker

Jul 21, 2023

Easily Scale and Automate with Version Control in Git Developers choose best-of-breed version control systems like GitHub for a reason: they need the ability to collaborate and improve code together.  But a broken Spinnaker deployment pipeline can often be the last thing standing in the way of getting your application to market.  Until now. Armory’s […]

Read more