Results at a glance
- 20+servers built from bare OS to production
- 6integrated applications behind HAProxy
- 18 + 40+bare-metal servers and LXC containers in Grafana
- 2replicated data tiers: MySQL and MongoDB
The brief
A messaging platform for enterprise and operator customers needed a production home: six applications that talk to each other, two kinds of database, and traffic that can't stop. My job was the infrastructure underneath all of it.
What I did
Servers and network
I installed and configured the operating systems with a consistent baseline (users, SSH, time sync, firewall, log rotation), set up network interfaces and routing, and controlled internal and external access for every server.
Load balancing
HAProxy sits in front of the application servers with health checks, so a failed backend drops out of rotation on its own and traffic carries on.
Replicated data tier
- MySQL replication, so the data exists on more than one server and a replica can take over if the primary fails.
- MongoDB replica set, with automatic primary election when a member goes down.
Monitoring
Grafana dashboards and alerts cover 18 bare-metal servers and 40+ Proxmox LXC containers: system health, services, replication and application metrics.
Disaster recovery
Automated backups to separate backup servers, alerting when a backup fails, and written recovery procedures, so restoring doesn't depend on one person's memory.
Decisions and trade-offs
- Replication is not a backup. Replicas copy mistakes too (a bad
DELETEreplicates in milliseconds), so the platform has both replication and independent, point-in-time backups. - Containers where they fit. Lightweight services run as LXC containers on Proxmox for density. Databases and heavy components get dedicated resources.
Outcome
The platform runs in production with a load-balanced, replicated core. Failed backends drop out on their own, and the team has dashboards, alerts and runbooks instead of guesswork. I still operate it day to day.