Traditionally, there has been a conceptual divide in the IT industry between so-called Web-scale companies like Google, Facebook and Netflix, and everyone else. The Web-scale giants had the resources to build infrastructures that could scale without limit, deploy software updates thousands of times per day and achieve enormous agility.
Meanwhile, everyone else was stuck with infrastructures and environments that were difficult to scale quickly or update constantly. To them, “continuous” deployment meant deploying a few times a week. Scaling up meant tediously standing up and configuring new servers. Reacting to a change in the market required months of development effort.
Thanks to Kubernetes, however, the playing field is being leveled. Kubernetes is making it possible for every company to be a Web-scale company. That’s true not only because of the technical benefits Kubernetes enables (although they’re part of the equation), but also because of the cultural transformation that companies can achieve when they migrate to a Kubernetes-based infrastructure strategy.
Here’s a look at how Kubernetes empowers every organization to achieve the benefits that were once available only to Web-scale companies.
Kubernetes as an Enabler of Web-Scale Infrastructure
Traditionally, unless you were a company like Google, you didn’t have a highly-scalable or flexible infrastructure.
Sure, you could take advantage of solutions like the public cloud to make your infrastructure resources easily scalable. But management of those resources remained a bottleneck. IaaS architectures let you spin up as many virtual machines or storage as you want, relatively easily. But you still have to provision them, deploy applications to them, load-balance the applications and so on.
All of that that takes time using conventional tools. Infrastructure as Code (IaC) can help with the provisioning part. But it doesn’t get you to thousands of app deployments per day, or ensure that traffic is distributed appropriately between your various servers, or restart your apps when they crash.
Kubernetes, however, changes the game because it fully automates both infrastructure allocation and software deployment and management. Once you create a Kubernetes cluster, you can consume as little or as much of the hardware resources in it as you need, on-demand. If you want more servers, you can join them to your cluster with ease. If you want to segment your environment for different workloads, you can define namespaces in a few seconds.
Likewise, you can deploy as many applications or updates as you want, without having to manage each deployment manually or configure load-balancing. Nor do you have to worry about finding and restarting failed apps. Kubernetes handles all of that for you.
From a technical perspective, this is how Kubernetes unlocks Web-scale efficiency for companies of any type and size. Whether you have a half-dozen servers and apps to manage, or several thousand, Kubernetes lets you automate both your infrastructure and your software deployments. It does so in a way that was previously out of reach, except for companies that could afford to build expensive, bespoke solutions – like Borg, the orchestration tool that Google used internally starting in the 2000s; and that, incidentally, laid the foundation for Kubernetes.
Kubernetes and Cultural Change
It’s not only technical advantages that Kubernetes brings to companies of all types. In several ways, Kubernetes also drives critical cultural changes that make IT teams and developers more efficient and productive.
One cultural change that emerges from the embrace of Kubernetes is a commitment to using code to drive all technical processes.
In Kubernetes, everything is code. You configure your infrastructure with code. You deploy applications with code. You manage authentication and authorization with code.
The cultural value of code-based everything is that it eliminates black boxes and facilitates transparent communication. When all of your IT assets can be managed using code, you minimize the risk of something being overlooked, or knowledge of a certain process belonging only to key employees.
Openness by design
Not only is Kubernetes itself open source, but there is a flourishing ecosystem of tools surrounding it that are also open source and built on open standards.
This means that, when you adopt Kubernetes, you are adopting a technology that is open by design. In this way, Kubernetes encourages further transparency and interoperability between technologies. This is done while minimizing the risk of siloed teams that are wed to their own proprietary technologies, unable to interact due to the closed nature of the various tools on which they rely.
Agility and speed
The technical advantages that Kubernetes offers for making software deployments fast and scalable reinforces the same values within your IT culture at large.
When you measure the time between new deployments in minutes instead of days, it becomes much easier for developers to become responsive to business needs, even if those needs change constantly. Gone are the days of saying, “We could write this, but by the time we push it into production it’ll be irrelevant.”
If you follow conversations about IT culture or best practices, you hear a lot about the importance of continuous improvement – the idea that you should always strive to make things better, even if they are good already.
That sounds nice, but it can be hard to embrace continuous improvement as a cultural paradigm when your technologies themselves do not continuously improve in significant ways. This, by the way, is the case for many proprietary platforms that have established so much market dominance via lock-in that they long ago ceased to improve consistently.
But with Kubernetes, you get new releases, multiple times per year – not to mention constant updates to other tools and services within the Kubernetes ecosystem, whether they’re logging solutions, security tools or deployment tools.
When you know that your technology is always becoming better, it’s easier to commit to making your processes constantly better, too – which is what continuous improvement is all about.
In ways both technical and culturally, Kubernetes allows any company to embrace the paradigms that were once available only to elite tech giants.
This isn’t to say that simply adopting Kubernetes will give you a Google-level IT operation or development team overnight. But it will break down many of the barriers that have traditionally separated Web-scale organizations from the rest. In the age of Kubernetes, everyone gets to operate at the scale of the Web.
- Kicking off your Kubernetes Implementation Project Successfully [Webinar 1 Recap] - September 16, 2020
- Kubernetes: Do It Yourself (DIY) or Do IT Together (DOT)? - September 4, 2020
- 6 Key Concepts to Master for a Successful Kubernetes Implementation [Intro to Webinar Series] - September 2, 2020