The fundamental problem I see here is the cloud. We were supposed to have easy self hosted applications and data on cheap always-online hardware. Instead, companies promoted cloud services with the intention of rent seeking through subscriptions.
If you look at the software that went from open source to source available, you'll notice that almost all of them are cloud applications. Why? The companies that created them were hoping to make money through the same subscription model. But then, big cloud players like AWS just outcompeted them using their own software.
Would this have happened if the FOSS ecosystem neglected the cloud hype and gravitated towards self hosting? Perhaps. But not as badly. We still haven't seen enough progress towards self hosting. It's still very hard for regular folks. Genuine efforts like sandstorm didn't find enough momentum. I hope this changes at least now.
I see more and more businesses realizing the trade-off they're actually doing when they give in and get cloud services instead of hosting your own hardware and hiring your own team.
Yes, the up-front overhead cost is much larger, but there's been a lot of fuckups at these big companies recently and a lot more valid reasons for companies to be justifying bringing everything back in-house instead of living in the cloud.
Part of that is the growth of open source cloud applications, so you can still have it all "in the cloud" but that cloud is still owned, operated, and administered by your own team, in a physical location you can access. A lot of the same benefits just with more technical overhead.
The "cloud" was never supposed to be a service for businesses. It was what was offered to consumers, so they could access the kinds of things businesses have, like internet-hosted storage. But the marketing worked too well on middle managers.
How do you suggest self-hosting should be made easier while at the same time making offering the same software as a service harder?
Basically the bits that are hard for people about self-hosting is that you need to learn about concepts you have no previous experience with. This can only be mitigated by abstracting those concepts away to some degree and automating more but those are exactly the same steps that make offering the software as a service easier too.
I have to disagree with both those assertions.
If a software is easy to self host, then there is no need to make it harder to deploy as SaaS. The latter will be irrelevant for most people.
And the problem of self hosting isn't a circular problem as you project it to be. There are architectural changes that can make it positively easier to self host without exposing the sysadmin to needless complexity. The example I quoted before - sandstorm - was a step in this direction. Deploying and administering applications on sandstorm would have been as easy as deploying one on desktop (including cross app integrations). The change needed was to modify the app to work with the sandstorm platform. Unfortunately, the platform didn't gain the momentum needed to ensure that all available apps would be ported. But it shows that the concept is viable.
Self-hosting has some inherent downsides that will never make it so easy that it completely outclasses the competition by cheap mass-hosters hosting the exact same thing for most people. You or I might enjoy fiddling with technical things or keeping our computers running 24/7 or setting up some workaround CGNAT or DualStack Lite so that computer is even reachable from the outside (or even have a physically stationary computer in the first place, lots of people carry laptops around instead or don't even have anything but a phone) but most people would much rather pay someone US$1 a month to do all that stuff for them.
My sincere belief is that the difficulty in self hosting is due to the lack of priority, investment and development, due to the perverse incentives of the SaaS model. I don't think it's a technical problem that cannot be resolved with sufficient work. There are PoCs that prove that it can be made as simple as desktops and mobile phones.
The fundamental problem I see here is the cloud. We were supposed to have easy self hosted applications and data on cheap always-online hardware. Instead, companies promoted cloud services with the intention of rent seeking through subscriptions.
If you look at the software that went from open source to source available, you'll notice that almost all of them are cloud applications. Why? The companies that created them were hoping to make money through the same subscription model. But then, big cloud players like AWS just outcompeted them using their own software.
Would this have happened if the FOSS ecosystem neglected the cloud hype and gravitated towards self hosting? Perhaps. But not as badly. We still haven't seen enough progress towards self hosting. It's still very hard for regular folks. Genuine efforts like sandstorm didn't find enough momentum. I hope this changes at least now.
I see more and more businesses realizing the trade-off they're actually doing when they give in and get cloud services instead of hosting your own hardware and hiring your own team.
Yes, the up-front overhead cost is much larger, but there's been a lot of fuckups at these big companies recently and a lot more valid reasons for companies to be justifying bringing everything back in-house instead of living in the cloud.
Part of that is the growth of open source cloud applications, so you can still have it all "in the cloud" but that cloud is still owned, operated, and administered by your own team, in a physical location you can access. A lot of the same benefits just with more technical overhead.
The "cloud" was never supposed to be a service for businesses. It was what was offered to consumers, so they could access the kinds of things businesses have, like internet-hosted storage. But the marketing worked too well on middle managers.
How do you suggest self-hosting should be made easier while at the same time making offering the same software as a service harder?
Basically the bits that are hard for people about self-hosting is that you need to learn about concepts you have no previous experience with. This can only be mitigated by abstracting those concepts away to some degree and automating more but those are exactly the same steps that make offering the software as a service easier too.
I have to disagree with both those assertions.
If a software is easy to self host, then there is no need to make it harder to deploy as SaaS. The latter will be irrelevant for most people.
And the problem of self hosting isn't a circular problem as you project it to be. There are architectural changes that can make it positively easier to self host without exposing the sysadmin to needless complexity. The example I quoted before - sandstorm - was a step in this direction. Deploying and administering applications on sandstorm would have been as easy as deploying one on desktop (including cross app integrations). The change needed was to modify the app to work with the sandstorm platform. Unfortunately, the platform didn't gain the momentum needed to ensure that all available apps would be ported. But it shows that the concept is viable.
Self-hosting has some inherent downsides that will never make it so easy that it completely outclasses the competition by cheap mass-hosters hosting the exact same thing for most people. You or I might enjoy fiddling with technical things or keeping our computers running 24/7 or setting up some workaround CGNAT or DualStack Lite so that computer is even reachable from the outside (or even have a physically stationary computer in the first place, lots of people carry laptops around instead or don't even have anything but a phone) but most people would much rather pay someone US$1 a month to do all that stuff for them.
My sincere belief is that the difficulty in self hosting is due to the lack of priority, investment and development, due to the perverse incentives of the SaaS model. I don't think it's a technical problem that cannot be resolved with sufficient work. There are PoCs that prove that it can be made as simple as desktops and mobile phones.