The growth of Kubernetes has been phenomenal. It’s grown from an open-source project used and promoted by a few cloud-native developers to a popular choice for automating and scaling container deployments, fuelled in greater part by the shift of application workloads to containers.
What exactly is Kubernetes?
Kubernetes (also known as k8s or “kube”) is an open-source orchestration tool for containers and does not cost any money to download, set up, and run in-house. Almost tempting enough to want to set it up yourself, isn’t it? But doing it yourself – or DIY Kubernetes option – in reality, is not as simple a platform to use as you may think. Here we present two options – DIY Kubernetes and Managed Kubernetes – each with their advantages and challenges.
DIY Kubernetes
A DIY approach to Kubernetes can be taken up through a range of different distributions, including both lightweight distributions and distributions intended for full-scale production use. It can be deployed on-premises or on cloud-based infrastructure, where you would provision and manage the clusters yourself. If K8s is deployed on-prem it will be done as a “Minikube”, which is a utility used to run Kubernetes on your local machine.
But because approaches to DIY Kubernetes vary, the amount of effort that deployment requires also varies. Though Kubernetes is an open-source platform, it is not very user-friendly. Also, finding reliable platform support is difficult. If you already know Kubernetes well and have experimented with smallish clusters running in local environments, you may have the expertise to pull off a DIY installation.
But if you have a multi-cluster environment with dozens of servers or more DIY Kubernetes may not be practical. Kubernetes at an enterprise level can be complicated to deploy and that in turn may reduce productivity.
However, if your requirement is only for a small number of clusters to be deployed, the cost-benefit trade-off is often worthwhile with a DIY K8s approach.
Managed Kubernetes
Managed K8s services – which refer to the management of the K8s platform and not the application or containers being developed and hosted – allow for containerized applications to be deployed and managed in a production-grade environment more easily.
Managed Kubernetes is naturally more expensive but it is often worth it in the long run simply because most of it is automated. Also, there is the technical support that comes with more automation and support for hosting, maintenance, infrastructure configuration, and so on.
While some cloud service providers offer basic levels of monitoring, there are others that offer technical support services or custom infrastructure setup, automatic provisioning of clusters, and so on, so choose your managed Kubernetes service provider according to your needs.
Security concerns too can be taken care of with managed Kubernetes and may not be possible with the DIY option. When creating clusters, enterprises need to consider aspects like resource groups, authentication and security-based policy controls, which can prove challenging if one lacks experience in setting up K8 or expertise in automating clusters or using various scripting languages like Terraform.
So on the whole, a Managed K8s approach tends to be advantageous for more complex, enterprise-grade deployments.
Is it worth doing it yourself?
- Is your team experienced with K8s? It is not an easy service to work with for novices.
- Are you working on a lightweight or production-grade distribution?
- Do you need hand-holding? Do you prefer to be able to call someone for support or are you comfortable figuring out/looking up the answers for yourself?
Kubernetes already includes an impressive set of features, including scalability, detached credential configuration, self-recovery, workload management and batch execution, and progressive application deployment, but they require significant manual configuration.
Managed solutions take care of much of this configuration for you, or at least guide you through the decision-making process.
There’s a wide range of processes, tools, and value-adds that you can use while implementing managed Kubernetes services. Do consult CloudNow before getting started on your next containerized application development project.