They demonstrated an easy way to deploy a Go application utilizing Docker ( <a href="https://docker.com/" rel="nofollow">https://docker.com/</a> ) and Google App Engine.
The Docker Engine container comprises just the application and its dependencies. It runs as an isolated process in userspace on the host operating system, sharing the kernel with other containers. Thus, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient.<p>If you take a look at the example's source at:
<a href="https://github.com/golang/example/blob/master/outyet/main.go" rel="nofollow">https://github.com/golang/example/blob/master/outyet/main.go</a><p>You will notice, that they import
"net/http"<p>Which implements an http server - that's all, see here for more details:
<a href="https://godoc.org/net/http" rel="nofollow">https://godoc.org/net/http</a>
It is not necessary, nevertheless possible, to use something like nginx or apache in front of a Go web application.
This seems strange to me. What is the point of installing Go on (presumably) your production servers? Seems like you could just an easily cross-compile a release binary and put THAT in the Docker image.
I find this to be somewhat wacky. Go applications are portable by design. There's no dependencies in the first place. As long as your web servers don't clash on ports or directories, you can deploy as many as you want, built with a dozen different versions of go.