content: add appengine-go111 article

Change-Id: I18e78cc284a85dbf59cdf7841a124b4cf967469e
Reviewed-on: https://go-review.googlesource.com/c/142118
Reviewed-by: Katie Hockman <katie@golang.org>
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
+
+[[https://cloud.google.com/appengine/][App Engine]] launched
+[[https://blog.golang.org/go-and-google-app-engine][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
+[[https://cloud.google.com/blog/products/application-development/go-1-11-is-now-available-on-app-engine][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.
+[[https://cloud.google.com/appengine/docs/standard/go111/specifying-dependencies][Specifying Dependencies]]
+describes how the new runtime
+supports [[https://golang.org/cmd/go/#hdr-Vendor_Directories][vendoring]] and
+[[https://golang.org/doc/go1.11#modules][modules]] (experimental) for dependency
+management.
+
+Along with [[https://twitter.com/kelseyhightower/status/1035278586754813952][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
+infrastructure.
+
+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
+[[https://cloud.google.com/appengine/docs/standard/go111/specifying-dependencies][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
+supports.
+
+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][https://cloud.google.com]].
+- [[https://cloud.google.com/resource-manager/docs/creating-managing-projects][Create a project]].
+- Install the [[https://cloud.google.com/sdk/][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
+[[https://cloud.google.com/free/][free tier]]. Check out the
+[[https://cloud.google.com/appengine/docs/standard/go111/building-app/][getting started guide]]
+or the
+[[https://cloud.google.com/appengine/docs/standard/go111/go-differences][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, 世界"))
+}