Recommending private cloud means running it yourself
CCsolutions advises companies on migrating to private cloud infrastructure. Giving that recommendation without applying it internally would lack credibility. Our own monitoring stack, consisting of Grafana, Loki, and Mimir, ran on DigitalOcean across 6 virtualized nodes with 8 vCPU and 32 GB RAM each, at a cost of roughly 2,000 euros per month. OOM errors, high query latencies, and no control over the underlying hardware made the situation unsatisfactory.
The decision: migrate internally to private cloud as a proof of concept and as a signal to clients that we recommend what we actually run.
Starting point: expensive, unstable, limited control
The old stack on DigitalOcean had concrete problems:
- Cost: approximately 2,000 euros/month for 6 nodes (8 vCPU / 32 GB RAM)
- OOM errors: Loki and Mimir regularly hit out-of-memory states, causing restarts and monitoring data loss
- Query latency: Grafana dashboards with historical data loaded slowly, creating a poor experience for anyone relying on the monitoring
- No hardware control: On virtual machines, I/O throughput is unpredictable. Other tenants on the same hardware can affect performance
- Principle: recommending private cloud requires running it yourself
The alternative: dedicated baremetal hardware, fully self-managed.
Solution: private cloud on Hetzner Baremetal via Syself
The architecture of the new environment:
4 baremetal nodes on Hetzner: Hetzner offers dedicated servers at a fraction of the cost of comparable cloud offerings. The chosen nodes: AMD Ryzen with 16 physical cores and 64 GB RAM per node. Total capacity: 64 cores, 256 GB RAM. Each node also includes 1 TB NVMe SSD for fast local storage.
Kubernetes management via Syself: Syself is a Kubernetes-as-a-Service provider that handles Kubernetes cluster management on baremetal. No manual kubeadm bootstrapping, no overhead managing control plane updates. Syself manages the Kubernetes layer; CCsolutions controls the hardware and workloads.
Complete monitoring stack: Grafana, Loki (log aggregation), Mimir (long-term metrics storage), and all associated agents run on the new private cluster. The migration was executed with zero downtime. Data was replicated live before traffic was switched over.
Dedicated storage: NVMe SSDs on baremetal deliver I/O throughput that is not achievable on virtual machines. Loki and Mimir queries that previously took seconds now complete in milliseconds.
Results: lower costs, better performance, full control
Results after migration:
- 40% cost reduction: from approximately 2,000 euros/month to approximately 1,000-1,100 euros/month
- 8x more CPU cores per node: from 8 vCPU to 16 physical cores (AMD Ryzen)
- 2x more RAM per node: from 32 GB to 64 GB
- Zero OOM errors: Loki and Mimir run stably, no more restarts
- Dramatically faster queries: NVMe I/O makes historical Grafana queries responsive
- Full data control: no dependency on public cloud providers for internal monitoring
- Proof of concept: any client considering private cloud can see that we run it ourselves
Technology stack
| Area | Technology | |---|---| | Hardware | Hetzner Baremetal (AMD Ryzen 16 Cores / 64 GB / 1 TB NVMe) | | Kubernetes Management | Syself | | Monitoring | Grafana | | Log Aggregation | Loki | | Metrics Storage | Mimir | | Previous Provider | DigitalOcean |
Summary
This migration was not a client project. It was an internal decision based on a clear principle: recommending private cloud means running private cloud. The results exceeded expectations: lower costs, better performance, and full control over our own infrastructure.
If you are weighing whether private cloud is the right choice for your workloads, we have made the comparison ourselves. Talk to us.