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 »

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 »

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 »

Announcing: Golapa v1.1

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

It’s been almost 4 months since our initial release of Golapa and we’ve been using it extensively for managing our Turret.IO signups. Today I’m proud to announce that it now supports Turret.IO as a method for capturing signup data, which also coincides with our release of the Turret.IO Go client library. Golapa continues to provide a… Read more »

Organizing Go code to be ‘go gettable’

Posted by & filed under Go, Web development.

This topic comes up a lot because Go is a newer language and has some quirks that many developers aren’t used to. One Go tool that’s particular useful is ‘go get’ — which is used to fetch a remote package and add it to your current Go workspace. Naturally, a Go developer may at some point… Read more »