We are nearing the twenty-year anniversary of the Halloween documents, and in this context, I find myself routinely answering the same question: why is Azure so important for Linux and Microsoft? Why is it such a big deal?What's this EEE that old people keep talking about?
Let me start by saying a little about the Halloween documents, for those of you who, thank God, never had to run xf86config.
In the autumn of 1998, an internal memorandum from Microsoft was leaked by an anonymous source inside the company. The memo detailed Microsoft's fears regarding competition from open source software in the server space (notably, the desktop was not seen as a threat, and it turns out Microsoft's analysis on this matter is still correct even twenty years afterwards), and outlined a strategy for combating this threat.
The strategy notably included:
- Extending open protocols to "de-commoditize" them (i.e. deliberately create incompatibility, or make protocols useless without the proprietary ecosystem around them). This is the middle E of the EEE: the other two are "Embrace" (i.e. adopt the previously commoditized protocols), and Extinguish, which is obvious.
- Motivating OSS users and developers to switch by relaxing some of the barriers to entry (e.g. expensive development tools), hiring the best OSS developers, or publishing some of the less IP-encumbered code (steps which you might recognize in the "new Microsoft", too).
- Strengthen integration and servicing (a broad term which, for Microsoft, also included things like documentation)
This attitude was easy to picture in terms of "good vs. evil". The Internet never forgets:
What about Azure? There is a critical and remarkably far-reaching piece of wisdom in the Halloween documents, which I am going to quote not because I see it as some evidence of a Great Conspiracy in Redmond, but because I find it absolutely amazing that the same company who managed to mess up a simple Search feature simultaneously had the clarity of thought to articulate this:
Middleware control is critical. Obviously, as servers and their protocols risk commoditization higher order functionality is necessary to preserve margins in the server OS business.
Twenty years ago, though they would not yet call it by this name, Microsoft understood that the long-term risk to their business laid in parts of it being absorbed (and commoditized) by cloud computing. Commodity servers and protocols is actually a good, unpretentious definition of cloud computing.
Azure is Microsoft's response to this trend, and what is indeed refreshing to see is that Microsoft is no longer swimming against the current.
Why is Linux so relevant to Azure? There are two spaces where Linux is relevant today, and they are at the opposite ends of the computer size spectrum: servers and embedded systems. Arguably, HPC is not quite one or the other, and it is a large market, but it's also one that has historically been fairly closed to Windows, for many reasons.
"Servers" and "cloud" are overlapping to a higher and higher degree every day. There are plenty of large companies for whom they are not, but that is a market which is strictly divided between people that Microsoft has already won, and people who Microsoft will never win. It makes little sense to struggle to grab a shrinking market.
As for the embedded devices, the ones that really make money today also depend on a cloud at the other end of the line. It's also a space that depends heavily on customization and branding (which Microsoft has been struggling to provide viable solutions for since the days of Windows CE), and on which there is a very significant pressure to reduce prices.
Realistically, of all the ways to make money from embedded systems, being a cloud provider is likely the most profitable one, short of being a reseller. Developing the operating system is the least profitable of them; in fact, commercial vendors in this space have either moved to include Linux in their portfolio, or continue to (barely) subsist on heavily-regulated fields that require expensive certifications.
Microsoft is (admirably, I believe) making the best they can out of a bad situation, and doing what they do best: follow the money. And credit should be given where it's due; Azure is pretty solid.
Is this relevant to Linux in any way? Frankly, I doubt it is, or rather, I doubt it brings anything new to this space. The commoditizing of operating systems, the shift of focus from professional desktops to the consumer space, and the downward pressure on systems and infrastructure prices is nothing new. Azure is a manifestation of these trends. It's only remarkable because it comes from Microsoft, the same company that, historically, would not have touched (or admitted to touching) Linux with a ten-foot pole.
Most of the burden of Linux development is carried by other companies, and a large proportion of the revenue that their investment generates flows into Microsoft's pockets.
The worst that can happen is that, sooner or later, some of the larger companies in the Linux server space might figure out this investment may not be the most profitable affair.
Who knows, maybe then is when we will literally see a product called Microsoft Linux...