Fwiw Ubuntu server has gotten a lot better than it was. Initially it was more like a little bloated, better tested, sometimes oddly configured "Debian testing" - now it's more of a proper Debian derived distro, with a fairly decent "server" version.
You should no longer have to expect problems doing an in place upgrade from lts to lts release of Ubuntu (which has been true for Debian stable as long as I can remember).
As for running packaged versions of things like apache and them autostarting... I see your point, but I don't think it's a weakness - it's more of a difference of opinion.
One thing canonical seem to be doing right (which I initially thought of as a bad case of NIH) is lxd/lxc, juju and zfs integration. I've yet to play with it seriously, but it does come with a lot of shiny stuff out of the box. That said - it appears (light) containers are winning the mindshare - and I can see how an email server as a container/appliance might be preferable to a custom scripted lxc "VM"/image - if you get the upstream supported container, you likely get some help in keeping the stateful data out of the container.
The benefit/problem of lxc/lxd is that you can just keep working with the "VM"s as virtual servers.
Anyway the end result is a lot like modern freebsd jails - in a good way.
You should no longer have to expect problems doing an in place upgrade from lts to lts release of Ubuntu (which has been true for Debian stable as long as I can remember).
As for running packaged versions of things like apache and them autostarting... I see your point, but I don't think it's a weakness - it's more of a difference of opinion.
One thing canonical seem to be doing right (which I initially thought of as a bad case of NIH) is lxd/lxc, juju and zfs integration. I've yet to play with it seriously, but it does come with a lot of shiny stuff out of the box. That said - it appears (light) containers are winning the mindshare - and I can see how an email server as a container/appliance might be preferable to a custom scripted lxc "VM"/image - if you get the upstream supported container, you likely get some help in keeping the stateful data out of the container.
The benefit/problem of lxc/lxd is that you can just keep working with the "VM"s as virtual servers.
Anyway the end result is a lot like modern freebsd jails - in a good way.