Say Goodbye to Choosing Between Speed and Safety
Jun 6, 2019 by Armory
The idea that speed comes with a safety trade-off is deeply ingrained in our psyches. We’re not just talking about software development and deployment, but everything in our lives. The truth is, when human beings try to do things faster, they tend to make more mistakes.
One of the Spinnaker project’s goals is to destroy the inverse relationship between speed and safety. If you look at spinnaker.io, the project’s tagline is “fast, safe, repeatable deployments.” The beauty of using automation tools is that they provide guardrails and baked-in safety checks that make it possible to move fast without compromising on security.
Here’s a couple ways Spinnaker makes speed and safety possible.
Advanced Deployment Strategies
A key part of increasing deployment safety is using advanced deployment techniques like Red/Black deployments or Canary deployments. Using either a Red/Black deployment or Canary deployments allows you to see how a new deployment performs in the production setting and easily rollback if there’s a problem with the deployment. Spinnaker makes Red/Black deployments and Canary deployments easy to set up, easy to manage and easy to rollback if necessary.
Automated Canary Analysis
Even when you’re using an advanced deployment strategy, manually evaluating whether or not a deployment should pass and be promoted to full production can be both error-prone and slow. This is a spot where humans could easily make mistakes, especially if they’re rushed. Using Kayenta, Spinnaker’s automated Canary analysis, both speeds up the process of evaluating a deployment’s performance as well as reduces the likelihood that something will be missed.
Another Spinnaker feature that increases safety is the automatic rollbacks. When using advanced deployment strategies, you can set a verification window, a period of time between the new version is deployed and the old version is destroyed. If Kayenta determines that the Canary deployment is a failure, Spinnaker will automatically rollback to the previous version, without human involvement.
Automating the rollback process means there’s no scrambling to figure out how to restore an application after a failed deployment.
While the above features are all about the verification step in the deployment process, ensuring consistently safe deployment practices in an enterprise setting is about more than just making sure there’s a way to handle rollbacks (though that is very important). In an environment with dozens or hundreds of developers, using Spinnaker’s templated pipelines makes it possible to ensure that every team is following an agreed-upon process to take code into production. Templated pipelines put tight guardrails on the deployment process, so that every team has to comply with company-wide processes to ensure the deployment is secure.
Moving Fast with Spinnaker
While the features mentioned above are some of the most important when it comes to making safety and speed compatible, it’s not an exhaustive list. Spinnaker makes it possible to limit the times when deployments are handled, so that deployments never coincide with peak traffic. You can set Spinnaker to only allow one pipeline to execute at a time, making it easier to debug if something goes wrong with one execution. The Traffic Guard feature ensures that you always have at least one server group per cluster that is taking traffic. All these features make it possible to both move faster than would be possible with a manually process and increase the safety of deployments.
Speed and safety can go hand-in-hand, but only when you have automation tools providing the guardrails and reducing the risk of human error.