Open source software is usually free of cost. So how do open source developers and companies make money? Here's a look at different open source business models, and examples of companies and organizations that have successfully endorsed them.
The Freemium Model
Freemium pricing models, in which companies build an open source product and allow free use of the code but charge for a value-added, enterprise-ready implementation of the same product, are one of the most popular open source business models today. MongoDB and ownCloud are examples.
This approach to monetizing open source code has the advantage of being simple and straightforward for both companies and users. On the other hand, companies run the risk of being accused of dumbing-down the free version of their software in order to push users toward the enterprise edition.
The VAR Approach: Redistributing Open Source Code
Taking open source code written elsewhere and selling it in value-added form is probably the most popular open source business model today. That's what Talend does with Hadoop and other open source big data products, for example. Mirantis and lots of other vendors do it with OpenStack, for another.
This is different from the freemium model discussed above because in these cases, the companies that redistribute an open source program are not the only ones who develop it (although they often contribute). That makes it a little harder to sell customers on a company's special expertise regarding a particular open source code base. But the model seems to work well enough.
Offering support services for open source software is another obvious way to monetize a product that is given away for free. This is what many of the big GNU/Linux companies, like Red Hat and Canonical, primarily do to make money. (Cygnus Solutions, which launched in 1989 to provide support for GNU software and merged with Red Hat a decade later, was the first company to show that selling support for free software could be a viable business practice.)
The support approach works well as long as the product you support is sufficiently important and complicated enough for other businesses to be willing to pay you to guarantee that it will work for them.
It's less practical for open source software that is not widely used in production, however (which is why it is only recently that open source companies have introduced commercial support for new container technology, for example). That creates a sort of chicken-and-egg problem: The commercial value of the software in question has to be proven in production environments before customers will pay for commercial support in the same environments.
But this has not stopped Red Hat, which is probably the commercial open source world's biggest success story, from becoming a billion-dollar company by selling support for GNU/Linux and related open source software.
Asking for donations to support open source software development is an obvious way to make some money, but it probably doesn't seem like a practical solution for a large-scale software project today. And it's not. I can't think of any major open source project that relies heavily on donations currently.
Historically, however, donors' money could amount to more than pocket change. Richard Stallman's GNU project depended largely on monetary donations in the 1980s and 1990s, for example, a time period during which it was enormously successful in churning out code. By the later 1980s companies such as Hewlett-Packard were giving GNU donations on the order of $100,000. That was a considerable sum for GNU, whose annual operating budget in its early years was around $25,000.
GNU also made money by selling copies of its software on disk. Depending on what version users chose to purchase, the cost could be as high as $5,000. Since the GNU software was also readily and legally available free of charge over the Internet, the disk-based distribution program essentially amounted to a donation fund. It was a nice way to support GNU development, especially for people who could purchase GNU software with their employer's budgets.
Building a Foundation
Several of the biggest open source projects thrive today because they are supported by foundations that collect money from industry partners and use it to fund development. This is what the Linux Foundation and the OpenStack Foundation do.
This method works well for big, important open source projects because it brings in corporate money without requiring developers to work directly for corporations. True, someone can always say that corporations wield too much influence over the foundations, of course, which happened earlier this year with VMware and the Linux Foundation. But such complaints have not become serious obstacles for the large open source foundations.
The foundation approach is much less useful for smaller open source projects, however. Unless your open source platform is helping deep-pocketed companies to make millions of dollars, as Linux and OpenStack do, they're not likely to sign up to support your foundation.