Oct 3, 2018 by Armory
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:
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:
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.
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.
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.
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.
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
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:
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.
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.
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.)
Introducing Quick Spin One of the most common challenges that organizations face when implementing a continuous deployment strategy is the time and focus that it takes to set up the tools and processes. But a secure, flexible, resilient and scalable solution is available right now. Want to see if it’s the right tool for your […]
Read more →
Spinnaker is the most powerful continuous delivery tool on the market. DevOps engineers and developers recognize this power and are looking to use Spinnaker as a foundational tool in their Continuous Integration and Continuous Delivery (CI/CD) process for hybrid and multi-cloud deployments. Such a powerful, expansive open source tool needs expertise within your organization to […]
Read more →
Today, Armory is excited to announce the availability of the GitHub Action for Armory Continuous Deployment-as-a-Service. GitHub is where developers shape the future of software. After a developer writes and tests their code in GitHub, it must be deployed. Armory’s GitHub Action for Continuous Deployment-as-a-Service extends the best-in-class deployment capabilities to Kubernetes. CD-as-a-Service enables declarative […]
Read more →