Enterprises are changing the way they manage software development. They're breaking monoliths into micro-services, containerizing their workloads, and deploying to multiple cloud environments. As a result, their DevOps teams are being spread thin as they attempt to navigate different software environments.
Spinnaker, a continuous delivery (CD) platform open sourced by Netflix, aims to relieve teams from time-consuming customizations and enable safe and consistent deployments regardless of the target cloud environment.
To better explain Spinnaker and how you can leverage it for faster and better software delivery, Armory released a comprehensive whitepaper detailing everything from Spinnaker's history to its many pipelines and strategies.
While the whitepaper is only eleven pages long, here is a recap highlighting the key takeaways so you can better understand why dozens of Global 2,000 companies use Spinnaker to help teams deploy with consistency, automation, and safety.
In a nutshell, Spinnaker "enables developers and operators to accelerate application deployment through powerful pipeline capabilities."
With Spinnaker as the middle-man between software development and target deployment environments, DevOps teams can take advantage of the following:
- Faster time to market thanks to rapid release cycles and automated testing techniques.
- Shorter feedback loops since frequent deployments with small changes makes troubleshooting easier.
- Fewer error-prone manual processes as CD replaces these with automated workflows.
- Consistent terminology that maps to the nomenclature used by public cloud providers and container orchestration engines.
- Simplified multi-cloud deployments thanks to Spinnaker's all-in-one dashboard that abstracts away the complexities of each cloud environment.
The whitepaper cites a RightScale report that states 2018 has seen an increase in enterprises investing in a multi-cloud strategy for three main reasons:
- Avoid vendor lock-in
- Achieve higher availability of applications
- Meet specific workload or application requirements
Due to this shift in deployment strategy, applications are now spread out across different cloud environments which puts pressure on the DevOps teams tasked with managing them all.
To complicate their jobs further, existing toolchains aren't designed to take on the challenge of deploying to diverse cloud platforms. This is where the game-changing capabilities of Spinnaker come in.
How Spinnaker enables multi-cloud strategy
Unlike most platforms, Spinnaker was designed as a multi-cloud deployment tool from the very beginning. It boasts a modular, extensible architecture which allows developers to add diverse deployment targets and deploy to public, private, hybrid, and multi-cloud environments.
Spinnaker also codifies industry best practices, allowing enterprises to deploy software quickly and safely while DevOps teams are freed to do what they do best: write code.
How Spinnaker levels the field for software development companies
Continuous deployment used to be the best practice that kept companies like Netflix, Google, and Amazon years ahead of most other software development companies.
Spinnaker levels the playing field for smaller companies struggling with manual glue code and error prone processes. When integrated with existing CI/CD pipelines and deployment workflows, Spinnaker enables companies to deploy software as rapidly as a web-scale company at a fraction of the cost and effort.
Spinnaker's core building blocks
To achieve everything mentioned above, Spinnaker is built upon the following:
Application Management: This feature deals with the configuration of the target environment (server groups, load balancers, security groups). Each created object maps to a resource specific to the target environment.
Application Deployment: Used to achieve continuous delivery via pipelines which define the deployment strategies.
Stage: An action or sequence of actions that form a pipeline. Actions include: Deploy, Resize, Disable, Manual judgement, and more.
Strategy: Defines how a specific deployment takes place. Strategies include: Highlander, Red/Black, and Rolling push.
Registering multiple deployment targets with Spinnaker
Typically, after registering a cloud provider and configuring the environment, DevOps teams are left with managing each environment separately.
In contrast, Spinnaker offers "a single pane of glass" to orchestrate deployments across multiple providers and environments.
Here is a list of currently supported cloud providers:
• Google App Engine
• Google Compute Engine 6
• Amazon Web Services
• Microsoft Azure
• Mesosphere DC/OS
• Cloud Foundry
• Oracle Cloud
Integrating Spinnaker with SCM & Artifact Repositories
After registering cloud providers in Spinnaker, the platform must be configured so it can talk to source code and artifact repositories.
With that in mind, here are a few key advantages of using Spinnaker:
- It can be easily integrated with source code control management systems such as GitHub and GitLab.
- Spinnaker can listen to events (which can trigger pipelines) and collect artifacts (which can produce machine images) from external CI systems. Jenkins and Travis CI are natively supported due to their popularity with DevOps teams.
- Spinnaker takes care of packaging and deployment for multiple targets for the same software – saving teams from performing these tasks for each environment.
Configuring pipelines and strategies
The whitepaper states the following, "Spinnaker’s pipelines and strategies make it possible to deploy, scale, and manage individual services that are part of a larger microservices-based application."
Pipelines are Spinnaker's bread and butter for fast and repeatable deployments, where each pipeline consists of configurations, triggers, notifications, and a sequence of stages. These stages are categorized in four ways:
Infrastructure: This stage deals with creating, updating, or deleting resources.
External systems: Logic from other systems can be integrated and reused within Spinnaker.
Testing: This stage is concerned with canary deployments in which a small amount of traffic is directed to a new build to measure its stability before being moved to production.
Flow control: Group of stages where users can control the flow of the pipeline including checking preconditions, manual judgement, waiting, and running another pipeline.
Regarding Spinnaker's deployment strategies, the whitepaper details the following:
Highlander: This strategy pushes the new version into a server group and automatically terminates the group running the previous version once the new version is identified as healthy.
Red/Black: Spinnaker's version of Blue/Green deployments where both the current and new versions are run side by side. Only one environment is active at a time.
Rolling push: Gradually rolls out the new version while deleting and replacing the old instances until every instance in the server group has been replaced.
Reducing risk with Automated Canary Analysis
Automated Canary Analysis (ACA) is a proven technique for reliable software delivery. Consequently, Google and Netflix partnered up to create Kayenta, a platform which allows teams to easily set up an ACA stage within a Spinnaker pipeline.
Kayenta uses advanced statistics and analytics to measure the new build against the current one before making rollout and rollback decisions. Kayenta can also automatically promote or fail the canary (or call for manual judgement).
This next-level ACA results in increased confidence for teams who frequently ship multiple versions of the same software, and is yet another reason why Spinnaker is the go-to platform for safe and automated deployments.
What to do next
For a detailed explanation of the points shown in this recap and more, you can download the full whitepaper here.
If you're interested in a more extensive introduction to the platform, catch the replay of our recent webinar: Get to Know Spinnaker.
To get personalized answers to any questions you may have on anything from installing to extending Spinnaker, feel free to join the Spinnaker Slack Channel where over 5,000 members are active and ready to assist you at any time.
Finally, don't miss the annual Spinnaker Summit this October 8-9 in Seattle. With over 50 sessions led by industry leaders from companies including Netflix, Google, AWS, and of course, Armory, the Summit is a remarkable opportunity to learn how to use Spinnaker for fast, safe, and repeatable deployments.
On that note, if you're interested in joining us at this year's Spinnaker Summit, use our limited discount code "ARMORY" when registering for your ticket here. (Code is valid for the first 100 tickets only.)