Deploying Web Services

What you'll need

Nice-to-haves:

Domain names: DynDNS offers free domain names if you're not picky.

Deployment Practices

Some people like to break these rules. They also tend to like doing more work than they need to.

Using Apache and mod_wsgi

mod_wsgi is the most common way to serve WSGI applications in the wild

mod_wsgi needs a magical application callable: http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide. So, create a .wsgi file somewhere of choice

add the necessary locations to sys.path (could also set the PYTHONPATH environment variable)

add the apache configuration

Deployment Checklist

Deployment should be easy. For personal web sites and services, this isn't that mandatory at first; if something goes wrong, you're more able and willing to fiddle with things until they work. But eventually the effort will increase the more you add and the longer you have to maintain it.

For production systems, it is critical that deployment is easy and quick. Service down time is a big no and trying to get a complicated set of steps to work quickly is not only no fun, it also leads to mistakes.

good programmers are mostly lazy

Questions to ask yourself:

Example Deployment Story: k0s.org

This is shown as an example deployment story and not necessarily the method to deploy a production system. Each deployment will have different requirements depending on the intent of the site/service/etc.

Requirements

Technologies

Synchronization:

Site services:

  • decoupage: content server
  • bitsyblog
  • mercurial: source code repository
  • demos

Storage:

  • files (so far)

Do the technologies fulfill the requirements?

Yes.