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.