Open Source as a business

How to make money, or at least keep your project funded, while not selling something

GNU

Whenever Richard Stallman gives a talk, he auctions off a stuffed gnu. The going rate is usually close to $100 (rms might get more if he were able to accept credit cards). Proceeds go to the Free Software Foundation (FSF).

How else do they make money? Well, there's shop.fsf.org: they sell

They also accept donations. They raised $1,234,697 in FY 2017. But I don't think much if any of that went towards software developers.

Strictly speaking, gnu.org is a subsidiary of the FSF. From the help page, it appears that they mostly seek volunteer developers. In the past, some paid devs were hired, eg to work on gcc.


Linux

Unlike GNU, the majority of Linux development is by paid developers, usually employed at a software company and given some release time to work on Linux. Benefits to the company include general goodwill, and also solutions to specific Linux issues.

The Linux Foundation coordinates work on many specific Linux projects, including Kubernetes, OpenDaylight, and a bunch more listed at wikipedia.org/wiki/Linux_Foundation#Linux_Foundation_Projects. In FY 2017, the Linux Foundation took in over $61 million, mostly in "Program Services".

As for the kernel itself, see the Linux Kernel Report for 2017, in particular "Who Is Doing The Work" on p 11. This document does not include budget numbers, but it does make it clear that most devs are working for other companies, and are not paid by the Linux Foundation. Linus Torvalds is paid by the Linux Foundation. There is a rumor that his annual salary is $10 million, but my guess is that the Linux Foundation pays only a part of that; the rest is in speaking fees.


Apache HTTPd

The Apache httpd server grew out of the NCSA httpd server. It serves up almost 40% of all websites worldwide. Work started in 1995.

The Apache Software Foundation was created in 1999 to provide ownership of the project. A member of the ASF is "a person who was nominated by current members and elected due to merit for the evolution and progress of the foundation." Technical project decisions are made by the individual project-management committees (HTTPd is one Apache project of many.)

Most code contributions come from volunteers, with a few corporate code contributions.

The ASF does considerable fundraising, especially through corporate sponsorships. The ASF annual budget is in the neighborhood of $1 million.

As for the name, here is a quote from one of the creators (Brian Behlendorf):

The name literally came out of the blue. I wish I could say that it was something fantastic, but it was out of the blue. I put it on a page and then a few months later when this project started, I pointed people to this page and said: "Hey, what do you think of that idea?" ... Someone said they liked the name and that it was a really good pun. And I was like, "A pun? What do you mean?" He said, "Well, we're building a server out of a bunch of software patches, right? So it's a patchy Web server." I went, "Oh, all right." ... When I thought of the name, no. It just sort of connotated: "Take no prisoners. Be kind of aggressive and kick some ass."


MySQL

MySQL is licensed under the GNU GPL version 2.

