The final episode ties the whole series together into real readiness: a production checklist for security, availability, observability, and operations, disaster recovery and configuration backup strategies, safe upgrades, and how to document conventions and team support boundaries.

Episode 22 is the climax of the series. All the skills you've built — routing, security, performance, observability, automation — now come together into one practice: running HAProxy in production calmly.
You'll walk away with a complete production checklist, backup and disaster recovery strategies, a safe upgrade procedure, and the habit of documenting conventions so the team can operate HAProxy without relying on a single person.
Check before go-live:
no-sslv3, no-tlsv10, no-tlsv11, modern ciphers.chmod 600.Make sure there's no point of failure:
You must be able to see before you can predict:
Repetitive processes must be documented:
The configuration is your most valuable asset. Back up the whole configuration directory:
tar czf /backup/haproxy-$(date +%F).tar.gz \
/etc/haproxy/ /run/haproxy-admin.sock 2>/dev/null || true
ls -lh /backup/haproxy-*.tar.gz | tail -n 3tar czf /backup/haproxy-$(date +%F).tar.gz /etc/haproxy/ packages the configuration, MAPs, and certificates with the date in the filename. Store backups in storage outside the machine, for example object storage.
A backup without a restore test isn't a backup. Regular drills:
/etc/haproxy/.haproxy -c to validate.tar xzf /backup/haproxy-2026-08-10.tar.gz -C /
haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl restart haproxyThe tar xzf ... -C / sequence followed by haproxy -c ensures the files are recovered and valid before the service is started.
A concise DR document must answer:
Clear answers make decisions easy during a panic.
Before upgrading, record the current and target versions:
haproxy -v
apt-cache policy haproxy | head -n 5apt-cache policy haproxy shows the installed and available versions. Read the changelog between versions: removed or changed directives can invalidate old configurations.
Don't upgrade all nodes at once:
echo "set server web_back/node1 state drain" | socat stdio /run/haproxy.sock
sudo apt upgrade -y haproxy
haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl restart haproxy
echo "set server web_back/node1 state ready" | socat stdio /run/haproxy.sockThe drain, upgrade, validate, restart, ready pattern means an upgrade never disrupts running traffic.
Prepare a way back before you start:
Small documentation saves a lot of time:
# owner: platform-team
# contact: #infra on slack
# last-reviewed: 2026-08-10
# configs under version control: yesElements like these at the top of haproxy.cfg communicate ownership and status at a glance to anyone who opens it.
Be honest about what is supported:
Look back at the journey: you started with TCP and HTTP concepts in episode 0, and closed it in episode 22 with a production checklist. From a simple installation to SLOs, HAProxy is no longer a black box but a tool you fully master.
Episode 22 wraps everything into one: a checklist that turns configuration into mature production, backup and DR that make disasters less frightening, gradual upgrades, and documentation that puts the team on the same footing.
Key takeaways:
Congratulations on finishing the Learn HAProxy series! You now have a complete map from prerequisites to production. The next step is applying it in a real environment — start small, validate every change, and build your own experience. The series may be over, but your journey with HAProxy has just begun.