Production checklist

What to confirm before an environment takes real traffic - one page, one pass.

Work through this before the environment takes real traffic. Every item is one decision, and each links to the page that explains it.

Network

  • Turn TLS on for every port that clients reach - SSL/TLS
  • Leave the plaintext load balancer and Dashboard ports unpublished - default ports
  • Put the Dashboard behind a firewall that limits who can reach it - a VPN, an office range or an allow-list - Dashboard authentication
  • Confirm outbound access exists for the systems your alerts are delivered to - notifications
Limit who can reach the Dashboard. A Dashboard login has full administrative rights over the environment, so, at most, a firewall should restrict access to the Dashboard port to a limited set of addresses.

Credentials

Databases

  • Decide whether the ODB keeps its SQLite default or uses MySQL or PostgreSQL - ODB configuration
  • Decide the same for the audit log's database - audit log
  • If you use an external database for either, encrypt its connection with TLS - audit log
  • Decide the audit log retention window and, if payloads are sensitive, a shorter one for content - audit log

Observability

  • Ship the logs off the container, rather than relying on docker logs - logging
  • Scrape the metrics endpoint - monitoring with Prometheus
  • Fill in the alert notification targets and activate the connections they use - notifications
  • Deliver one alert end to end, so you know the path works before you need it - notifications
  • Review the alert thresholds against what your traffic actually looks like - alert rules
  • Turn on health checks for the outgoing connections that matter, particularly the ones used rarely - health checks

Configuration

  • Keep the project, including its enmasse YAML, in git - enmasse

Traffic control

  • Rate limit every channel exposed to the public - rate limiting
  • Assign quota tiers to the consumers that need different limits - quota tiers
  • Set timeouts on outgoing connections, so a slow remote system does not become your outage - outgoing connections

Backups

  • Confirm the SQL databases you run outside the container are covered by your existing backup arrangements - backup
Note: Nothing inside the container needs backing up. It is rebuilt from the image plus the project - see backup.

Learn more