Spinnaker Training Series #8: Rollbacks

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.