| This is something we've[0] done a number of times for customers coming from various cloud providers. In our case we move customers onto a multi-server (sometimes multi-AZ) deployment in Hetzner, using Kubernetes to distribute workloads across servers and provide HA. Kubernetes is likely a lot for a single node deployment such as the OP, but it makes a lot more sense as soon as multiple nodes are involved. For backups we use both Velero and application-level backup for critical workloads (i.e. Postgres WAL backups for PITR). We also ensure all state is on at least two nodes for HA. We also find bare metal to be a lot more performant in general. Compared to AWS we typically see service response times halve. It is not that virtualisation inherently has that much overhead, rather it is everything else. Eg, bare metal offers: - Reduced disk latency (NVMe vs network block storage) - Reduced network latency (we run dedicated fibre, so inter-az is about 1/10th the latency) - Less cache contention, etc [1] Anyway, if you want to chat about this sometime just ping me an email: adam@ company domain. [0] https://lithus.eu [1] I wrote more on this 6 months ago: https://news.ycombinator.com/item?id=45615867 |
I measured this several years back and never looked at virtual servers again. Since CPU time isn't reserved (like RAM is), the performance is abysmal compared to real hardware.
https://jan.rychter.com/enblog/cloud-server-cpu-performance-...