A fairly common ask of Spinnaker over the last couple of years has boiled down to having an ability to attach arbitrary tags to any cloud resource.

Of course these tags must also be searchable:

  • Fetch all tags on a given resource (ie. give me all tags for servergroup-v001)
  • Fetch all resources with a given tag (ie. find me all resources that have tag application_tier: critical)

This post offers a detailed look into how we built this in Spinnaker, why we built it vs. just using native cloud provider tags and what it might lead to in the future.


The folks over at Google recently published an official blog post talking about how Waze (acquired by Google in 2013) has been using Spinnaker to deploy simultaneously on both Google Cloud Platform (GCP) and Amazon Web Services (AWS).

They have been doing it for awhile too! (at least a year according to the post)


Google has been an active member of the Spinnaker community for over two years with many significant contributions including full support for GCP and Kubernetes (App Engine is also in-progress).

They have taken an active role in making sure that Spinnaker can be easily installed/upgraded (see…

The following pattern is suitable for scenarios where you would like to terminate more than one instance in an autoscaling group (ASG) with a matching decrement to desired capacity.

While the AWS SDK does support terminating a single instance in an ASG with a capacity adjustment, it offers nothing when it comes to multiple instance terminations.

It’s worth noting that the autoscaler will behave inconsistently should you attempt to call terminate-instance-in-auto-scaling-group in parallel.

This should be avoided.

The Pattern

Tag the instances pending termination

  • A tag to denote the ASG name that the instance is currently associated with (spinnaker:Detached).
  • A tag to denote that the instance is…

Part 3 of a series on how we scale and operate Spinnaker at Netflix.

This post offers insight into our approach to delivering custom Netflix-specific features for our hundreds of internal users without the need to open source. It is lower level than previous posts and expects the reader to have experience as both a user and operator of Spinnaker.

While we generally aim to open source the majority of Spinnaker, there are particular features or integrations that only make sense within the confines of Netflix. …

Part 2 of a series on how we scale and operate Spinnaker at Netflix.

This post outlines our approach to using metrics, dashboards and alerts to operationally support Spinnaker.

Netflix-specific Tooling

Although Spinnaker is an open-source project, there are a handful of Netflix-specific tools that support our efforts.

Atlas : The telemetry system used to manage, alert on and dashboard dimensional time series data (aka metrics). Portions of Atlas are open source.

Chronos : An event tracking service that provides an answer to questions like “What happened in the last hour?” or “What happened between time A and B”.

Chronos — All activity affecting orca-main over the past week

Spectator : A…

The Backstory

Spinnaker is the continuous delivery platform we’ve been building (and operating) over the past 2 years at Netflix. It represents many years of our team’s collective experiences delivering software at scale and has quickly grown from dozens of deployments per day to the 3000+ we regularly see now.

In partnership with Google, we open sourced Spinnaker in November of 2015 and now have first-class support for AWS, GCP and Kubernetes. Azure, Open Stack and Cloud Foundry is under active development by Microsoft and community members.

For much of 2016, our team has been adding support for Titus, the internal Netflix…

Adam Jordens

Continuous Delivery junkie at Netflix. Spent time at Amazon and a few startups in my previous life.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store