SlideShare a Scribd company logo
Getting Started on
Google Cloud Platform
Aaron Taylor
@ataylor0123
access any file in seconds,
wherever it is.
www.meta.sc
Getting Started on Google Cloud Platform
Folders are outdated
Files are scattered
Getting Started on Google Cloud Platform
Talk Roadmap
• What problems we face at Meta
• How we are solving them using GCP
• How you can get started on GCP
Building a product
• No baggage, free to choose whatever stack we want
• Take advantage of latest technologies
• but not quite bleeding edge
Engineering Goals
• This will be a complex product, it needs to be
comprehensible to everyone on our team
• Keep the team as lean as possible
• Focus on product, not sysadmin and dev ops
Language Choices
• Go chosen as our primary language
• Python for NLP and data analysis
• enables easy experimentation, comfortable for data
scientists and developers
• Java/Scala interacting with Dataflow, Apache Tika, etc.
Our Hard Problems
• User onboarding load
• Heterogeneous (changing) data sources
• Unpredictable traffic from web hooks
• Compute loads for file content analysis
• Processing streaming data
User Onboarding
• Crawl multiple cloud
accounts at once
• Parallel computation
• In-process using Go
• Distributed using tasks
• App Engine
Taskqueues
Heterogeneous Data
• Remove complexity of
third-party services
• Detect changes/
breakages in APIs
• Distributed by nature
• Continuous Deployment
• Datastore
• BigQuery
Unpredictable Traffic
• Changes are pushed to
us through web hooks
• Dropping changes
generally unacceptable
• One user should not
negatively impact others
• App Engine autoscaling
• Asynchronous task
queues
Compute loads
• Rich file content analysis
• Parallel computation
• App Engine Flexible
Runtimes
• CPU-based autoscaling
Stream Processing
• Efficient handling of
high-volume changes
• Collate events in
succession, from
multiple users
• Google Cloud Pub/Sub
• Google Cloud Dataflow
How we started off
• App Engine is our entry point
• Service Oriented Architecture
• Currently ~37 different services
• Cloud Datastore is our persistence layer
• BigQuery as a data warehouse
Documentation
• Lots of information for getting started
• Quality resources for our growing team
• Onboarding new developers without GCP
experience has been a breeze
• Google is devoting lots of resources to this area
App Engine
• Don’t worry about servers
• Cache, task queues, cron, database, logging,
monitoring, and more all built in
• Powerful, configurable autoscaling
• Heavy compute on App Engine Flexible Runtimes
Development Process
• Build, run, and test services locally
• Continuous deployment to a development project
• Incremental releases go to production project
• Logging and monitoring easy to setup
Problems we faced
• Mantra of “don’t worry about scalability”didn’t take us
very far
• Users have lots and lots of files
• Datastore use optimizations
• Cost issues with App Engine
• Trimming auto-scaling parameters
• Migrated heavy compute to Flexible Runtimes
Outside GCP
• Algolia
• Hosts infrastructure for our search indices
• Pusher
• realtime socket connections
• Postmark/Mailchimp
• transactional and campaign-based email
Growth of the platform
• Rapid changes and improvements taking place
• Flexible Runtimes
• Container Engine
• Dataflow
• Investing in a documentation overhaul soon
• Support is generally quite responsive
Recent Developments
• Introduction of Pub/Sub to our system for all event
processing
• Experimenting with Kubernetes/Container Engine
• Dataflow stream processing jobs
• Splitting functionality into multiple projects
Quickstart Documentation for Go
How you can start off
Hello World in Go
https://cloud.google.com/appengine/docs/go/quickstart
Server
package hello
import (
"fmt"
"net/http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, world!")
}
hello.go
Configuration
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
app.yaml
Deploy
appcfy.py update .
Add a Guestbook
https://cloud.google.com/appengine/docs/go/gettingstarted/creating-guestbook
Datastoretype Greeting struct {
Author string
Content string
Date time.Time
}
// guestbookKey returns the key used for all guestbook entries.
func guestbookKey(c appengine.Context) *datastore.Key {
// The string "default_guestbook" here could be varied to have multiple guestbooks.
return datastore.NewKey(c, "Guestbook", "default_guestbook", 0, nil)
}
func root(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
// Ancestor queries, as shown here, are strongly consistent with the High
// Replication Datastore. Queries that span entity groups are eventually
// consistent. If we omitted the .Ancestor from this query there would be
// a slight chance that Greeting that had just been written would not
// show up in a query.
q := datastore.NewQuery("Greeting").Ancestor(guestbookKey(c)).Order("-Date").Limit(10)
greetings := make([]Greeting, 0, 10)
if _, err := q.GetAll(c, &greetings); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if err := guestbookTemplate.Execute(w, greetings); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Templates
var guestbookTemplate = template.Must(template.New("book").Parse(`
<html>
<head>
<title>Go Guestbook</title>
</head>
<body>
{{range .}}
{{with .Author}}
<p><b>{{.}}</b> wrote:</p>
{{else}}
<p>An anonymous person wrote:</p>
{{end}}
<pre>{{.Content}}</pre>
{{end}}
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>
`))
Forms
func sign(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
g := Greeting{
Content: r.FormValue("content"),
Date: time.Now(),
}
if u := user.Current(c); u != nil {
g.Author = u.String()
}
// We set the same parent key on every Greeting entity to ensure each Greeting
// is in the same entity group. Queries across the single entity group
// will be consistent. However, the write rate to a single entity group
// should be limited to ~1/second.
key := datastore.NewIncompleteKey(c, "Greeting", guestbookKey(c))
_, err := datastore.Put(c, key, &g)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
http.Redirect(w, r, "/", http.StatusFound)
}
Conclusions
• Google Cloud Platform has allowed us to build out
Meta in ways that wouldn’t otherwise be feasible
• Simplicity of App Engine allows us to focus on product
• Scalability/Availability are built in to the platform
access any file in seconds,
wherever it is.
www.meta.sc/careers
careers@meta.sc

More Related Content

What's hot (20)

PPTX
Introduction to Google Cloud Services / Platforms
Nilanchal
 
PDF
Google Cloud Platform as a Backend Solution for your Product
Sergey Smetanin
 
PPTX
Scaling Galaxy on Google Cloud Platform
Lynn Langit
 
PDF
Google Cloud Platform Update
Ido Green
 
PPTX
Google Cloud Platform, Compute Engine, and App Engine
Csaba Toth
 
PDF
Google Cloud: Data Analysis and Machine Learningn Technologies
Andrés Leonardo Martinez Ortiz
 
PDF
Google I/O 2016 Recap - Google Cloud Platform News Update
Simon Su
 
PDF
Google Compute Engine Starter Guide
Simon Su
 
PDF
GDG DevFest Romania - Architecting for the Google Cloud Platform
Márton Kodok
 
PDF
A Tour of Google Cloud Platform
Colin Su
 
PPT
L2 3.fa19
Kv Sagar
 
PDF
Google Cloud Connect Korea - Sep 2017
Google Cloud Korea
 
PDF
Google Cloud Platform - Cloud-Native Roadshow Stuttgart
VMware Tanzu
 
PDF
Tom Grey - Google Cloud Platform
Fondazione CUOA
 
PPTX
SQL Server on Google Cloud Platform
Lynn Langit
 
PPTX
Introduction to Google Cloud Platform
dhruv_chaudhari
 
PDF
Introduction to Google Compute Engine
Colin Su
 
PDF
Introduction to Google Cloud Platform Technologies
Chris Schalk
 
PDF
Google Cloud - Scale With A Smile (Dec 2014)
Ido Green
 
PDF
Getting started with Google Cloud Training Material - 2018
JK Baseer
 
Introduction to Google Cloud Services / Platforms
Nilanchal
 
Google Cloud Platform as a Backend Solution for your Product
Sergey Smetanin
 
Scaling Galaxy on Google Cloud Platform
Lynn Langit
 
Google Cloud Platform Update
Ido Green
 
Google Cloud Platform, Compute Engine, and App Engine
Csaba Toth
 
Google Cloud: Data Analysis and Machine Learningn Technologies
Andrés Leonardo Martinez Ortiz
 
Google I/O 2016 Recap - Google Cloud Platform News Update
Simon Su
 
Google Compute Engine Starter Guide
Simon Su
 
GDG DevFest Romania - Architecting for the Google Cloud Platform
Márton Kodok
 
A Tour of Google Cloud Platform
Colin Su
 
L2 3.fa19
Kv Sagar
 
Google Cloud Connect Korea - Sep 2017
Google Cloud Korea
 
Google Cloud Platform - Cloud-Native Roadshow Stuttgart
VMware Tanzu
 
Tom Grey - Google Cloud Platform
Fondazione CUOA
 
SQL Server on Google Cloud Platform
Lynn Langit
 
Introduction to Google Cloud Platform
dhruv_chaudhari
 
Introduction to Google Compute Engine
Colin Su
 
Introduction to Google Cloud Platform Technologies
Chris Schalk
 
Google Cloud - Scale With A Smile (Dec 2014)
Ido Green
 
Getting started with Google Cloud Training Material - 2018
JK Baseer
 

Viewers also liked (13)

PPTX
Monitoramento de múltiplas plataformas com o System Center 2012 R2
Gustavo Zimmermann (MVP)
 
PDF
PRONATEC: Matemática básica slide 2
Israel serique
 
PPTX
Regions
Mallory Holdbrooks
 
PDF
The cloud is my laboratory, Adam Friedman
Stephen Wallace
 
PDF
Abastecimento de agua manual
CIPRIANO IRASMO DA SILVA
 
PDF
Virtual Meeting Room
Benjamin Raethlein
 
PPTX
Animales granja examen
adrinanny
 
PPTX
Aula 1º semana
Adilson Alves
 
PPTX
Retrofit caching V1.9.0 - Android OkClient
Mathan Raj
 
PPTX
AD na nuvem, mito ou verdade?
Sara Barbosa
 
PPT
Aula 1 mecânica aplicada
Juliana Jeniffer
 
PPT
Ressonância e Batimento © Slideshow by Jair LP
Jair Lucio Prados Ribeiro
 
PDF
Introdução ao Coaching
Paulo André Jesus
 
Monitoramento de múltiplas plataformas com o System Center 2012 R2
Gustavo Zimmermann (MVP)
 
PRONATEC: Matemática básica slide 2
Israel serique
 
The cloud is my laboratory, Adam Friedman
Stephen Wallace
 
Abastecimento de agua manual
CIPRIANO IRASMO DA SILVA
 
Virtual Meeting Room
Benjamin Raethlein
 
Animales granja examen
adrinanny
 
Aula 1º semana
Adilson Alves
 
Retrofit caching V1.9.0 - Android OkClient
Mathan Raj
 
AD na nuvem, mito ou verdade?
Sara Barbosa
 
Aula 1 mecânica aplicada
Juliana Jeniffer
 
Ressonância e Batimento © Slideshow by Jair LP
Jair Lucio Prados Ribeiro
 
Introdução ao Coaching
Paulo André Jesus
 
Ad

Similar to Getting Started on Google Cloud Platform (20)

PDF
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
PPT
AWS (Hadoop) Meetup 30.04.09
Chris Purrington
 
PPTX
Understanding cloud with Google Cloud Platform
Dr. Ketan Parmar
 
PDF
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Alluxio, Inc.
 
PPTX
Going Serverless - an Introduction to AWS Glue
Michael Rainey
 
PPTX
A lap around Azure Data Factory
BizTalk360
 
PDF
Buildingsocialanalyticstoolwithmongodb
MongoDB APAC
 
PDF
Modern MySQL Monitoring and Dashboards.
Mydbops
 
PDF
Where Django Caching Bust at the Seams
Concentric Sky
 
PDF
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Gabriele Bartolini
 
PPTX
DOTNET8.pptx
Udaiappa Ramachandran
 
PPTX
Real Time Big Data Processing on AWS
Caserta
 
PDF
Overview of data analytics service: Treasure Data Service
SATOSHI TAGOMORI
 
PDF
Technologies for Data Analytics Platform
N Masahiro
 
PDF
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Alluxio, Inc.
 
PDF
Jeremy Engle's slides from Redshift / Big Data meetup on July 13, 2017
AWS Chicago
 
PPTX
DataStax - Analytics on Apache Cassandra - Paris Tech Talks meetup
Victor Coustenoble
 
PPTX
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Altinity Ltd
 
PDF
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Databricks
 
PPTX
Machine Learning with ML.NET and Azure - Andy Cross
Andrew Flatters
 
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
AWS (Hadoop) Meetup 30.04.09
Chris Purrington
 
Understanding cloud with Google Cloud Platform
Dr. Ketan Parmar
 
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Alluxio, Inc.
 
Going Serverless - an Introduction to AWS Glue
Michael Rainey
 
A lap around Azure Data Factory
BizTalk360
 
Buildingsocialanalyticstoolwithmongodb
MongoDB APAC
 
Modern MySQL Monitoring and Dashboards.
Mydbops
 
Where Django Caching Bust at the Seams
Concentric Sky
 
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Gabriele Bartolini
 
DOTNET8.pptx
Udaiappa Ramachandran
 
Real Time Big Data Processing on AWS
Caserta
 
Overview of data analytics service: Treasure Data Service
SATOSHI TAGOMORI
 
Technologies for Data Analytics Platform
N Masahiro
 
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Alluxio, Inc.
 
Jeremy Engle's slides from Redshift / Big Data meetup on July 13, 2017
AWS Chicago
 
DataStax - Analytics on Apache Cassandra - Paris Tech Talks meetup
Victor Coustenoble
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Altinity Ltd
 
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Databricks
 
Machine Learning with ML.NET and Azure - Andy Cross
Andrew Flatters
 
Ad

Recently uploaded (20)

PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 

Getting Started on Google Cloud Platform

  • 1. Getting Started on Google Cloud Platform Aaron Taylor @ataylor0123
  • 2. access any file in seconds, wherever it is. www.meta.sc
  • 7. Talk Roadmap • What problems we face at Meta • How we are solving them using GCP • How you can get started on GCP
  • 8. Building a product • No baggage, free to choose whatever stack we want • Take advantage of latest technologies • but not quite bleeding edge
  • 9. Engineering Goals • This will be a complex product, it needs to be comprehensible to everyone on our team • Keep the team as lean as possible • Focus on product, not sysadmin and dev ops
  • 10. Language Choices • Go chosen as our primary language • Python for NLP and data analysis • enables easy experimentation, comfortable for data scientists and developers • Java/Scala interacting with Dataflow, Apache Tika, etc.
  • 11. Our Hard Problems • User onboarding load • Heterogeneous (changing) data sources • Unpredictable traffic from web hooks • Compute loads for file content analysis • Processing streaming data
  • 12. User Onboarding • Crawl multiple cloud accounts at once • Parallel computation • In-process using Go • Distributed using tasks • App Engine Taskqueues
  • 13. Heterogeneous Data • Remove complexity of third-party services • Detect changes/ breakages in APIs • Distributed by nature • Continuous Deployment • Datastore • BigQuery
  • 14. Unpredictable Traffic • Changes are pushed to us through web hooks • Dropping changes generally unacceptable • One user should not negatively impact others • App Engine autoscaling • Asynchronous task queues
  • 15. Compute loads • Rich file content analysis • Parallel computation • App Engine Flexible Runtimes • CPU-based autoscaling
  • 16. Stream Processing • Efficient handling of high-volume changes • Collate events in succession, from multiple users • Google Cloud Pub/Sub • Google Cloud Dataflow
  • 17. How we started off • App Engine is our entry point • Service Oriented Architecture • Currently ~37 different services • Cloud Datastore is our persistence layer • BigQuery as a data warehouse
  • 18. Documentation • Lots of information for getting started • Quality resources for our growing team • Onboarding new developers without GCP experience has been a breeze • Google is devoting lots of resources to this area
  • 19. App Engine • Don’t worry about servers • Cache, task queues, cron, database, logging, monitoring, and more all built in • Powerful, configurable autoscaling • Heavy compute on App Engine Flexible Runtimes
  • 20. Development Process • Build, run, and test services locally • Continuous deployment to a development project • Incremental releases go to production project • Logging and monitoring easy to setup
  • 21. Problems we faced • Mantra of “don’t worry about scalability”didn’t take us very far • Users have lots and lots of files • Datastore use optimizations • Cost issues with App Engine • Trimming auto-scaling parameters • Migrated heavy compute to Flexible Runtimes
  • 22. Outside GCP • Algolia • Hosts infrastructure for our search indices • Pusher • realtime socket connections • Postmark/Mailchimp • transactional and campaign-based email
  • 23. Growth of the platform • Rapid changes and improvements taking place • Flexible Runtimes • Container Engine • Dataflow • Investing in a documentation overhaul soon • Support is generally quite responsive
  • 24. Recent Developments • Introduction of Pub/Sub to our system for all event processing • Experimenting with Kubernetes/Container Engine • Dataflow stream processing jobs • Splitting functionality into multiple projects
  • 25. Quickstart Documentation for Go How you can start off
  • 26. Hello World in Go https://cloud.google.com/appengine/docs/go/quickstart
  • 27. Server package hello import ( "fmt" "net/http" ) func init() { http.HandleFunc("/", handler) } func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, world!") } hello.go
  • 28. Configuration runtime: go api_version: go1 handlers: - url: /.* script: _go_app app.yaml
  • 31. Datastoretype Greeting struct { Author string Content string Date time.Time } // guestbookKey returns the key used for all guestbook entries. func guestbookKey(c appengine.Context) *datastore.Key { // The string "default_guestbook" here could be varied to have multiple guestbooks. return datastore.NewKey(c, "Guestbook", "default_guestbook", 0, nil) } func root(w http.ResponseWriter, r *http.Request) { c := appengine.NewContext(r) // Ancestor queries, as shown here, are strongly consistent with the High // Replication Datastore. Queries that span entity groups are eventually // consistent. If we omitted the .Ancestor from this query there would be // a slight chance that Greeting that had just been written would not // show up in a query. q := datastore.NewQuery("Greeting").Ancestor(guestbookKey(c)).Order("-Date").Limit(10) greetings := make([]Greeting, 0, 10) if _, err := q.GetAll(c, &greetings); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if err := guestbookTemplate.Execute(w, greetings); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }
  • 32. Templates var guestbookTemplate = template.Must(template.New("book").Parse(` <html> <head> <title>Go Guestbook</title> </head> <body> {{range .}} {{with .Author}} <p><b>{{.}}</b> wrote:</p> {{else}} <p>An anonymous person wrote:</p> {{end}} <pre>{{.Content}}</pre> {{end}} <form action="/sign" method="post"> <div><textarea name="content" rows="3" cols="60"></textarea></div> <div><input type="submit" value="Sign Guestbook"></div> </form> </body> </html> `))
  • 33. Forms func sign(w http.ResponseWriter, r *http.Request) { c := appengine.NewContext(r) g := Greeting{ Content: r.FormValue("content"), Date: time.Now(), } if u := user.Current(c); u != nil { g.Author = u.String() } // We set the same parent key on every Greeting entity to ensure each Greeting // is in the same entity group. Queries across the single entity group // will be consistent. However, the write rate to a single entity group // should be limited to ~1/second. key := datastore.NewIncompleteKey(c, "Greeting", guestbookKey(c)) _, err := datastore.Put(c, key, &g) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } http.Redirect(w, r, "/", http.StatusFound) }
  • 34. Conclusions • Google Cloud Platform has allowed us to build out Meta in ways that wouldn’t otherwise be feasible • Simplicity of App Engine allows us to focus on product • Scalability/Availability are built in to the platform
  • 35. access any file in seconds, wherever it is. www.meta.sc/careers [email protected]