I wanted to post some quick thoughts and insight. Over the past couple of weeks, there has been a couple of very interesting developments in open source I wanted to talk about.
First, there was Redis Labs announcing changes to their licensing by adding a commons clause to their license for some of their products. The added language is designed to limit other companies from making money off of these products (whether that money is made from selling software, services, or XaaS). The reason Redis Labs gave was completely aimed at cloud providers:
“Cloud providers have been taking advantage of the open source community for years by selling (for hundreds of millions of dollars) cloud services based on open source code they didn’t develop (e.g., Docker, Spark, Hadoop, Redis, Elasticsearch and others). This discourages the community from investing in developing open source code, because any potential benefit goes to cloud providers rather than the code developer or their sponsor.” – Yiftach Shoolman
Before I talk about the impact of the cloud, I want to talk a little about open source licensing models. Redis Labs isn’t the only company to experiment with new models. It was only a couple of years ago that MariaDB came out with the BSL license for their MaxScale product. At the time Monty Widenius said that this was a way to help fund and accelerate new feature development.
Open Source Licensing:
The issue that has always plagued the open source vendors is you are always competing against free. For large companies the pull towards not paying and going free only gets stronger the more stable and feature-rich your open source product gets. Early on companies will pay to help push development and get the product to a stable point. Once that point is reached, then those same early promoters start to question the value of further investments ( which leads to churn ). The problem is in order to support and maintain the code enterprises wanted and to continue to develop new compelling features you need that revenue.
This problem has existed for a long time, as have solutions to curb the impact of these problems. I remember the first week when I was at MySQL (Back in 2007). There was a huge debate on the all company email distribution list on the morality and ethical nature of going “Open Core”. Open Core refers to the idea that the basic core software is open source. Additional enterprise features and tools are available only to paying subscribers. Everyone can use the essential features, but enterprises who need specific enterprise features and tools have to subscribe. This model was used very successfully at MySQL and has been replicated by countless other open source companies.
Another popular model that open source companies have been successful at deploying to generate revenue is hosting their software as a SaaS offering. While these are the two most popular models, they are not the only models. You can read more about additional models over at this article on Opensource.com or by watching this video from Percona live 2017: The Open Source Database Business Model is Under Siege by Paul Dix.
Why not use a standard model?
Both Redis Labs and MariaDB are looking for new models that may work better within the current landscape. Why don’t these companies go Open Core? Or SaaS? I can only speculate this has a lot to do with the core versions of the software they derive from ( and the history ).
MariaDB, for instance, is a fork of MySQL. It maintains a lot of the same underlying code which is GPL V2 whose IP is owned by Oracle. Changing the licensing to create an enterprise version would be nearly impossible. Hence the new licensing coming from the tools instead. Redis is a bit more complicated. Core Redis is licensed under their very permissive BSD license, while the Redis Lab Modules are all AGPL. I wonder if there is regret in picking the original licensing scheme? It is hard to change licenses after these have been in the wild for so long. Of course another factor is for some in the open source community “Open Core” is a blasphemy and a real enemy of truly free software.
The Impact of the Cloud on Traditional Software:
I don’t want to get into the debate on whether new “sort of” open source licensing is good or bad for the community ( there are plenty of posts out there debating that). As I said before, this problem has been around for a while. Now, however, things are different. Redis Labs hit the nail on the head by calling out the impact of the cloud and companies needing to evolve their business models. Traditional software companies in the past five years have undergone massive changes. Stalwarts of the tech space shift from on-prem software to cloud-based on XaaS models. Adobe has moved to the creative cloud. Microsoft has been pivoting to Azure. IBM is investing more and more in cloud-based services. Oracle has gone all in on the cloud etc. This massive shift changes the market dynamics while both opening and closing opportunities for companies to make their mark.
AWS, Azure, and Google Cloud want to own as much of the infrastructure as possible. They want to enable developers and companies not to have to think as hard on the underlying infrastructure. Additionally, they are helping to turn infrastructure software into cheap replaceable commodities. Finally, they want to let companies focus on generating new content, new applications, and new revenue and not focus on maintaining the infrastructure. These are actually powerful messages and speak to many traditional companies. But this change has put traditional software and infrastructure companies (and their distribution models) are under immense pressure to evolve or risk getting bulldozed as the new cloud normal is built.
The change in licensing by Redis Labs seems to support the challenges that database companies and others in the infrastructure space have in dealing with the impact of cloud vendors. That impact is causing vendors to innovate and change focus. MongoDB did a great job seeing this and pivoting to meet it. Over the past few years, they have expanded their portfolio and put a massive focus on their own DBaaS (Atlas) and their value-added subscriber only tooling.
Other companies have hedged their bets that while dealing with the cloud is a new reality; they can stake a claim that not all workloads or companies want to put everything in the cloud. Many larger companies are rolling their own cloud environments. Technologies like OpenStack, Vmware, Kubernetes, and Mesos make deploying cloud-like automation easier. You see more and more traditional software companies embracing these technologies as alternatives or in conjunction with offerings in the public cloud.
However, I think that the market will have to innovate again very soon.
The Cloud to On-Premise:
For years cloud vendors like AWS focused on their own hosted cloud services. This left others to develop and own the on-premise space. All cloud vendors devote a fair amount of time and effort convincing people to migrate to the cloud. The reality is however that many companies can not or will not fully move to the cloud. Maybe cloud vendors finally realize that.
This past week Amazon announced that they are bringing RDS into the data center by offering RDS for on-prem Vmware deployments. There are not a ton of details yet, but this seems like it is a rather huge shift for AWS. If they continue to cross over into managing on-premise workloads and infrastructure, this has massive market implications. Will this be limited to RDS? What about Aurora? Will other services make their way to on-premise? What would be the impact if suddenly you could manage your own fleet of servers and your public servers from a single pane of glass?
What does this mean to the OSS and database community?
It depends on the details, ultimately how its rolled out, and what else could be coming to hybrid and on-prem. There are a lot of questions we don’t know the answer too. I will try and keep this high level and non-specific until we know more. I think this will open up new options for consumers. I see this move spurring more innovation in the long run, not less. However, I will admit it will also muddy the waters for those choosing what to install. In the end it as its yet another choice when deploying ( for instance do you use MySQL Community? Percona Server? MariaDB? MySQL Enterprise? MySQL on RDS? MariaDB On RDS? MySQL on Kubernetes? HA by InnoDB Cluster? PXC? Galera? or RDS? ). More options is never a bad thing but it can be paralyzing if there is no standard.
I think for vendors this is a mixed bag. As I mentioned above it opens up new opportunities for some, and for others, it may get bumpy. Those companies have already seen problems with business being lost to cloud providers, this could accelerate that problem. Bottom line is the cloud has already fundamentally changed the technology world, and that change is nowhere near done. You are going to see companies innovate, change strategies, and new industries pop up. Recent licensing changes by open source companies are just another part of that change and evolution. If AWS is moving into running on-prem infrastructure, you should be ready for an even faster changes and accelerated evolutionary cycle.