Deployment and Debugging

In KARL1 (and to a degree, KARL2), when something went wrong, we had obscure outages and there wasn’t much available for debugging. KARL3 will already be vastly better, in that enormous chunks of troublesome C/C++ code will be removed, along with the multiple process architecture.

Still, there is room for discussing improvements in how KARL can be deployed, maintained, and debugged.

Notes

  • Nice error page that covers any possible condition
  • Autolance for as much as possible
  • Easy way to switch to a configuration that collects massive amounts of postmortem droppings
  • Emails for tracebacks and crashes, sent to osi-dev
  • Documented scripts for fast backups and restores, as well as reindex. Note that blob support helps.
  • Put catalog in a different ZODB.
  • Make either a deployment buildout, or a different etc for the deployment.
  • Turn off Chameleon reload sniffer
  • Consider returning to separate hostname for static resources, for parallelization of HTTP requests
  • Look at Scotch for recording WSGI requests in production and doing playback in staging
  • Automating the pack process in a cron job

mod_wsgi

  • Exit after N requests
  • Stack/recursion limits
  • Speed up restart with preimport (so a daemon child doesn’t get requests until after some amount of work is done)
  • Make it easy to fire up a parallel modwsgi in debug mode that doesn’t interfere with public requests, perhaps read-only ZODB connection

Table Of Contents

Previous topic

KARL 2.1 Multisite Configuration Specification

Next topic

Incoming Feeds and KM

This Page