My experience is that bundling services is what gets you in that 10+ years old system. Now, when I migrate services, I usually decouple them from a single hardware unit. This creates a nice opportunity to update each system separately and not to wind up with an old OS again in another 10 years. So my usual migration is Hetzner bare metal -> Hetzner Cloud.