Thursday, October 16, 2014

Cutting out Chef with Go

There is a lot of hype out there on the Go language, and I am really buying into it. The language and tools are really good, and I find myself being almost as productive in it as I was with C#.

One big advantage that is often talked about, but misunderstood, is the ability to compile to a targeted platform, and run that program without having to install any dependencies.

So on a Windows machine, you can compile a binary for Linux. You then take that file, move it to a Linux machine, and it runs. No need to install any runtime, virtual machines, or other libraries. I have been using gox, and it works great.

This means that there is no server configuration beyond that file, and perhaps an upstart configuration file. No need for Chef, custom images, or other configurations.

Shipping metrics and logging off of the image means that we can easily and quickly release immutable servers very quickly with little complexity.

I'll be doing a few blog posts over the next month that discusses how I am doing this, so stay tuned!