Linux turned twenty-five years old last month. In the age of Infrastructure-as-a-Service (IaaS), you may be wondering “who cares?”
After all, IaaS has made operating systems relatively irrelevant from the user’s perspective. Consumers don’t care what the underlying software stack is composed of. The only thing that matters to them is that their services run successfully in the cloud.
Yet the Linux anniversary is still worth thinking about. Putting aside the fact that the Linux kernel powers many of the servers on which IaaS services are built, there are also some crucial lessons from Linux’s early days that apply to IaaS providers.
That’s because, in order to become successful for the mass enterprise market, Linux in the 1990s had to solve many of the same challenges that IaaS companies face today. Here’s a look at what the IaaS market can learn from the early days of Linux.
Challenge 1: Taming a complex ecosystem
Since 1991, anyone has been able to download, build and install the Linux kernel for free.
To be usable for the enterprise, however, the Linux kernel had to be packaged with a host of other programs and utilities developed by other people, according to different release schedules.
One of the innovations of early Linux companies like SUSE and Red Hat was finding ways to orchestrate the complex open source ecosystem. They took code from hundreds of different projects and forged it together into a single product. That delivered a great deal of value to consumers, since it saved them from having to put all of the parts together themselves to build a Linux system.
IaaS providers face the same challenge. Their stacks are built using multiple different components, from the underlying OS to the virtualization layer to application platforms like OpenStack and Docker. To succeed, IaaS companies need to do a better job of combining those components than users could do on their own. Otherwise, users lack a strong incentive to use IaaS and will be more likely to stick with traditional infrastructure.
Challenge 2: Guaranteeing reliability
Linux is given away for free. Yet companies make millions of dollars selling Linux support. That’s partly because of the convenience of using a ready-made Linux distribution. But it’s also because users are willing to pay quite a bit to guarantee that their products will work reliably.
Iaas providers need to be able to make the same guarantees. This might seem obvious, but in an era when there is a never-ending stream of headlines about DDoS attacks, data losses and other gaps in cloud services, the point can’t be stressed enough. To be attractive to consumers, IaaS needs not just to be easier than on-premise computing, but also more reliable.
Challenge 3: Improving shaky products
Linux was pretty rough around the edges when it started to become popular with enterprises in the 1990s.
The companies that succeeded in selling Linux realized that, to make the Linux market commercially viable, they needed to invest in upstream technologies in order to smooth over Linux’s edges. They had to contribute their own code and tools. It wasn’t enough just to package together various third-party products to build an enterprise-ready Linux distribution.
IaaS companies are learning a similar lesson. Take OpenStack, for example. There’s a long list of OpenStack distributions out there. Only a handful of the companies behind them are actually contributing significantly to OpenStack development. The rest simply take code written by others, package it up and call it OpenStack. Some of them then use it as the basis for IaaS offerings. But without investing in OpenStack themselves, they’re not assuring that OpenStack continues to get better and increase in value to consumers.
Challenge 4: Embracing openness
Open source is so popular today that it can be easy to forget just how strange open source business models seemed to most people back in the 1990s. Selling products based on code that was given away for free felt like a big risk to traditional software companies.
A big hurdle for Linux companies to overcome was the temptation of being proprietary. In the 1990s, it would have seemed only natural to the average executive to take an open source product like Linux, bundle it with a bunch of proprietary stuff and then sell it to users to lock them in.
Some companies tried that. They failed. The ones that are still around today adopted policies of open sourcing their own tools, ensuring portability between their platforms and those of their competitors.
IaaS companies should heed this lesson. Yes, the IaaS model changes the calculus of code ownership and lock-in; when everything runs in the cloud, it may seem less important to users for programs to be open source.
Yet users really don’t like lock-in, or anything that smells like it. IaaS providers who use open platforms like OpenStack or Docker as the basis of their offerings, but make proprietary modifications or add tools that limit portability, will not win with consumers.
Twenty-five years from now, users will probably be taking IaaS for granted in the same way that they take Linux for granted today. The IaaS companies that are still around at that point will be the ones that have learned the same lessons as successful Linux companies.
Putting together an IaaS offering may seem simple, but doing it successfully requires controlling a lot of complexity while guaranteeing reliability and avoiding the temptation to be proprietary.