The Importance of a Fluid CI/CD Pipeline
May 23, 2019 by Armory
When you’re handling enterprise-scale deployments, having a flexible, extensible and target-agnostic pipeline is critical to managing the complexity in modern application architectures while preserving your ability to innovate at least as quickly as the competition.
In Spinnaker, a Cloud Provider refers to more than just the public cloud providers like Google or Amazon Web Services. Instead, Cloud Providers are the environment you plan to deploy to. This can be a public cloud provider’s direct Infrastructure as a Service, like GCP or AWS. It can also be a Platform as a Service, like App Engines or a container orchestrator like Kubernetes. The ability to use one pipeline tool to deploy to a variety of environments is a major benefit of using Spinnaker.
First of all, this feature facilitates a multi-cloud strategy. Not every company needs to have a mutli-cloud or hybrid cloud deployment, but especially at scale the ability to keep the multi-cloud option open is critical. If you rely on proprietary cloud service tools from Google or AWS, you won’t be able to manage applications that span multiple public clouds. This limits your ability to choose the best cloud provider for the job, based on either functionality or geography. It can also lead to vendor lock-in, leaving you tied to a specific cloud provider and hostage to price increases.
When it comes to managing a real-life enterprise application, the ability to deploy directly to IaaS or to PaaS or Kubernetes makes it possible to manage applications that are a hybrid of container-based systems on Kubernetes and legacy applications.
Spinnaker can provide a single pane of glass for entire applications, not just all the parts of an application that are deployed on Kubernetes or that are deployed on AWS. Instead of juggling multiple pipeline applications, each one for parts of the application that are deployed to different targets, Spinnaker lets you manage everything in one place.
The Spinnaker community includes experts in all of the target environments you might want to deploy on, including teams from Google, AWS, Microsoft and teams with Kubernetes expertise. This makes it possible for Spinnaker to stay target agnostic without falling in to a jack-of-all-trades, master-of-none quandary.
The widespread support for Spinnaker means that Google’s team, for example, is a part of the open-source community working to continuously improve Spinnaker’s functionality. The specifics of how to make Spinnaker work seamlessly when deploying to Google Compute Engine aren’t done by a team of engineers trying to reverse-engineer how GCE works—it’s done by internal experts with inside knowledge and unmatched ability to make things work on Google’s infrastructure. The same goes for Amazon, Azure and all the other Cloud Providers.
Your pipeline tool is one of the most development tools, especially in the context of complex containerized applications. Keeping your pipeline flexible and able to adapt to different target environments and different application structures is critical to maintaining the speed you need to keep innovating and stay ahead of the competition. It’s the only way to take advantage of the best environment for each workload without creating an impossible management situation. With Spinnaker, it’s possible to both keep your options open while still getting the best-of-breed option for each target environment.