Take the Headache out of Production Deployments: Continuous Delivery to the Cloud with Pivotal Cloud Foundry and Spinnaker

October 4, 2018 james ma

To continuously deliver software to the cloud, companies are realizing that they must adopt some critical capabilities that ensure the safety, security, scalability and traceability of deployed applications—from development hand-off through production release. These more operational concerns need to run continuously against the inventory of applications across multiple cloud infrastructures, disconnected from the cadence of development sprints.

That’s why Pivotal is excited to share deeper integrations between Spinnaker, an open source continuous delivery platform, and Cloud Foundry (CF) that complement and extend continuous integration (CI) for rapid, reliable production deployments. Read on to learn more.

Laying the Groundwork for Continuous Delivery

Pivotal Cloud Foundry (PCF) is a multi-cloud platform that empowers organizations to use their preferred toolchain and runtimes as they create, build and deploy their applications. Getting applications—whether it’s some source code, a container, or a simple function—onto PCF is super easy with the multiple runtimes (PAS, PKS, and PFS). This is typically managed through the CI function and tools like Concourse or Jenkins.

The practice of CI encourages engineers to continuously integrate code changes into the main code branch and execute tests against those changes throughout the software development lifecycle. When practicing CI, engineers will write automated unit tests and integration tests that will run on the CI server (e.g., Jenkins, GoCD, CircleCI, Concourse CI, etc.). Automated tests play a major role in codifying application behavior, identifying bugs earlier in the development cycle and eliminating the toil of integration by giving continuous feedback to developers and key stakeholders.

As the practice of CI has matured and grown so has the scope of automation and tests. Looking beyond the simple unit test and integration tests, teams are adding new tests (security, stemcell testing, multi-platform testing, etc.) and codifying business processes for reviews and approvals. Teams can chain these tests together into sophisticated CI pipelines that can be reviewed and understood by all. A great example of this codification of pipelines in Spring Cloud Pipelines

Codified CI pipelines with complex automation in Concourse CI and Jenkins CI

But what about the application’s path to production? And once the application has reached production, what mechanisms do you have in place to track your applications, monitor the health of the applications, and the health of the underlying IaaS?

Continuous Delivery to the Cloud

Unlike CI, continuous delivery (CD) has an entirely different set of concerns for both the engineer and the operator. In addition to deploying applications, CD must ensure the safety, security, scalability and traceability of deployed applications.

There is a tendency for teams who are new to CD to extend their CI pipeline with a “Deploy” step that enables a path to production. Teams who choose to do this quickly find it to be unsatisfactory, as the needs and goals of CD are substantially different from CI in these areas:

CD Simplified with Spinnaker

 Spinnaker is an open source CD tool built from the ground up to intelligently deploy software releases to cloud platforms. Spinnaker works with the most popular CI tools, including Concourse, to enable developers to ship code rapidly with increased confidence and greater visibility. The platform supports polyglot deployments and provides a cloud agnostic deployment model that supports multiple clouds and multiple platforms (e.g., Amazon Web Services, Google Cloud Platform, Microsoft Azure and Kubernetes).

As a CD tool, Spinnaker standardizes cloud infrastructure actions, such as provisioning and management, encapsulating a lot of best practices developed through years of continuously delivering software at Netflix, Google, Box and other companies. It’s a mature and feature-rich product that acts as a point of integration for other tools enabling CD.

Spinnaker also functions as an application-centric control plane, abstracting the details of cloud platforms that are not relevant to developers and organizing cloud resources around applications. Infrastructure and security teams can focus on building in the right defaults and traceability into how Spinnaker provisions these resources. In the end, all applications are deployed in a consistent, secure way.

Spinnaker provides opinionated building blocks (stages) to do common actions and allow deployment pipelines to be assembled as needed. A central team can create a “golden path to production pipeline” that an application team can adopt and customize to their needs.

CI/CD Dream Team to Multi-Cloud Production Deployments

Integrations with Spinnaker and CI systems provide a migration path to CD for deployment pipelines. While most CI servers enable deployment to any target platform and could be seen as part of a CD solution, Spinnaker leverages its deep integration with cloud provider metadata, providing more context for deployments and CD.

Spinnaker complements traditional CI—by picking up where it leaves off—with complex, rule-driven, cloud-provider-integrated, high-volume deployments. Spinnaker adds CD pipeline workflows to support more advanced rollout, mechanisms like parallel deployments, conditional deployments, time window restrictions, and application canary deployments. Spinnaker’s templated pipelines also give engineering teams the flexibility to use their preferred CI tool of choice to establish their build / test automation, while separating out the CD concerns into Spinnaker’s delivery pipelines and monitoring tools.

Concourse and other CI systems typically are not built with native support for cloud abstractions, stateful awareness of the pipeline or deep integrations with cloud provider metadata, which limits their ability to support CD without customization. The Spinnaker integration with PCF and your CI solution of choice will provide a more robust path to production and CD for cloud-native application architectures—particularly across multiple cloud infrastructures.

Spinnaker & Cloud Foundry: What’s New?

So, what’s new with the Spinnaker and Cloud Foundry integration? The new Cloud Foundry driver for Spinnaker now supports:

  • PCF 2.x
  • Manifest based deployments
  • Blue/Green deployments
  • Multiple foundations view of applications deployed across them
  • Application management actions such as scale, enable/disable, destroy and rollback
  • New pipeline stage to deploy/destroy services
  • Bind applications to services as part of deploy stages

Additional resources:

Previous
Path to Production: Value Stream Mapping in a DevOps World
Path to Production: Value Stream Mapping in a DevOps World

SpringOne Platform 2018 Path to Production: Value Stream Mapping in a DevOps World Jamie O'Meara & Ben Kamy...

Next
Nov 28 - Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker Webinar
Nov 28 - Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker Webinar