Production Can Be the Happiest Place on Earth with Spinnaker

Pat Johnson
7 min readDec 4, 2019

--

In his SpringOne Platform 2019 keynote, Josh Long, Spring developer advocate at Pivotal, went as far to say that “production is better than Disney.” I don’t think he was talking about the long lines and mediocre food. Josh was comparing it to a place of happiness, a great experience.

For many organizations, this happy place of production feels more like an aspiration than a reality today. If that sounds like you, what’s keeping you from getting your applications to production more often and more successfully?

Let’s explore how one large financial company is tackling the path to production and many best practices using Spinnaker—all revealed at SpringOne Platform this year.

Microservice Deployments at Scale Ala JPMorgan Chase

How do you scale delivery in an organization of 53,000 IT pros, including 30,000 developers and their 6,500 applications? I had the privilege of hearing the JPMorgan Chase story in a keynote and break-out session at SpringOne Platform.

Richard Francois, VP at JPMorgan Chase, explains the current state of the modern runtime for the company’s apps: “We have 90 [Pivotal Platform] foundations, so there’s 30 foundations, dev, test, and prod, distributed globally. We’re hitting 6,000 deployments a day, up to 10,000.”

But acceleration alone was not enough. To scale to the levels its business will require (a projected 25,000 deployments a day across all platforms by the end of 2020), JPMorgan Chase had to do better.

The focus: empowering developers. The developer experience must be first-class and consistent across all deployment targets. Developers also need control over their code on the path to production, which means adding zero-downtime updates and safe deployment strategies, like blue-green and canary. And nothing gets to production without the reality of InfoSec and compliance gates. The trick is how to enforce compliant, secure patterns while at the same time removing friction for developers.

Stephen Flaherty, head of enterprise architecture and core engineering and public cloud at JPMorgan Chase, has the answer:

“…it’s about creating a cohesive pattern that our engineers can follow that will expedite and fast-track them from a concept to cash for our clients. And we refer to that as instant change authorization. If you follow all the right patterns, if you reach the right quality thresholds, if you meet our cyber bars, then we allow you to do full continuous delivery with Spinnaker. And we’ve got about 200 apps going through that cycle.”

Enterprise Toolchain Provides Cohesive Pattern for Developers

Watch the keynote and break-out session to learn about JPMorgan Chase’s steps of transformation and migration to an industry-standard, largely open-source toolchain. You’ll learn why “…Spinnaker is a game changer” for one of the world’s largest banks!

Balance Speed and Confidence to Production with a Canary

Why is Spinnaker so useful? Andreas Evers, senior solution architect at Pivotal, gets to the heart of Spinnaker’s value in his SpringOne session: Cutting-Edge Continuous Delivery: Automated Canary Analysis Through Spring-Based Spinnaker.

He starts out the session with a familiar point: Speed must be balanced with confidence to release to production. So how do you achieve this balance? Andreas advises that you should test in production with automated canary analysis.

However, to automate advanced deployment techniques like canary analysis, rollbacks, chaos testing, and the like, you need to know the state of your apps in production. You need to know where all your apps are deployed. There’s more to this statement than you might think!

You may be tracking this with Git tags today. Andreas says that tags can fall apart in cloud-native deployments when you have multiple versions in production, in different regions over multiple different clouds. That’s why knowing current state is important. Once again, Spinnaker shines in this case.

Spinnaker goes beyond stateless CI/CD tools. It maintains state of all your application deployments through a dynamically created inventory. This inventory is a confidence booster for your entire IT organization. You can see your dev, test and production deployments across all clouds, regions, and accounts in one application-centric dashboard.

Spinnaker Application-Centric Dashboard

From there, Andreas shows you how to go fast while not compromising safety. He goes on to explain best practices for automated canary analysis, and shares a detailed demo of Spinnaker in action.

