content: add appengine-go111 article

Change-Id: I18e78cc284a85dbf59cdf7841a124b4cf967469e
Reviewed-by: Katie Hockman <>
diff --git a/content/appengine-go111.article b/content/appengine-go111.article
new file mode 100644
index 0000000..b2fbb78
--- /dev/null
+++ b/content/appengine-go111.article
@@ -0,0 +1,76 @@
+Announcing App Engine’s New Go 1.11 Runtime
+16 Oct 2018
+Tags: appengine
+Eno Compton
+Tyler Bui-Palsulich
+* Background
+[[][App Engine]] launched
+[[][experimental support for Go]]
+in 2011. In the subsequent years, the Go community has grown significantly and
+has settled on idiomatic
+patterns for cloud-based applications. Today, Google Cloud is
+[[][announcing a new Go 1.11 runtime]]
+for the App Engine standard environment that provides all the
+power of App Engine—things like paying only for what you use, automatic scaling,
+and managed infrastructure—while supporting idiomatic Go.
+Starting with Go 1.11, Go on App Engine has no limits on application structure,
+supported packages, `context.Context` values, or HTTP clients. Write your Go
+application however you prefer, add an `app.yaml` file, and your app is ready
+to deploy on App Engine.
+[[][Specifying Dependencies]]
+describes how the new runtime
+supports [[][vendoring]] and
+[[][modules]] (experimental) for dependency
+Along with [[][Cloud Functions support for Go]]
+(more on that in a future post), App Engine provides a compelling way to run Go
+code on Google Cloud Platform (GCP) with no concern for the underlying
+Let’s take a look at creating a small application for App Engine. For the
+example here, we assume a `GOPATH`-based workflow, although Go modules have
+[[][experimental support]]
+as well.
+First, you create the application in your `GOPATH`:
+.code appengine/main.go
+The code contains an idiomatic setup for a small HTTP server that responds with
+“Hello, 世界.” If you have previous App Engine experience, you’ll notice the
+absence of any call to `appengine.Main()`, which is now entirely optional.
+Furthermore, the application code is completely portable—there are no ties to
+the infrastructure that your application is deployed on.
+If you need to use external dependencies, you can add those dependencies to a
+`vendor` directory or to a `go.mod` file, both of which the new runtime
+With the application code complete, create an `app.yaml` file to specify
+the runtime:
+    runtime: go111
+Finally, set your machine up with a Google Cloud Platform account:
+- Create an account with [[GCP][]].
+- [[][Create a project]].
+- Install the [[][Cloud SDK]] on your system.
+With all the setup complete, you can deploy using one command:
+    gcloud app deploy
+We think Go developers will find the new Go 1.11 runtime for App Engine an
+exciting addition to the available options to run Go applications. There is a
+[[][free tier]]. Check out the
+[[][getting started guide]]
+or the
+[[][migration guide]]
+and deploy an app to the new runtime today!
\ No newline at end of file
diff --git a/content/appengine/main.go b/content/appengine/main.go
new file mode 100644
index 0000000..ac8feda
--- /dev/null
+++ b/content/appengine/main.go
@@ -0,0 +1,23 @@
+// This server can run on App Engine.
+package main
+import (
+	"fmt"
+	"log"
+	"net/http"
+	"os"
+func main() {
+	port := os.Getenv("PORT")
+	if port == "" {
+		port = "8080"
+	}
+	http.HandleFunc("/", hello)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil))
+func hello(w http.ResponseWriter, r *http.Request) {
+	w.Write([]byte("Hello, 世界"))