Commercial open source makes money through open source. A favoured model is Open Core. With Open Core there's an upgrade path designed for a subset of users to become paying customers.
Open core software is funded by a company and the business model requires an paying customers. This means there will often be paid-for closed-source add-ons available for the open source product or a paid-for hosted version.
With Open Core, the open source part of the software is free to use. If a particular use case doesn't require any paid-for add-ons, then there’s no need to pay anything. If it does, then users face a choice of whether to buy the add-on or fill the gap themselves. The mix of how much functionality is open and how much is a paid add-on can vary a lot across tools.
(Image from Joseph Jacks.)
Often add-ons are targeted at high volume use cases. It’s common for enterprise add-ons to relate to permissions, security and monitoring at scale. The idea is that companies with smaller usage requirements can get started for free and move to paying only when they’re deriving a lot of value from the product.
The open core model can lead to confusion for users about whether and when their use case might lead into becoming a paying customer. Especially if the vendor is not clear about the boundary between the free and paid. When the differentiation is clear then the prospect of paying for the product later down the line usually doesn't put users off the open source.
Some companies confine their enterprise offering to hosted services. This means keeping the open source free for self-installation, while also offering the exact same functionality as a hosted service.
Some companies charge only for support and services around self-installed open source. In this model the open source and paid functionality is the same. Red Hat, the largest open source vendor, believes strongly in only charging for services and support. Hence we sometimes see criticisms from Red Hatters of the open core model.
My personal opinion is that the open core model can be good for everyone so long as it's done well. But we don't need to get into that debate here. The most important point on Open Core for developers is to be conscious of potential paid upgrade paths when evaluating Open Core tools.