Architecture Series Part III: Innovating Kubernetes
In today’s increasingly centralized cloud computing market, there are two rising forces for decentralization. Kubernetes and blockchain combine the flexibility to use any hardware effectively with the ability to provide and price it fairly and transparently, creating a new cloud marketplace that could change everything.
But how did we get here, and what exactly are these technologies? Let’s take a look at where they came from and why they could be the next big thing for the cloud.
Commercializing and containerizing
Over the last decade, cloud services have become the *de facto* solution to just about any web-enabled software that needs to scale up to thousands or millions of users. As the number and size of web apps and services increased, it stopped making sense to run your own servers when a secure, powerful alternative was offered for a very attractive price by the likes of Amazon, IBM, or Microsoft.
As these companies grew their operations, it became a battle not just for volume but for efficiency. Say Amazon is putting 100 new servers online every day and Microsoft only does 80 — but if Microsoft can run 50 percent more jobs on those servers, they come out ahead. And as efficiency is largely a software problem, it meant it could be solved with code.
One of those solutions is Kubernetes, which is a way of setting up and running what are called *containers.* Normally servers would run several “virtual machines,” basically minimalistic operating systems running side by side on the same hardware, so they could run several jobs at once in isolated computing environments.
Containers take this idea one step further, subdividing the virtual space into even smaller sections that don’t require their own OS to be running. They provide nearly all the benefits of having VMs, but without the drawback of thousands of instances of Linux or Windows eating up resources.
Kubernetes is the Greek word for “Helmsman,” since it’s sort of like the head of the ship, directing which resources go where, when to add new containers and when to take them down. As an open-source project, it attracted an incredible amount of attention from developers all over the world who saw the potential of its approach.
So what if it’s last year’s model?
One of the things that’s attractive about Kubernetes is that it can be used on many different kinds of servers and hardware. Old or new, top-shelf or bargain bin, Kubernetes can assess its capabilities and use it to the best of its ability.
Of course, this is useful for lots of reasons, but a big one is that it lowers the bar for entry into the cloud services market. Here’s why.
As cloud providers like those mentioned above became the obvious solution, they began to dominate a landscape that was once filled with dozens of smaller, regional or specialized players. This centralization has gotten to the point where the cloud services market is almost totally split between a handful of big providers.
As so often happens in the software and online world, the market rushed towards oligopoly as those with big leads offered services and prices that simply can’t be matched by those they’d left behind.
Kubernetes may be an opportunity to change that. Small providers with a miscellany of aging hardware can activate it and offer a modern cloud hosting service that acts very much like that of the competition but at an even lower price commensurate with the lower cost of the hardware.
The question is, how can this be made into a true marketplace and not just a hundred small providers fighting over the scraps of the big providers? That’s where blockchain comes in.
The term blockchain encompasses a huge variety of new and evolving technologies, but they all share the same DNA: a shared, immutable online ledger that allows data to be stored and exchanged securely and publicly.
In the case of something like Bitcoin, that means that users can send and receive the digital currency, and that exchange is witnessed and recorded by everyone else who uses it. But what about the cloud services market?
What’s needed in order to get those small providers up to the level of Microsoft and IBM is a single shared platform where they can offer their capabilities to customers. But that platform needs to be open and transparent to prevent manipulation, automated to the extent that it can respond to shifts in demand and pricing, but reliable enough that both providers and customers can buy and sell with confidence.
Blockchain technology offers all these things by making sure that each company on the platform lists its available capacity and the associated fees and other measures on a shared public ledger visible to other stakeholders.
One way to set it up, as Akash has done for its marketplace along these lines, is to have a “token,” like Bitcoin but with no monetary value, that represents the services a company offers. If they have 10 teraflops of computing power and a gigabit connection, that is represented by a certain number and type of tokens.
These are tracked by the platform so that it knows exactly how much capacity is available at any time and where. A reverse auction process where providers bid what they’re willing to set their price at for a certain customer sets the price — and there’s no take-backs or race to the bottom since it’s all on the record, available for everyone to see on the ledger.
In this way, a platform with a hundred small providers may actually be able to compete with the cloud superpowers, by combining their resources into a bloc that provides just as good a service (thanks to Kubernetes) with reliable and transparent pricing (thanks to blockchain) that may be well below what the others offer.
The internet was built as a decentralized system, but markets tend towards centralization because that’s where the profits are. When it’s gone too far, however, decentralizing tech reasserts itself, as is the case here. The world is rich in scattered resources and people looking for a way to make use of them — Kubernetes and blockchain could make that happen in a big way and build the next generation of the cloud.