Of course some products and markets have been able to make the support model work, like RedHat.
But it is very hard to pull off and I think it used to be easier in the past when companies where very worried about support and licensing. Nowadays they are much more comfortable with open source.
What we are seeing is that companies that pay for our premium support tend to cancel that after the first year because they didn't need it.
We want to make a product that is easy to install and maintain. This reduces the demand for support. There is a incentive for companies selling support to be a bit less aggressive documenting everything.
An open core model needs a very careful balance between being a good steward of the project and the need for revenue. We documented what we learned so far on https://about.gitlab.com/about/#stewardship and keep our ears open on forums like these.
We've had conversations with board members at most of the major open source companies (eg: large and private or public)
and the consensus has been that you need a lot of components for the support contract to work.
One difference we've found for example that seems to work pretty well is providing support for deep learning models. Each "model" solves a problem like "face detection" "cat finder" "fraud detection" and we charge for the platform used each time for each model. This reflects the amount of work we do for customers but also provides an SLA for deep learning they might not otherwise have.
Source control has a wider user base and tends to favor an easy to install integrated experience.
Machine learning applications tend to have fewer people who know how to build them but they are just as critical for the business.
Eg: points of accuracy in a model can directly map to revenue or profits. That's easy to explain to an enterprise customer.
So despite the smaller potential user base "data scientists" in this case, we've found it fairly easy to go to market.
One thing I think people miss is that the bulk of open source infrastructure companies
tend to be devops or operating systems with lots of moving parts.
They don't tend to be applications or machine learning.
I think what a lot of us are finding is that you have to innovate on the business model itself in order to really capture value for both your user and the customer as well as your startup.
Another thing to think about: If your open source support is good enough, they may not pay for your support offering either.