Introducing Armory Certified Pipelines
Oct 5, 2017 by Ben Mappen
The Problem: Why Deployments are Slow in Most Enterprises
The goal of Certified Pipelines is to help companies achieve their desired outcome – safe deployments – by automating and enforcing the things that actually validate a safe deployment such as load testing, integration testing, security scanning, and canaries.
What we’ve learned, ironically enough, is that the biggest impediment to safety are the very same manual steps in a deployment workflow that were added as safeguards in the first place.
For example, you might have your deployments automated to QA, but still require a human to perform load testing or security scanning before the release is promoted to a Staging environment, and the same is likely true for promotion to production. A human looks at a dashboard, makes a judgement call, or runs a set of scripts in a specific order. Sounds OK, but humans make mistakes, and at some point when your deployment goes sideways your company might institute a new set of rules and policies for every change to production. Soon enough, your once per day releases turn into once per week to accommodate the new approval process.
This series of (mostly) manual steps exists in almost every company. In larger enterprises, this process is formalized into what is called a Change Control Review Board (CCRB). The CCRB exists to increase safety and security, something we all want, especially for our Tier 1 services. In the analog world, these manual checks have existed for a long time and for good reasons (ie. two keys required to fire a warhead), but in the digital world this is an anti-pattern; manual checks have the opposite effect of their original intention. They make us feel safe but they actually result in more outages.
The Solution: Automation with Armory Certified Pipelines
Certified Pipelines helps you deploy more safely in two ways:
- It allows you to define and enforce policies in your deployment workflow. What are all of the things that constitute a safe deployment inside your company? Define these steps in a “certified pipeline” to enforce that all deployments follow these standards.
- It reduces the cost of implementing deployment best practices like load testing, integration tests, security scanning, and canaries through native integrations with the tools you already use (or want to be using).
Here is a screenshot of the Policy Definition Screen. In this example, the admin user requires these five stages to exist. To apply this policy to an application, just select the app from the policy’s app dropdown menu. You can apply multiple policies to the same application.
And, here’s an example of a pipeline in Spinnaker that has been certified by a policy named “CD Approved”. Because it complies with the policy, this pipeline gets a “CD Approved” badge. And if one of the required stages is deleted, the pipeline will be blocked from deploying to production.
We’re seeking alpha testers so drop us a line at [email protected] if you’re interested getting early access.
How to Enable Certified Pipelines
- Add
CERTIFIED_PIPELINES_ENABLED=true
to your prod.env file - Restart Spinnaker with this command service armory-spinnaker restart (or by redeploying Spinnaker with your Spinnaker Deploy Spinnaker pipeline)
- Navigate to
https://{Your Spinnaker Domain}/armory/config
- Click on the “Certified Pipelines” tab
Roadmap
- Audit Reporting Dashboard (Q4 2017): Query and visualize every change to production.
- More Integrations (Q1 2018, on-going): We’re adding LOTS of integrations for metrics, monitoring, load testing, and security scanning to power the automation in Certified Pipelines.