If you haven’t heard of FAANG, then you might know them by their household names: Facebook, Apple, Amazon, Netflix and Google. Together, they make up the collection of companies that routinely outpace the S&P 500. What is the secret to the excellent market performance of these companies?
In a September 17, 2018, blog from Forrester titled “Stay Ahead Of Your Customers With Continuous Delivery,” James Staten and Jeffrey Hammond (Vice Presidents and Principal Analysts at Forrester) correlate the success of Amazon, Netflix, and Google, in particular, to their ability to rapidly create customer value through continuous delivery:
“Continuous delivery means being prepared for fast incremental delivery of your conclusions about what new values and innovations will work best for your customers. And you must be prepared to be wrong and respond fast with incremental iterations to improve the alignment based on customer feedback.”
But I’m Not Like Netflix, You Say
Reaching the development and delivery models of a Netflix or Google might seem impossible for many enterprises today. After all, a Netflix doesn’t have the same concerns and level of risk as a bank, right?
But the reality we’ve seen at Pivotal is that large enterprise companies, including those in heavily regulated industries like finance and healthcare, are transforming their application development and delivery leveraging cloud-native approaches. For example, Cerner, an electronic medical records (EMR) company, transformed its infrastructure and application delivery to be more competitive using Pivotal Cloud Foundry (PCF) and Concourse.
Before the introduction of PCF, Cerner had already made strides to modernize its development processes, but it was “still stuck delivering new software to production once or twice a year. New features reached code completion, but then just sat in a staging environment until the next release.” It’s not uncommon for companies to adopt agile development practices but still lack the infrastructure, processes or tools to overcome the inertia of traditional release practices. That ability to continuously deliver value to your customers is still one of the larger transformation hurdles for enterprises today.
Don’t Let the Value of Your Code Depreciate
Continuous delivery was born as an extension to agile methods. After all, if you can’t get your code changes to your customers fast enough to provide value and get timely feedback, then why be agile in the first place? As one of Pivotal’s customers, CSAA Insurance, stated in a presentation at Cloud Foundry Summit: “Un-deployed code is at best a depreciating asset.”
For every minute that you delay getting your code to production, the value of that asset decreases. And the risk of deploying to production actually increases at the same time. In fact, deploying small, constant changes to production reduces your risk and makes it easier to find issues if something does go wrong.
What does the ideal continuous delivery process look like then? It kicks off with code commit and continuous integration (CI) to get code built and tested. CI is typically a first area of automation that companies tackle on their path to continuous delivery—you could even say it’s a required first step.
At this stage, developers make sure their code is always at a quality level that is safe for release. By leveraging a development environment that is at parity with your production environment, you reduce the variability in application behavior as it progresses through the pipeline.
An automated hand-off from the CI process initiates a continuous delivery workflow. Here, speed must work hand and hand with safety and stability to deliver your applications to a production environment. This workflow may trigger jobs like security and compliance checks, or any other testing, before moving to production, where you’ll leverage automated deployment strategies like blue/green and canary deployments to reduce risk.
But that’s not the end for continuous delivery. It continues with the operation of the application in production where you can monitor for issues, remediate security vulnerabilities, and test your apps for resiliency. Basically, you are extending the feedback loops through production, which enables continuous improvement of your application.
Mastering Continuous Delivery with Spinnaker
If you’re ready to tackle the challenges of continuous delivery, why not build on the discoveries of the masters? Netflix invented Spinnaker to help it extend and enhance cloud deployments for its high-performance organization. These days, Spinnaker is a powerful open source, multi-cloud continuous delivery solution that helps teams release software changes with high velocity and confidence. It works with all major cloud platforms and enjoys broad support from the open source community:
In Spinnaker, Google saw a solution that “embodied many of our first principles for safe, frequent and reliable releases.” Google worked with Netflix to open source the tool and continues to advance the project, including collaborating on the advanced automated canary analysis feature and adding a new tool called halyard that makes it easier to deploy Spinnaker itself.
Amazon has also recently contributed to the Spinnaker open source project. You can now deploy Spinnaker on Amazon Elastic Container Service for Kubernetes (Amazon EKS).
The Spinnaker community is vibrant and growing, ensuring that key learnings from these organizations continue to be shared through tool enhancements.
5 Reasons to Use Spinnaker for Cloud Deployments
Spinnaker can become a key part of any modern engineering team by extending your CI processes into automated, opinionated continuous delivery pipelines optimized for the cloud.
Continuous delivery pipeline where CI hands off an artifact for Spinnaker to deploy, executing integration tests and other custom actions, and providing an up-to-date view of all applications in production.
Here are five reasons that Spinnaker is useful for high-performance teams for cloud deployments:
Optimization for multi-cloud infrastructure. Spinnaker enables you to decouple the release pipeline from target cloud providers so that you can deploy the same application in the same way to multiple clouds and platform instances. This simplifies and standardizes deployments across multiple stages, teams and applications. Spinnaker also leverages the immutable infrastructure of the cloud to deploy in new environments every time an application change happens.
Zero downtime deployments. Spinnaker automates sophisticated deployment strategies out of the box that help to reduce risk at production, like blue/green and canary deployments with easy rollbacks if issues occur. It can also manage progressive deployments (e.g., by time zones).
Application inventory. Spinnaker maintains inventory of where applications and their instances are deployed across multiple environments, IaaS and runtimes—enabling continued feedback in production. It is built by querying cloud providers and is even available for applications not deployed by Spinnaker. This level of oversight shows the health of applications and allows you to take corrective actions, such as restarting a failing application or rolling it back. The inventory can also be used by other tools, like for finding security vulnerabilities in deployed code or troubleshooting issues in production.
Pipeline compliance and auditability: Spinnaker keeps an audit trail of all changes to applications and infrastructure—basically answering who, what, when and why for developers, operators, and auditors. It also supports role-based access control, providing multiple authentication and authorization options, including OAuth, SAML, LDAP, X.509 certs, GitHub teams, Azure groups or Google Groups. You can even track manual intervention and approval gates.
Extensibility with integrations. Spinnaker supports a broad ecosystem of modern tools, which enables an automated CD pipeline and advanced functions. You can extend your existing CI investments (e.g., Jenkins, Travis CI, Wercker, Concourse) to add advanced deployment strategies. You can send notifications through Slack, HipChat, email, and so on. You can enhance your application monitoring through integrations with Datadog, Prometheus, Stackdriver, etc. Plus, Spinnaker is cloud-provider-agnostic. The upshot is that Spinnaker can work with your current and future tech stack.
While the FAANG group may stand out as masters of continuous delivery to the cloud, it’s a capability that any team in any industry can adapt for their environments.
First, take the infrastructure out of the delivery risk equation with a cloud platform like PCF, making it dead simple for developers to deliver value-add code on stable, secure clouds. Then, a tool like Spinnaker can help teams manage continuous delivery in a safe, scalable way. It’s not about navigating oppressive change management processes on a long path to production. Rather, it’s about leveraging a fully automated, standard, stable delivery pipeline built for the cloud and designed to optimize the cycle time for getting feedback.
Want to learn more and see Spinnaker in action? Check out our webcast: Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker.
About the AuthorMore Content by Patricia Johnson