I do upgrade my packages from time to time. It's almost always happened smoothly. The few times problems happened were due to 2 reasons:
- the software itself has a buggy upgrade procedure. I probably would have had the same issue with any other distribution, assuming they would contain the latest version
- it's an Arch-specific upgrade issue, but I have so few packets that this happens at most twice a year and it's always documented on the front page of the arch wiki
I have to admit that since it's only my own server, there is no pressure for services to stay up. In practice in the years I've used this setup I've never had an issue because a package was too recent and buggy; it was always a misconfiguration from my part.
I very much like the process of steadily keeping up to date bit by bit, instead of stagnating on a stable base and doing a big bang update every few years. I also like the fact that I don't need to know which version of which release am I going to get, it's always the latest one and it's the one that upstream released.
Also automated deployment of Arch is a little bit of a headache.
When developing the platform, we tried Ubuntu/Debian/CentOS, and at the time (about 1.5 years ago), Arch Linux was the most reliable OS for getting the 32-bit deps to work with existing commercial chains, and new toolchain compiles (IceStorm, NextPnr, etc). I think this is because Arch typically includes the development headers by default.
As long as the regression tests continue to pass, we will likely continue to roll with Arch Linux. We only tend to rebuild images once a month or so, since our backend is fairly feature complete already.
--
I think the trick is:
* Use containers, e.g. dockerhub's archlinux
* Assume that you will never be able to run pacman on a live system. Instead, rebuild a new image with a Dockerfile with your new packages -- then deploy that.
The strength of Arch on the desktop for me is that it is a rolling update distro - that you are always up to date with the newest driver updates, mesa, etc.
This is exactly why I wouldn't use it on a server. Every time you install or update, you run the risk of getting a major software update that could break your app or server config.
For servers I want predictability - the same software versions over an extended period with just bugfixes & security fixes, and for me to decide when I want to change major versions. Arch doesn't make this predictability an option.