Other highlights from the talk:

  • Spinnaker works closely with popular monitoring tools. But the monitoring system must support multidimensional time series data points to enable automated canary analysis. For example, Andreas uses Datadog as the metrics store in the demo.
  • For accurate canary analysis, you need to deploy a fresh baseline version of the current application. Use this to measure against the canary version. Otherwise, you are measuring a newly starting app with a longer-running app. This isn’t an apples-to-apples comparison, and could yield bad information.
  • Monitor the canary deployment for a “long enough” period of time. This way, you will clearly see the trends and more accurately assess performance. What’s “long enough”? It typically depends on the traffic load to your app.

I highly recommend you watch the full session.

Stand Up End-to-End Automation for App Delivery

Spinnaker operates in the continuous delivery portion of a CI/CD workflow. The tool takes handoffs from an artifact repository to deploy and manage microservices at scale. You’ll see Spinnaker in the context of a full CI/CD workflow in the session Square Pegs, Square Holes: CI/CD That Fits by Cora Iberkleid and Madhav Sathe from Pivotal. They also provide a well-rounded survey of things to take into account to build a fully automated pipeline for your microservices.

Some of the topics covered in this jam-packed session include contract testing, database validation, and continuous integration (CI). The duo also reviews build service, GitOps, safe deployments, and monitoring. Watch this talk and you’ll gain a good understanding of Spinnaker and all the deployment strategies available out of the box. Here’s a quick summary:

Spinnaker Deployment Strategies and Monitoring Collaboration

A few of my take-aways are:

  • Maintain backwards compatibility in your applications. This way, you can release microservices independently, roll back, and use safe deployment strategies like blue-green and canary.
  • Apply consistency to how you build your images. You will eliminate snowflakes and make it easier to keep images updated and in a ready to deploy state. Check out Pivotal Build Service (which is rooted in Cloud Native Buildpacks).
  • Monitoring is key! You need this to analyze deployment success and optimize the performance of your applications in production. When you combine monitoring with Spinnaker, you turn monitoring into action — built-in deployment strategies, automated corrective actions, and application inventory.

Achieve High Availability Across Multiple Regions

Companies are starting to understand site reliability engineering (SRE) and how to stand up the practice in their organizations. How can you use Spinnaker in your SRE strategy and turn monitoring into action? There’s a SpringOne Platform talk for that.

In their session Highly Available and Resilient Multi-Site Deployments Using Spinnaker, Koundinya Srinivasarao and Dodd Pfeffer, platform architects from Pivotal, discuss how to enhance the resiliency offered by cloud providers.

Koundinya describes the tension between users expecting new features (system change) and the expectation of a system that works (system reliability). SRE is the practice of balancing these goals, and minimizing the effects of change. He also offers up a great intro into SRE principles and how to think about your service level objectives (SLOs).

Determining the Right SLOs for Your Applications (via Corey Innis)

First, work with your business leadership to determine an SLO that balances your customer impact with cost and effort. Your error budget then can be determined. Think of your SLOs as the starting point that will help you gauge the number of foundations or regions needed. They will also inform the practices you will need to have in place, like automatic rollback.

Dodd then takes you through a multi-region deployment demonstration with Spinnaker. He also discusses application, data, and deployment considerations for building a highly observable system in production.

When you instrument your application with meaningful business metrics, then you can let that inform your deployment processes to protect the SLO. If the code change would meaningfully disrupt the SLOs, you can back out of the deployment.

This session is full of good practice around how to use Pivotal Platform and Spinnaker to accomplish multi-site resiliency.

Get the Faster, Safer Path to Prod

I’ll close with this statement from James Watters, Pivotal SVP of strategy:

“…continuous delivery unleashes human potential.”

Spinnaker is purpose-built to give you a faster, safer, reliable path to production—where all that potential can be realized.

If you’re new to cloud-native app delivery, check out this webinar and demo: Code to Cloud: Three Trends for Faster, Safer Continuous Delivery.

--

--

Pat Johnson

DevOps, continuous delivery advocate, plus writer, traveler, singer, foodie. All my opinions are my own.