The initial developers, David Axmark, Allan Larsson and Monty Widenius, created the company MySQL AB (aktiebolag, "stock company") to host their product. The first release was in 1995. The early MySQL was fast (provided complex interacting transactions weren't at stake), but was slow to introduce standard features. B-tree indexes and subqueries did not appear until 2004.

Here's an interview with the MySQL CEO, Marten Mikos, in 2006: innoq.com/blog/st/2006/08/how-does-mysql-make-money (the full interview post is now lost). The interview starts off "We start by not making money at all— but by making users". Uh huh. But then:

Then we sell an enterprise offering to those who need to scale and cannot afford to fail. The enterprise offering consists of certified binaries, updates and upgrades, automated DBA services, 7x24 error resolution, etc. You pay by service level and the number of servers.

The MySQL director of marketing said in 2004 (wired.com/2004/02/mysql-profits-from-open-source)

Customers who don't want to share their code can buy a commercial license for about $500 per database server. This price, McKendrick notes, compares with a cost of several thousand dollars per server that companies typically pay the major commercial vendors.

Prices were lower in 2004! But these statements pretty clearly lay out the business model of MySQL AB: to sell support and an upgrade path, and to offer commercial (non-GPL) licenses. The open-source nature of MySQL was deliberately chosen to increase "mind share"; this strategy was very successful.

In order for MySQL AB to be able to offer dual licensing, it was legally essential that they actually owned rights to all the code. This is usually achieved by requiring code contributors to sign "contributor agreements".

In 2008, Sun Microsystems bought MySQL AB, supposedly for around $1 billion. In 2010, Oracle bought Sun. As of 2015, Oracle made money from MySQL via:

This is similar to the MySQL AB strategy, though the Enterprise Edition has diverged a little further from the base MySQL. To find out more about the Enterprise Edition, go to mysql.com. At first glance, there is no indication that any flavor of MySQL is an open-source project! But there are lots of highly visible links to the Enterprise Edition. If you go to the Downloads page, there are listed

Only the last one is free. In other words, Oracle has created a well-defined upgrade path from free-MySQL to Oracle's commercial offerings.

Every sufficiently complex web page needs a database. MySQL is very popular for those. Transaction performance almost never matters! (though MySQL transaction performance has become reasonable in the last few years). Website DBs are not candidates for upgrade to a commercial version; website DBs generally don't need much beyond a key-value store. However, MySQL gets its foot in the door, so to speak, by being free, and a fair number of serious corporate applications have been developed on MySQL. These are candidates for Upgrade.

Oracle has also done things like delayed the release of various features to the open MySQL (the "community edition"). On the other hand, they did fold the InnoDB engine into MySQL shortly after acquisition (much better performance, and finally introducing support for foreign-key constraints), and they've also slowly been improving transaction support.

Oracle has full ownership of all MySQL contributions, because contributors have to sign "contributor agreements", which, among other things, assign copyright ownership of the contributions to Oracle. Because of this, Oracle can license MySQL outside the GPL. (Oracle could also withdraw the GPL-licensed version, though this seems unlikely.)

Monty Widenius forked MySQL to MariaDB immediately following the Oracle acquisition. But mostly MariaDB has languished; most users of MySQL have been happy enough with Oracle's ownership.


Postgres

Postgres ("post-Ingres") began at UC Berkeley in 1985 under the direction of Michael Stonebraker. The first release was in 1989. The Berkeley project ended in 1994, and the project was released as open source. PostgreSQL has its own license, similar to the MIT license. The Postgres community then adopted the project.The Postgres project also receives extensive code contributions from private companies (eg EDB, below).

There are not one but several associated foundations; donations are accepted:

There is also EnterpriseDB corporation (EDB). They sell the EDB Postgres Platform, which can run locally or in the cloud. And they contribute significantly to postgresql.org. They:

A fuller list of devs is at postgresql.org/community/contributors.

While EnterpriseDB has been very supportive of Postgres, it appears not to have been started by the Postgres development group. It is a private company started to make money selling Postgres add-ons. An analogy might be if Oracle had never bought MySQL, but simply started offering MySQL Enterprise. One reason EDB can do this is that Postgres was never licensed under the GPL; there is no giveback requirement.

There is also Percona, a consulting company which sells support for multiple open-source databases, but which, historically, has been most closely associated with Postgres. But, as with EDB, Percona was not founded by the Postgres group.

Citus Data is a company that offers Citus, an open-source extension to Postgres, providing high-quality support to "horizontal" scaling (eg having lots of users). Again, when Citus Data makes money, Postgres does not.

The original developer of Postgres, Michael Stonebraker, did create, in the early 1990s, a company to commercialize Postgres, named Illustra. Illustra offered several object-oriented extensions to Postgres. Illustra was sold to Informix in 1996, and its features were folded into the Informix database product line. As part of the sale, Stonebraker became Chief Technology Officer of Informix. Stonebraker left in 2000, and in 2001 the DB division of Informix (most of the company) was sold to IBM.


MongoDB

MongoDB started out in 2007 named 10gen, with the goal of developing a platform-as-a-service business. MongoDB (the name derives from "humongous") was developed to be the supporting database underlying the platform-as-a-service model. But by 2009 10gen decided to focus on MongoDB itself, offering it under an open-source license. Shortly thereafter, MongoDB Enterprise was introduced as a subscription service. In 2013, the company name was changed to MongoDB.

MongoDB was licensed under the Affero GPL version 3, until October 2018, when it switched to its own Server-Side Public License. The central clause of the SSPL is this:

If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.

My guess is that "mak[ing] the functionality of the program ... available to third parties" is intended not to include allowing end-users to interact with a MongoDB database; that would not make available the "functionality" of MongoDB.

MongoDB offers an upgrade path: to the MongoDB Enterprise Advanced Edition. This includes backup tools (often an extra-cost DB add-on), a cloud-management tool, other tools, support, consulting and training. And, most of all, freedom from the SSPL requirements! The Enterprise edition is available more as a service than a license; users pay a monthly fee.

MongoDB did not support ACID transactions (translation: it did not support reliable transactions) until 2018. Better late than never.

In the first quarter of 2019, MongoDB announced that revenue had soared. The stock price went up 18%. The catch: losses per share were only $0.17, half of what had been expected. So they're still not profitable.

There is a theory that, by using the AGPL/SSPL, MongoDB escaped the plight of MySQL, which was widely pre-installed on cloud nodes by AWS and Azure. My own guess is that, if MySQL had been AGPL-licensed, cloud users would simply be offered a stock installation. The AGPL requires source-code publication only when changes are made. It is not clear what changes Amazon or Microsoft allegedly made to MySQL; maybe none.

Google

See here for Google's business model with Android, and here for Google's business model with Chrome/Chromium.

Signal

The Signal encrypted-text-messaging app is open source (one of few phone apps that are open-source). Signal also provides a server infrastructure for delivering those messages. The Signal Foundation was created in 2018 to support the development of the Signal app, the delivery infrastructure and the general encouragement of end-to-end-encrypted messaging.

It is not clear how Signal is supported, except by donations.