The journey to business agility must travel the road of agile execution. It may be tempting to look at existing software infrastructure and declare it “good enough” for needed business results – but staying the course (i.e. doing nothing) often only compounds existing business problems. Trying a “do it yourself” approach to implement new open-source software with its overhead and complexity often leads to frustration. Instead, understanding the value of employing the right partner to “do it together” via a fully managed service can significantly lower complexity and simplify deployment and administration.
The open source ecosystem is more vibrant than ever. Name a pain-point that you could only address with proprietary software a decade ago, and there’s a good chance that a mature open source alternative now exists. Instead of relying on commercial virtual machines (VM), you can use KVM. Instead of commercial container orchestration tools, you have Kubernetes. Instead of proprietary public cloud, you can build your own, more flexible private cloud with OpenStack. You can even build a telco infrastructure using platforms like OPNFV.
For modern companies, these solutions create rich opportunities. But they also present two steep challenges. The first is overcoming your inertia in order to move to an open source solution in the first place. The second is managing your open source stack once you have it set up.
Here’s a look at why and how to tackle these challenges in order to modernize your infrastructure. To contextualize the discussion, we’ll focus on Kubernetes in particular, although these lessons also mostly apply to any journey that involves replacing legacy, proprietary solutions with open source alternatives.
“Good enough” is still broken
Anyone who has paid any attention whatsoever to the evolution of the software industry over the past decade knows that open source has now fully come into its own. But this doesn’t mean that everyone is flocking to modern, open source solutions.
Instead, many teams continue to struggle to take the initiative. The solutions they currently have in place are good enough – not perfect, but they get the job done. Why, they wonder, should they invest time and effort implementing something new when their current solution works well enough?
To a degree, that perspective is understandable. There’s something to be said for the old mantra that “if it ain’t broke, don’t fix it.”
But on the other hand, a system that is merely “good enough” is effectively broken if a better alternative exists. And over time, that brokenness will turn into a problem.
To put this in real-world terms, consider the following scenario: Today you run your infrastructure using a proprietary virtual machine platform that you set up fifteen years ago. It still works perfectly fine. But it is subject to various inefficiencies as compared to Kubernetes:
- Resource overhead: Your VMs have a 10 percent overhead cost in terms of system resource consumption; whereas with containers, you would have an overhead of only about 2 percent. This means that, by switching to containers, you could increase your overall hosting capacity by 8 percent without having to buy new hardware. Plus, any servers you add in the future will give you more bang for your buck.
- Financial cost: You pay licensing fees for the proprietary platform. Even if they are only 10 percent higher than what it would cost you in staff time and support costs to run Kubernetes, that figure compounds over time. If you spend a million dollars a year on your current platform, you’ll waste a million over the next ten years due to the added costs.
- Agility: Scaling workloads up or down, migrating them between hosts and redeploying new versions is much easier when they are containerized and running on Kubernetes as compared to VMs. Your current platform, therefore, wastes a little bit of your team’s time whenever they have to perform a maintenance or management task that would be faster to complete on Kubernetes.
- Reliability: Kubernetes is purpose-built to keep workloads available even under adverse conditions. VM orchestrators may try to do the same thing, but they lack the advanced load-balancing and auto-failover capabilities of Kubernetes. Plus, VMs are just not as agile as containers, which makes it harder to react quickly when one goes down. For these reasons, you pay a cost in terms of availability and uptime with your current infrastructure.
Admittedly, all of the costs described above are relatively small. It’s not as if, by switching to Kubernetes, you would cut your IT budget in half overnight, or triple the hosting capacity of your infrastructure. Still, over time, the small inefficiencies of VMs add up.
And that’s the point here: If you decide whether to upgrade to a modern platform or not by measuring how much you’ll gain in the short term versus how much effort it will take to upgrade, you’ll probably end up concluding that your current solution is “good enough.” But if you think long-term, you realize that you are paying technical debt on your current solution, and that that debt compounds over time – especially given that Kubernetes is always adding features and becoming more powerful, which cannot be said of most legacy proprietary platforms.
This is how you should be thinking in order to get over the hurdle separating you from modernization. Don’t settle for good enough when a better solution is available.
The Pitfalls of “Doing It Yourself”
When teams are able to overcome the inertia and begin implementing an open source solution like Kubernetes, many fall into a second trap: They take a “do it yourself” approach, which leads them to frustration and may even cause them to doubt whether they made the right decision about modernization in the first place.
It’s easy to make this mistake, especially if you don’t appreciate how open source platforms like Kubernetes are different from open source solutions that have been around much longer. If you want to install a Linux distribution like Ubuntu yourself, for example, it’s not particularly hard. The installation tools are very user-friendly, and there is a vibrant support community available. The same is true of older open source tools, like Apache HTTP or MySQL.
But platforms like Kubernetes are a different beast. They have had less time to mature, and to say that they lack user-friendliness would be a huge understatement. It is also much harder to find reliable support for these platforms within the open source community, especially if you are experiencing a strange bug or quirk that, due to the newness of the platform, has yet to be investigated extensively by anyone.
Thus, teams that imagine that installing Kubernetes (to say nothing of managing it over the long term) is just as easy as installing Ubuntu, are in for a shock. Maybe in thirty years’ time that will be true, but it’s not going to be for the foreseeable future.
“Doing It Together”
That doesn’t mean you can’t enjoy the benefits of a platform like Kubernetes without driving yourself mad, however. There’s an alternative to doing it yourself: Doing it together.
Doing it together means working with a partner who handles the complexity of your modern open source platform for you. It means having access to tools that simplify administration and deployment. Instead of drowning in YAML in order to spin up a cluster or deploy a pod, for example, you can work with a partner who gives you graphical tools to accomplish these tasks.
Likewise, doing it together means letting your partner worry about keeping your open source platform up to date and staying abreast of the latest security advisories. Instead of wasting time on these requirements, you can focus on building and deploying apps in order to minimize time to market. You can also reduce staffing costs because you need fewer engineers to manage the infrastructure.
Platform9 is a partner who specializes in the “doing it together” approach to open source. By offering Kubernetes as a fully managed service, Platform9 makes it feasible to move beyond your “good enough” legacy platform and take full advantage of open source – all while avoiding the headache that comes with modern open source platforms.
Platform9 wrote an eBook that tells a very short story of what may have been your Kubernetes journey (so far) and its challenges. It concludes with a happy ending — for all its complexity, with a little help, deploying and maintaining Kubernetes for your microservices applications can be a quick and painless process.
The eBook story includes:
- Hello, Kubernetes! Getting started …
- Waking up to a brand-new ecosystem of apps and skills
- Hiring and retaining k8s Ops talent
- Quickly transition from DIY to getting-it-done
- … and much more!
Download the eBook here: https://platform9.com/resource/diy-kubernetes-harder-than-you-thought/
- Getting to know Nate Conger: A candid conversation - June 12, 2023
- Platform9 at the Edge Computing Expo North America 2023 - May 8, 2023
- Argo CD vs Tekton vs Jenkins X: Finding the Right GitOps Tooling - March 1, 2023