Solid Python Deployments for Everybody

Without orientation, deployments of Python applications can be tiresome and even painful. This talk attempts to replace anxiety and pain through informed annoyance.

So far, I’ve held it at PyCon US 2013. And again in a revised and expanded form at EuroPython 2013 in Florence.

This page is solely intended as a companion to the talk, not as a self-contained blog post although it may contain useful links for everybody.

Slides: PyCon US 2013, EuroPython 2013.

Intro

Development

You press your global hotkey and start typing. Dash searches your docsets and presents you the results:

dash

I seriously couldn’t live without it anymore. And for all your Python API docs needs there’s doc2dash by yours truly: convert any Sphinx or pydoctor (Twisted!) docs into a dash docset.

Ancient Python

Virtual Environments

Before you start, add

1
2
[install]
download-cache = ~/.pip/download_cache

to your ~/.pip/pip.conf so each version gets downloaded only once. Alternatively use the --download/--find-links combo. Since PyPI moved to a CDN, do not use the pip option --use-mirrors/-M anymore, it’s slower.

Packaging

Alternative Approaches

Configuration Management

Pick your poison, they’re all complex and painful. You’ll have to plan ahead. And then realize you planned wrong and refactor.

The current big players with broadest user base seem to be Chef and Puppet. Prepare for Ruby-smelling DSLs though.

Be Paranoid

screen is for suckers

You May Not Need an Attack Helicopter

Using Apache…eh…Apache httpd with mod_wsgi is fine. But:

If you want to use Apache for good reasons, Graham did a great talk on the topic.

Monitoring

Measure

Hosted

Easier to set up, but pricey on the long run if you collect a lot of metrics – which you should.

Self-Hosted

Goto 1

Back to programming!

Additional Resources

Design Credits

← See all posts