Packaging for Deployment

Posted by & filed under Deployments, Go, Web development.

In a previous post we discussed how we manage some of our Turret.IO deployments using Jordan Sissel‘s excellent packaging software: FPM. This post is mainly a mini-tutorial on one of many ways to leverage FPM as part of your deployment process. Like many others, our stack consists of both software built in-house and 3rd party applications such as NGiNX, Redis, Cassandra,… Read more »

A Faster Turret.IO with Docker

Posted by & filed under Docker, Python, Web development.

Connecting your web application’s server-side logic with a 3rd party service usually introduces some type of a performance penalty. Preventing such issues requires the creation of task queues, worker processes, or other methods that allow slower processes to do their work while maintaining a responsive interface for the user. Turret.IO supports an API for sending user… Read more »

Daemonize Your Go App

Posted by & filed under Go, Web development.

One of the significant use-cases for Go is writing server applications that need to be running all the time. That means they need to be logging errors and restart automatically if they crash or the entire server restarts. There are several modern ways to do this (supervisord, Upstart, daemonize, etc) and we don’t use any of… Read more »

Cut your Python development time in half

Posted by & filed under Python, Web development.

It’s no secret that we’re Python advocates and believe its cutthroat indentation rules are part of what makes it a great language. We use it to serve our web interface and API and the majority if our maintenance scripts are Python as well. Beginners will find it simple to read and understand. Most commands work… Read more »

Go: Build Constraints FTW!

Posted by & filed under App Engine, Go, Web development.

We’re continuing to use Google App Engine to host our sign up page (we’ll discuss why in another post) which produced a common problem during our local builds: appengine-specific code would fail when using the standard Go build tools. Because our AppEngine and non-AppEngine code was similar, we wanted to keep the code-base from being fragmented…. Read more »