This is a quick list of concerns I have when getting an application ready for production.

  • Observability/monitoring
    • Error tracking
    • Alerts
    • Logging
    • Resource monitoring (CPU/Memory/IO)
    • Analytics
  • Testing
    • Automated tests
      • Load/preformance tests
      • Unit/integration tests
    • QA/Acceptance tests (aka, manual tests)
  • Security
    • Secrets management
    • Dependency vulnerabilities
    • Network security
    • Encryption
    • Application-level security
  • Availability
    • Concurrency
    • Caching
    • Database indexing
    • Latency
    • Scaling
    • Backups
    • Redundancy
  • Releases
    • Building
    • Versioning
    • Deployment
    • Rollbacks
    • CI/CD
    • Staging/QA environments