Python is my favorite computer language for data science, but it is a poorly standardized beast when it comes to packaging, deployment, web operations, etc.  There are plenty of people who are deploying Python code to the web effectively, but especially in the data science area, there is no equivalent of the LAMP stack that you can just plug in and start coding against.  We have a way, among other possible ways, of solving these problems, that we think people might find useful, and I am going to describe our methods in a couple of blog posts.  The first one will tell the story as a comic strip.  The next one will have the code and instructions.

Let’s try to depict the data science and webops tribes at work, and visualize some of the problems they can have when they work together.

Here is a Python programmer, vintage Macbook pro in front of him, in his natural habitat, the indy coffeehouse Pavement, near Wayfair HQ in Boston’s Back Bay. It’s the perfect environment for thinking deep thoughts.

Pythonista with Bayes' theorem in coffee shop

This posterior distribution proves I was right all along! Time to share this with the world.

Let’s go talk to Adam in IT operations.  Perhaps the hipster-code-poser vibe emanating from my Brooklyn shirt, and the air of credentialed accomplishment created by my fauxcademic tweed jacket, will inspire him to work all night to get this new hotness up on the site.  Hmmm, he’s rolling his eyes.  This is not going according to my vision.  I don’t want to anger him.  Those tattoos look pretty scary.

a pythonista and an IT ops guy disagreeing about how easy it is to deploy some code to a web site

It works on my Mac. What do you mean you can't just put it up on the site?!

Adam says I must be joking if I want to install compilers and other build tools on the production servers.

Let’s get some help from Chris, whom we’ll call the puppet master.  He knows the configuration management tool ‘Puppet’.

an IT ops guy working some magic with Puppet

I think we can rig your crazy science project for continuous deployment with a combination of Puppet and our push tool.

The big monitors are telling us the push went smoothly.

3 guys giving the thumbs up for a successful code deployment

The monitoring system says, "We are good for this push... and... code deployed... and... looks like no errors!"

With peace established among the tribes, our competitors don’t stand a chance.

Now let’s get to the how-to.