While the concept of Cloud Native architectures has taken off in the past few years, there is a new trend emerging. In an effort to get every possible workload moved to the cloud, the major vendors need to keep introducing more and more services. According a study by Cloud Pegboard in January 2020, the top cloud vendors have the following number of services:
Here is a diagram just of how many blog posts have been written for AWS:
The advantages of an elastic cloud come with quite a few challenges at scale. The more you deploy into the cloud, the more you want to take advantage of their unique services. And suddenly after enough releases you end up with an architecture that can only be run in the cloud and frequently only in a single cloud vendor. Perhaps you are happy with the lock-in because you can get better pricing at scale and can have your operations team focused on a single vendor.
But what if you’re not happy with the lock-in?
Kubernetes introduces a new path. Instead of customizing your architecture to use the cloud services, take the best of those services and run them in your own Kubernetes clusters. For the trivial examples of a load balancer, you can actually write an entire application that will work with multiple load balancers by only changing a single setting. Here is a screenshot from the Kubernetes 1.18 documentation about how to customize your load balancer setting for your cloud provider:
This new path could perhaps be called Kubernetes Native (first occurrence of this term I found from a Medium Blog in May 2019). While there is a fairly steep learning curve to Kubernetes, it’s actually not terribly different than running a similarly complex application in the cloud. There are tons of online resources to learn Kubernetes, a vibrant community, active slack channel and much more. Here is a snapshot of the resources available from the CNCF 2019 Survey:
At Speedscale we believe the Kubernetes Native architecture will be growing over time. This doesn’t mean that Cloud Native is going away, in fact this is just a special form of Cloud Native applications. And as this fragmentation happens in the marketplace, there will be opportunities for projects that help you run applications in Kubernetes better / faster / cheaper.
Stay tuned for more from Speedscale, where we help teams deploy quality applications faster.