KalyanChakravarthy.net

Thoughts, stories and ideas.

Python Deployments Wishlist

Am currently faced with a baffling realisation of the reality that there is no one sane way to deploy python applications.

It's utterly annoying that I cannot just tar a virtual env and use it.
Performing pip install on every deploy is plain ridiculous. Downloading from the internet on every code change with separate virtualenv is a nogo. No RPMs, nope, no way am writing another spec file.

Wishlist:

  • Deployment tooling that allows me to go from zero to production with a new application with no setup.
  • No-downtime between deployments (has to work with a single instance)
  • Philosophy of implementations should make sense whether deploying to one or a 100 servers.
  • Controlled activation of the new version of software i.e. traffic shifting.
  • Stable re-producible environment setup everytime (perhaps with ansible).
  • Cli that lets you bootstrap, build, deploy and control activation of software (nginx or via LB).

Next:
Am starting to hack a prototype with fabric, python and Ansible, which is already proving to be challenging but looks doable.