Kubernetes is the world’s most popular way to run containerized applications. It is so popular in fact – second only to Linux among open source projects – that rival container orchestration systems have become effectively irrelevant. Kubernetes is popular for numerous reasons, not least its power to scale seamlessly and heal itself automatically. Above all, however, there is its ubiquity. Kubernetes has become the de facto infrastructure for the cloud native world.
Nevertheless, there are still decisions to be made. Choosing to use Kubernetes will likely be your first. Then things get a little more complex – for the simple reason that Kubernetes can be as complex as it is powerful. For many organizations, a managed solution might be the best way to proceed.
Key benefits of managed Kubernetes
By opting for a managed Kubernetes solution, you can eliminate much of the complexity associated with deploying and operating cloud native applications. For organizations that lack the skills or IT infrastructure, managed Kubernetes may be the only option. Even if you have the skills available in house, a managed solution could mean your investment qualifies as OPEX rather than CAPEX.
1. Spin up a cluster in minutes
From developers’ laptops to on-premise infrastructure and public clouds, you can deploy a cluster anywhere in minutes with the right managed Kubernetes service. All behind-the-scenes configuration is taken care of by the vendor, so you can rest assured that the code running on your development machines will run just as well in the cloud.
2. Eliminate operations overhead
With a vendor taking care of all maintenance, you can forget about the ongoing issues involved in keeping your Kubernetes cluster operating scalably and up to date. Managed Kubernetes offerings abstract the complexity behind production-ready best practices, including patching, node upgrades and horizontal scalability. In the unlikely event that anything serious goes wrong, you’ve got a support contract and a number to call.
3. Allow developers to focus on development
Your developers should be free to focus on delivering value for your business – not sitting on calls with your ops teams, troubleshooting problems. With the right managed Kubernetes solution, you can give them a self-service platform, complete with guardrails that give them the freedom to experiment without breaking things.
4. Adapt to the changing needs of your users
Customer habits can change quickly. One of the benefits of cloud native software is the ability it gives you to deploy updates and new features without taking things offline. The cloud also gives you the ability to scale quickly, in response to a spike in demand. A managed Kubernetes solution makes this dream a reality, without the operational overhead necessary to maintain your own infrastructure.
How does managed Kubernetes work?
There are numerous options when considering a managed Kubernetes platform – sometimes referred to as Kubernetes as a service (or simply K8s service). As is so often the case in technology, the choice you ultimately make will depend on your business needs. For many organizations considering a managed Kubernetes platform, one of the major public cloud providers will suffice.
Amazon Web Services (AWS), Google Cloud Platform and Microsoft’s Azure all offer the option to run workloads on Kubernetes, managed or otherwise. These services typically enable you to pay for your infrastructure on a per-hour basis, whether you are billed for the clusters themselves or just your usage of the compute nodes on which they run.
Once up and running, you will upload your own applications. The level of support available for your application (rather than just the infrastructure beneath it) will vary by vendor and the level of subscription you choose.
Amazon Web Services
Amazon’s managed Kubernetes service is called EKS. It combines the benefits of a managed Kubernetes solution with access to popular Kubernetes services such as CloudWatch and RDS. Choose EKS and the Kubernetes control plane will be managed and maintained by Amazon.
Google Cloud Platform
Kubernetes originated at Google so for many, running Kubernetes on Google Cloud Platform will seem like the obvious choice. Google’s managed Kubernetes service is called Google Kubernetes Engine (GKE). It is an easy way to deploy and scale Kubernetes, while benefiting from interoperability with other Google tooling – and as such is considered by many a turnkey Kubernetes solution.
Microsoft offers Azure Kubernetes Service (AKS) for its public cloud, Azure. Like Amazon’s EKS, it eliminates much of the heavy lifting involved in configuring Kubernetes, while providing access to many of its own services – a rich ecosystem covering everything from search to load balancing.
Managed Kubernetes features
Ongoing management of Kubernetes
The vendor should ensure that your Kubernetes infrastructure is fully supported at all times – and that includes ensuring that all appropriate updates and security patches are applied.
To simplify deployment and management of your applications, managed Kubernetes platforms typically provide access to a browser-based console, though vendors will differ in the degree to which they will allow ‘under the hood’ access.
An ecosystem of applications
Kubernetes is an open source product with numerous distributions (different versions packaged with different non-essential components). Every managed Kubernetes vendor will offer at least one, accompanied by a range of compatible applications that can be plugged in easily – usually via the browser-based console.
Virtually limitless scalability
Kubernetes was designed to make containerized applications easier to run at massive scale – but if you run it on your own infrastructure, you will still be bound by the limits of your owned computing resource. A managed Kubernetes service will make it easy to scale your applications almost indefinitely, bringing additional clusters online as required.
Hybrid cloud management
The most important feature in many cases is that you don’t own the infrastructure – so you can scale indefinitely and you’re not responsible for maintenance or disaster recovery. Nevertheless, some managed offerings go further than simply offering you space on a public cloud. For organizations in need of a hybrid cloud strategy, some vendors will support managed Kubernetes services on both their own infrastructure and yours, enabling you to move workloads seamlessly between the two. This can be particularly useful if you need to keep some data on your own premises to ensure regulatory compliance, or if demand for your applications is subject to peaks and troughs in demand.
Management of your CI/CD pipeline
Many managed Kubernetes services will offer all of the above features. Yet clearly there is more to managing a cloud native application than paying a vendor to manage Kubernetes. A key requirement throughout the life of your application will be the delivery of ongoing updates, bug fixes and new features. Known as continuous delivery, this practice requires a carefully designed pipeline that maximises the speed at which your developers can deliver, without compromising the security or stability of your application. While there are numerous continuous delivery approaches now in the market, GitOps has emerged as one of the most effective ways to manage Kubernetes applications. By storing configuration information and access policies in the same version control repository that holds the application code, it builds on the automation features of Kubernetes to make management of the pipeline much easier – all while boosting availability and compliance.
Learning more about GitOps and managed Kubernetes
If you think managed Kubernetes and GitOps could be the right combination for your organization, you can learn more and contact us at weave.works.
For a primer on the benefits of Kubernetes, take a look at our white paper, Implementing a Kubernetes Strategy in Your Organization.
For more detailed information on Kubernetes and GitOps, take a look at the following resources:
To learn more about getting up and running on specific public clouds, please consult the following articles:
If you’re ready to start your Kubernetes journey now, please contact us today.