# Go and the Google Cloud Platform
12 Jun 2013
Summary: Two talks about using Go with the Google Cloud Platform, from Google I/O 2013.
OldURL: /go-and-google-cloud-platform

Andrew Gerrand

## Introduction

In 2011 we announced the [Go runtime for App Engine](https://developers.google.com/appengine/docs/go/overview).
Since then, we have continued to improve the Go App Engine experience,
and generally improved Go support for the Google Cloud Platform.
For instance, the [google-api-go-client](http://code.google.com/p/google-api-go-client) provides
a Go interface to a range of Google's public APis,
including Compute Engine, Cloud Storage, BigQuery,
Drive, and many more.

Learn more by watching these talks from Google I/O this year:

## High Performance Apps with Go on App Engine

_The Go runtime for App Engine is a high performance engine for_
_running web applications. It produces fast responses,_
_starts instances in a fraction of a second, makes the most use_
_of instance hours, and allows your app to do serious processing_
_at full machine speed._
_Come along to hear how to fully exploit the power of Go on App_
_Engine and make your web applications the best they can be._

.iframe //www.youtube.com/embed/fc25ihfXhbg 309 549

## All the Ships in the World

Visualizing Data with Google Cloud and Maps

_Tens of thousands of ships report their position at least once_
_every 5 minutes, 24 hours a day._
_Visualizing that quantity of data and serving it out to large_
_numbers of people takes lots of power both in the browser and on the server._
_This session will explore the use of Maps,_
_App Engine, Go, Compute Engine, BigQuery, Cloud Storage,_
_and WebGL to do massive data visualization._

.iframe //www.youtube.com/embed/MT7cd4M9vzs 309 549
