Packaging in packaging: dh-virtualenv
Deploying your software can become a tricky task, regardless of the language. In the spirit of the Python conferences, every conference needs at least one packaging talk.
This talk is about dh-virtualenv. It's a Python packaging tool aimed for Debian-based systems and for deployment flows that already take advantage of Debian packaging with Python virtualenvs
Dh-virtualenv is an open source tool developed at Spotify. We use it to ease deploying our Python software to production. We built dh-virtualenv as a tool that fits our existing continuous integration flow with a dedicated sbuild server. As we were already packaging software in Debian packages, the aim of dh-virtualenv was to make transition to virtualenv based installations as smooth as possible.
This talk covers how you can use dh-virtualenv to help you deploy your software to production, where you are already running a Debian-based system, such as Ubuntu, and what are the advantages and disadvantages of the approach over other existing and popular techniques. We will discuss the deploying as a problem in general, look into building a dh-vritualenv-backed package, and in the end, look into how dh-virtualenv was actually made.
Goal is that after this presentation you know how to make your Debian/Ubuntu deployments easier!
dh-virtualenv if fully open sourced, production tested software, licensed under GPLv2+ and available in Debian testing and unstable.
More information of it is also available in our blogpost.
- Introduction & overview (3min)
- Who am I?
- Why am I fiddling with Python packaging?
- What do you get out of this talk?
- Different shortcomings of Python deployments (5min)
- Native system packages
- Virtualenv based installations
- Containers, virtual machine images
- dh-virtualenv (10 min)
- What is dh-virtualenv?
- Thought behind dh-virtualenv
- Advantages over others
- Requirements for your deployment flow
- Short intro to packaging Sentry with dh-virtualenv
- How is it built? (10 min)
- Debian package building flow primer
- How dh-virtualenv fits that flow
- What does it do build time and why?