Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deployment strategies for Go services?

I'm writing some new web services in Go.

What are some deployment strategies I can use, regardless of the target platform? For example, I'm developing on a Mac, but the staging/production servers will be running Linux.

Are there some existing deployment tools I can use that support Go? If not, what are some things I can do to streamline the process?

I use LiteIDE for development. Is there any way to hook LiteIDE into the deployment process?

like image 557
Daniele B Avatar asked Aug 04 '13 01:08

Daniele B


1 Answers

Unfortunately since Go is such a young language not much exists yet, or at least they've been hard to find. I would also be interested in the development of such tools for Go.

What I have found is that some people have been doing it themselves, or they've adapted other tools, such as Capistrano, to do it for them.

Most likely it's something you'll have to do yourself. And you don't have to limit yourself to shell scripts - do it in Go! In fact many of the Go tools are written in Go. You should avoid compiling on the target system as it's usually a bad practice to have build tools on your production system. Go makes it really easy to cross compile binaries. For example, this is how you compile for ARM & Linux:

GOARCH=arm GOOS=linux go build myapp

One thing you could do is hop on the #go-nuts freenode IRC channel or join the Go mailing list and ask other Gophers what they're doing.

like image 119
Luke Avatar answered Oct 19 '22 23:10

Luke