Locally compile go binary for target platform, upload to S3 (with a makefile + s3cmd), puppet runs, downloads version from s3 with shell script, unpacks, puts in bin, upstart starts and keeps service running.
When updating the application, copy the binary to the server and restart the service.
I actually think i got the inspiration for mine from that post.
To update app: Copy new binary, "supervisorctl restart myapp", done.
This will probably result in dropped requests if you aren't using a reverse proxy or load balancer in the middle.
Build, test and deploy a Go application to Heroku (https://news.ycombinator.com/item?id=6294921)