Kubernetes is a topic that is frequently discussed in the development community, especially as the IT landscape increasingly shifts towards cloud and microservices. However, it’s crucial to evaluate whether it is genuinely indispensable for your environment or just another case of the next 'new and shiny' object capturing attention without substantial benefits. In this blog, we’ll delve into the reasons why Kubernetes might sometimes fall victim to the hype and explore whether it is the right fit for all scenarios.
The standard description of Kubernetes defines it as an open-source container orchestration system for automating application deployment, scaling, and management. Kubernetes operates with containers, the successors to Virtual Machines (VMs), providing more efficient resource utilization on your hardware infrastructure. It therefore addresses the need of managing computing and networking resources to deploy large amounts of containers across multiple hosts. The core function of Kubernetes then, is for managing massive workloads deployed as container clusters.
For a lot of companies, developer resources are limited, resulting in a constant need to focus developer time on delivering business value rather than managing complex tools like Kubernetes. For most such companies, Kubernetes is an overkill as the application at hand is nowhere near one that can take full advantage of all that Kubernetes has to offer. In such cases, the cost of managing Kubernetes far outweighs whatever perceived benefit it brings. From an economic perspective, such companies would do well spending their limited resources on their core business proposition.
Payara Cloud — our managed cloud platform — is aimed specifically at providing managed runtime Jakarta EE and Eclipse MicroProfile applications. If those are the kind of applications that are being developed in your company, then utilizing Payara Cloud would be a more suitable option than Kubernetes.
As an example, the following are roughly the steps you need to perform to deploy Kubernetes cluster hosting Jakarta EE applications:
- Install Kubernetes cluster - either manually or use managed solution from a cloud provider.
- Provision appropriate user accounts and permissions for your developers.
- Provision appropriate network ingress controller and load balancers to allow external access to your application.
- Provision and configure a container registry to store your application images.
- Provision appropriate monitoring and logging solutions to monitor your application.
- Prepare your application to be deployed as a container image.
- Create appropriate Kubernetes manifests to deploy your application — Deployment, Service, Ingress, ConfigMaps, Secrets, etc.
- Incorporate previous two steps into your build process.
None of above steps are necessary to do, and to learn about, if you are using Payara Cloud. If your applications are Jakarta EE Web Applications and are configured mostly with MicroProfile Config then your current build output can be directly deployed to Payara Cloud and accessible over network with few clicks.
Log collection and elementary metric collection is also available, and access of team members to the applications can be managed through Payara Cloud’s user management (Coming January 2024).
There are of course other services that offer other container orchestration solutions, such as AWS ECS, Azure Container Instances, or Google Cloud Run. Yet these still require you to re-package your application as a container image and figure out the configuration and monitoring options.
Kubernetes proves invaluable when dealing with numerous containers and requiring automation for their seamless orchestration. However, for smaller businesses with a more focused scope, the adoption of Kubernetes may not be necessary or suitable. Several tools, including Payara Cloud, offer the benefits of Kubernetes without the steep learning curve.
But do not take my word for it, sign up for a free Payara Cloud trial and see for yourself.