Standardization is a tool for efficiency: standard formats, dates, language, and metrics. Scientists agreed to use the metric system because it facilitates easy understanding of numbers and measurements across the globe. Organizations and companies should, with few exceptions, make standardization a best practice: whether it is files, mind-sets, or the tools they use.
This brings us to the deployment tool that companies are testing out for their cloud deployments: Kubernetes. It does everything it’s supposed to do well - but Kubernetes is just one tool among several. At small to mid-size companies, it’s possible for Kubernetes to be a standard, but at large enterprises with multiple business units and thousands of engineers, the diversity of technical needs across teams becomes so large that it’s difficult to standardize on one deployment platform.
Even if a huge enterprise adopts Kubernetes at scale, the organization will still have a need for traditional AMI-based deployments. For example, if 80% of your company’s deployments standardize on Kubernetes, some parts of your organization will utilize their own deployments methods for case-specific reasons, which ends up introducing inconsistencies with organization-level standardization.
Additionally, as clouds mature, we expect to see specialization, not commoditization. Application teams across large organizations will want to deploy their workloads to specific clouds-- and specific functions within those clouds-- to take advantage of those specializations. Some application teams may want to leverage the least latent cloud, or the cheapest cloud, or the cloud with the best Machine Learning capabilities, etc. When your company has teams deploying across different cloud platforms, it becomes even more important to have a company-wide standardized deployment tool to reduce friction so the teams only have to choose the best tool for the job instead of being tempted to use the tools they're most familiar with.
That’s not to say that we don’t believe Kubernetes will be massively adopted - we simply don’t see Kubernetes becoming the only tool in an organization’s arsenal. This will inevitably introduce inconsistencies into how a company operates without an orchestration layer like Spinnaker.
Furthermore, we’ve seen Amazon’s EC2 Container Service (ECS) rising in popularity and usage within the past twelve months, making it a viable alternative to Kubernetes - especially in larger organizations that may choose to adopt both across disparate teams.
That’s why Spinnaker is powerful. Spinnaker is the deployment orchestration platform with integrations into every major deployment target — supported natively by cloud providers like Google and Microsoft — enabling an organization to actually standardize on a single deployment platform and solve the needs of all of your engineers without their having to completely learn a different platform and UI for each project. If the product calls for a different deployment target, the engineers simply tell Spinnaker to run it on that target. This mass standardization on Spinnaker is like an organization agreeing to use the metric system and only English for all business-related comings and goings; it introduces efficiency.
We’ve previously covered with two Google engineers the perfect blend of Spinnaker on top of Kubernetes, an integration that Google has devoted engineers and time to. We’ve also covered how to deploy Kubernetes with Spinnaker, if you would like to learn how to automate your Kubernetes deployments.