Ever since Kubernetes was first launched by Google back in 2014, it has gone from strength to strength in terms of popularity. Google Trends data shows the steep, consistent rise in searches for the term; in May 2019 KubeCon + CloudNativeCon saw over 7,700 attendees in Barcelona; there’s even a dedicated Kubernetes workspace on Slack with more than 68,000 members! This increasing popularity among techies and business owners alike, paired with constant coverage in global tech publications, is cementing Kubernetes as the ‘must have’ technology for software companies. But should you be using Kubernetes? Is it really worth it? Let’s take a look.
The Benefits of Kubernetes
Unlike a lot of trends, Kubernetes really does seem to have the benefits to justify the hype. We’ve covered the main benefits in detail in our Kubernetes Beginners’ Guide, but here’s a quick overview of why the tool has so much appeal:
- Reducing costs through efficient resource use
- Portability enables software to run consistently across machines and environments
- Instant scalability means infrastructure can handle increased demand and business growth
- Resilience and high availability through Kubernetes health check, rollback and disaster recovery features.
These features (and the rest) culminate into what is, arguably, the main benefit of Kubernetes – faster time to market. In a nutshell, Kubernetes helps to simplify and increase efficiencies in software development and release.
How much faster is software development with Kubernetes?
Earlier this year, we analysed 4 case studies from companies who were early adopters of Kubernetes. All of them demonstrated these benefits in action in the real world, reporting impressive improvements in time to production/market and to their number of releases.
The exact scale of these improvements varied on a company to company basis. With Capital reporting that they doubled their number of deployments and cut their time to market from 90 days down to just 1 day!
The Downsides of Kubernetes
With results like that, it’s difficult to argue that Kubernetes can’t be a brilliant tool for digital transformation in business. However, looking just at the benefits only tells one side of the story. If you’re seriously looking at investing in Kubernetes, then it’s just as important to consider the potential costs and problems too.
The internet is full of guides on how to install Kubernetes and get a cluster up and running in minutes. It makes it sound easy. Which it is. Well… providing you’ve already taken the steps to redesign any legacy software and applications from a monolithic architecture into microservices and then containerised those microservices. But, if you’ve done all of that and have a degree of technical understanding, then those guides are right. It is possible to install Kubernetes and set up a cluster relatively quickly.
However, simply setting up Kubernetes and actually running Kubernetes in a production environment to take full advantage of its benefits are two completely different undertakings. In order to achieve the latter, here are some of the things you’ll need to consider:
1) You can’t just ‘do Kubernetes’
We’ve alluded to this already, but Kubernetes isn’t an off-the-shelf product that you can just decide to start using one afternoon. In order to make use of Kubernetes, you need to already be working with microservices and containers. Transitioning from a monolithic application hosted on a dedicated server or virtual machine to a containerised workload is a large-scale project. It can involve completely rebuilding your software – if this is a project your company is looking into then Bytemark can help as part of our End-to-End Kubernetes service.
Then, once you are in a position to start introducing Kubernetes there are even more factors to consider. In the same way that you’d customise the specifications when choosing a cloud server, to get the most out of Kubernetes you’ll need to build a custom solution that fits the needs of your company and your software. Many Kubernetes services will set you up with default specs which won’t necessarily work for your business. It isn’t a one size fits all tool.
2) Kubernetes will do as it is told
The beauty of Kubernetes is that it automates tasks which would otherwise need to be completed manually by developers or ops teams. But this automation and the many moving parts within Kubernetes can also cause problems. Expensive problems. This is because, as clever as Kubernetes is, it is still essentially following a user’s instructions.
The cluster operator inputs information about the desired state of the application to the Kubernetes master node via an API. The master node then instructs the worker nodes to carry out tasks which move the application from its current state towards the desired state. If the operator is not a Kubernetes expert and they make a mistake in their instructions, it can result in a huge overprovisioning of resources or even the failure of critical services.
Kubernetes is not the sort of tool you want your teams to be learning as they go. There are more than just a few stories about Kubernetes fails from teams that have tried it. For example, Skyscanner have written about how misunderstanding a single line in a template caused issues for every service receiving traffic through the ingress layer of their cluster.
3) Kubernetes training is expensive and time-consuming
It seems that training would be a good solution to problem 2. If you’ve got Kubernetes experts in-house then you’re less likely to run into problems, right? However, certified Kubernetes training courses start from $300/person, plus another $300 for the exam. The training process is lengthy and the exams have to be retaken periodically to renew the certification. Plus, because Kubernetes is still constantly being developed there’s always more information and features to learn about.
Not only is training a significant upfront investment, but if your development teams are busy retraining in Kubernetes and then operating your clusters then they’ve got less time for development. Considering that the purpose of Kubernetes is to speed up software development, this approach can feel counter-intuitive to many.
So, is Kubernetes worth it?
Yes. If building applications and software is a key part of your business, you’re looking to scale and would benefit from continuous integration.
There’s already evidence of the powerful results Kubernetes can give, helping companies to become industry-leaders and get ahead of their competitors. As adoption of Kubernetes amongst software vendors continues to increase, it may well become a case that companies need a Kubernetes solution to keep up with the industry’s pace.
Whilst there are potential downsides to be aware of, the majority of the issues we’ve covered here come down to companies not having the expertise and resources to manage Kubernetes in-house. What if, instead of having to weigh up the benefits against the costs you could just resolve the costs?
Managed Kubernetes Service
A managed Kubernetes service allows you to take advantage of all the benefits of Kubernetes, while someone else handles the time-consuming, complicated operations side.
Bytemark is now offering a fully managed, end-to-end Kubernetes service. Unlike alternative services, when we say managed we mean managed. Our experts will work closely with you to understand your company’s goals and how Kubernetes can help you to achieve them. Then we can build a custom Kubernetes solution with all the features you need. From application re-architecture to ongoing cluster monitoring, we’re here to help. Learn more and register your interest.
£1,000 free credits are also available for the first 100 eligible registrations.