top band

Saturday 2:35 p.m.–3:05 p.m.

Ship it: Deployments with Pip

Dan Tracy

Audience level:
Systems Administration


Gone are the days where creating system packages or scp-ing tar balls were required for deployment. With Pip, Fabric, and Jenkins we've developed a pipeline to simplify deployments and rollbacks that dove-tails into configuration management and virtualization. New machines can come fully deployed and ready to rock at a moments notice allowing you to scale out nodes quickly and painlessly.


Deployment is a simple idea in theory but can be difficult in practice. Many mechanisms exist but few work very well with python being deployed across multiple operating systems in a [service oriented architecture]( One issue we've faced with a [SOA]( "Not the Sons of Anarchy") is that you can end up with many projects rolling their own deployment mechanism which results in many half-baked deployment pipelines. This can create a large pain point in transitioning people from one team to another. Bug fixes can be committed quickly but it can be a royal pain in getting the changes out and live. To help alleviate that pain we've come up with a generic package-centric deployment strategy that focuses on Python but also supports other languages like NodeJS. The deployment strategy leverages technologies like [Jenkins](, [Pip](, [Virtualenv](, and [Fabric]( to allow for quick deployments that result in code being isolated from other services and native libraries on the node. This talk will introduce a deployment pipeline that uses Python packages as the main deployment strategy and the mess it helped clean up. I will go into how the pieces fit together for this deployment, some of the successes had with this mechanism as well as some of the pain points in using it.
bottom band background