SlideShare a Scribd company logo
GAE Program Update
                              Ikai Lan - @ikai
                             Singapore GTUG
                               June 12, 2011




Monday, June 13, 2011
About the speaker
                    • Developer Relations at Google based out
                        of San Francisco, CA
                    • Software Engineer at heart
                    • Singapore, Kuala Lumpur and Taipei on this
                        trip
                    • Twitter: @ikai

Monday, June 13, 2011
Agenda

                    • What is Google App Engine?
                    • What’s new in App Engine?
                    • What’s coming in App Engine?
                    • Go on App Engine

Monday, June 13, 2011
What is
                          cloud
                        computing?




                           3
Monday, June 13, 2011
SaaS

                        APaaS


                         IaaS

                                Source: Gartner AADI Summit Dec 2009


Monday, June 13, 2011
SaaS

                        APaaS


                         IaaS

                                Source: Gartner AADI Summit Dec 2009


Monday, June 13, 2011
SaaS

                        APaaS


                         IaaS

                                Source: Gartner AADI Summit Dec 2009


Monday, June 13, 2011
SaaS

                        APaaS


                         IaaS

                                Source: Gartner AADI Summit Dec 2009


Monday, June 13, 2011
• Easy to build
                    • Easy to manage
                    • Easy to scale

Monday, June 13, 2011
“We wear pagers so
                         you don’t have to”




Monday, June 13, 2011
Monday, June 13, 2011
>90K Developers

                            >130K Apps

                        >700M daily pageviews


Monday, June 13, 2011
SDK & “The Cloud”

                Hardware

                Networking

                Operating system

                Application runtime

                        Java, Python

                Static file serving

                                       20

Monday, June 13, 2011
Duke, the Java mascot
                        Go Gopher    Copyright © Sun Microsystems Inc., all rights reserved.




Monday, June 13, 2011
Extended Language support
                               through JVM

                  • Java
                  • Scala
                  • JRuby (Ruby)
                                             Duke, the Java mascot
                  • Groovy                Copyright © Sun Microsystems Inc., all rights reserved.




                  • Quercus (PHP)
                  • Rhino (JavaScript)
                  • Jython (Python)


Monday, June 13, 2011
(We’ll talk
         about this guy
            in a bit)


                          The Go Gopher
Monday, June 13, 2011
Core APIs
                        Memcache      Datastore   URL Fetch




                          Mail         XMPP       Task Queue




                         Images       Blobstore   User Service


Monday, June 13, 2011
Two+ years in review
                        Apr   2008   Python launch
                        May   2008   Memcache, Images API
                        Jul   2008   Logs export
                        Aug   2008   Batch write/delete
                        Oct   2008   HTTPS support
                        Dec   2008   Status dashboard, quota details
                        Feb   2009   Billing, larger files
                        Apr   2009   Java launch, DB import, cron support, SDC
                        May   2009   Key-only queries
                        Jun   2009   Task queues
                        Aug   2009   Kindless queries
                        Sep   2009   XMPP
                        Oct   2009   Incoming email
                        Dec   2009   Blobstore
                        Feb   2010   Datastore cursors, Appstats, Async UrlFetch



Monday, June 13, 2011
Two+ years in review
                        Mar   2010   Read policies, IPv6
                        May   2010   OpenID, OAuth, Bulkloader
                        Jun   2010   Python Precompilation, raised Task Queue limits
                        Aug   2010   Multitenancy
                        Oct   2010   Datastore Admin, query improvements
                        Dec   2010   Always on, Channel API, Task queue out of labs
                        Jan   2011   High Replication Datastore, datastore copy
                        Feb   2011   XMPP Presence, programmatic Task Queue deletions
                        Mar   2011   Files API, Prospective Search, Testbed API
                        May   2011   Backends, Pull Queues, massive bugfix release




Monday, June 13, 2011
App Engine
                                   Roadmap
                              http://code.google.com/appengine/docs/roadmap.html




              •    App Engine out of Preview
              •    SSL access on custom domains
              •    Full-text search over Datastore
              •    Support for Python 2.7
              •    Support for running MapReduce jobs across App Engine datasets
              •    Bulk Datastore Import and Export tool
              •    Improved monitoring and alerting of application serving
              •    Logging system improvements to remove limits on size and storage
              •    Integration with Google Storage for Developers
Monday, June 13, 2011
High Replication

                    • Strongly consistent, multi-datastore, multi-
                        data center serving solution
                    • Write once, have your data be available in a
                        highly consistent manner
                    • No data loss, no datastore outages

Monday, June 13, 2011
Leaving preview ...

                    • Pricing changes towards a sustainable
                        model
                    • Guarantee that Google is investing in long
                        term future of App Engine
                    • Premium support available

Monday, June 13, 2011
Go on App Engine

                    • Go with most features intact on App Engine
                    • Goroutines
                    • Execution speed!


Monday, June 13, 2011
Why Go?
                    • Fast, modern language
                    • Strongly typed, very flexible interfaces
                    • Functions as first class objects
                    • Ridiculously fast compilation times
                    • Concurrency baked in
                    • Tooling
Monday, June 13, 2011
Fast, modern languages

                    • Standard library: JSON, websockets, web
                        server; more
                    • Garbage collection
                    • Multiple return values
                    • Unicode

Monday, June 13, 2011
Strongly typed


                    • ... but feels like a dynamic languages
                    •   // Combo statement - We can infer type here, so no
                        Java style type declaration redundancy

                        s := “This is a String”




Monday, June 13, 2011
Flexible interfaces
                        // This is an interface declaration
                        type myInterface interface {
                        	   set(i int)
                        }

                        // This is a Type declaration. Note that it is a type, not a class
                        type myType struct {
                            i int
                        }

                        // This is how we define a function where myType is a receiver
                        // With an instance of myType we can call myType.set(123)
                        func (p *myType) set(i int) {
                           p.i = i
                        }

                        // Because myType defines a function with the signature set(int i) method,
                        // we can use it anywhere myInterface is accepted!
                        func setToThousand(x myInterface) {
                           myInterface.set(1000)
                        }




Monday, June 13, 2011
First class functions
               package main
               import "fmt"

               // Make a function that returns a new function
               func makeAdd(increment int) (counter func(int) int) {
                       return func(v int) int {
                               return v + increment;
                       }
               }

               func main() {
                       fmt.Printf("value of makeAdd(100)(1) is %vn", makeAdd(100)(1));
                       fmt.Printf("value of makeAdd(200)(2) is %vn", makeAdd(200)(2));
               }

               // Outputs:
               // value of makeAdd(100)(1) is 101
               // value of makeAdd(200)(2) is 202




Monday, June 13, 2011
Concurrency baked in

                    • goroutines - prefix a go in front of a
                         method and it will run concurrently! Similar
                         to appending & in *nix systems
                    • channels - blocking or buffered queues for
                         cross process communication




Monday, June 13, 2011
Goroutines and
                        package main
                                    Channels
                        import (
                            "fmt"
                            "time"
                        )

                        func doLotsOfWork(until int, ch chan int) {
                            c := 0
                            for i := 0; i < until; i++ {
                                c += i
                                time.Sleep(1000)
                            }
                            ch <- c
                        }

                        func main() {
                            ch := make(chan int)

                            // First the work off into the background
                            go doLotsOfWork(5, ch)

                            // Do more work here while we wait for this process to complete

                            // Block until doLotsOfWork sends data back on this channel
                            i := <- ch
                            fmt.Printf("Final value: %vn", i)
                        }


Monday, June 13, 2011
It runs on App Engine!
                    • Currently requires whitelisting
                    • Experimental status
                    • Goroutines allow for concurrency within
                        request; concurrent requests coming
                    • Demo app: http://moustach-io.appspot.com/
                    • Source: https://code.google.com/p/
                        appengine-go/source/browse/example/


Monday, June 13, 2011
Mustachio




Monday, June 13, 2011
Summary

                    • Lots has been going on with App Engine!
                    • Lots more on the way
                    • Go (golang.org) - worth a look


Monday, June 13, 2011

More Related Content

Similar to 2011 June - Singapore GTUG presentation. App Engine program update + intro to Go

Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
John Woodell
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
weschwee
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009John Woodell
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDB
Flowdock
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web apps
JungHyuk Kwon
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
Sylvain Zimmer
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
Chris Bunch
 
MongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema DesignMongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema Design
DATAVERSITY
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayWesley Hales
 
Develop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App EngineDevelop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App EngineDavid Chandler
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Paris Open Source Summit
 
Gaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
Gaelyk - Groovy Grails eXchange 2010 - Guillaume LaforgeGaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
Gaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
Guillaume Laforge
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forwardeug3n_cojocaru
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
Steve Loughran
 
Groke
GrokeGroke
Open End To End Js Stack
Open End To End Js StackOpen End To End Js Stack
Open End To End Js StackSkills Matter
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disqus
zeeg
 

Similar to 2011 June - Singapore GTUG presentation. App Engine program update + intro to Go (20)

Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDB
 
Railsconf 2010
Railsconf 2010Railsconf 2010
Railsconf 2010
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web apps
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
 
MongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema DesignMongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema Design
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies Today
 
Develop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App EngineDevelop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App Engine
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
 
Gaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
Gaelyk - Groovy Grails eXchange 2010 - Guillaume LaforgeGaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
Gaelyk - Groovy Grails eXchange 2010 - Guillaume Laforge
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
 
20100608sigmod
20100608sigmod20100608sigmod
20100608sigmod
 
Groke
GrokeGroke
Groke
 
Open End To End Js Stack
Open End To End Js StackOpen End To End Js Stack
Open End To End Js Stack
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disqus
 

More from ikailan

Your language doesn't scale
Your language doesn't scaleYour language doesn't scale
Your language doesn't scale
ikailan
 
From 0-1 billion in 46 days
From 0-1 billion in 46 daysFrom 0-1 billion in 46 days
From 0-1 billion in 46 days
ikailan
 
2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth
ikailan
 
2011 aug-gdd-mexico-city-high-replication-datastore
2011 aug-gdd-mexico-city-high-replication-datastore2011 aug-gdd-mexico-city-high-replication-datastore
2011 aug-gdd-mexico-city-high-replication-datastore
ikailan
 
2011 july-nyc-gtug-go
2011 july-nyc-gtug-go2011 july-nyc-gtug-go
2011 july-nyc-gtug-go
ikailan
 
2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore
ikailan
 
Intro to App Engine - Agency Dev Day NYC 2011
Intro to App Engine - Agency Dev Day NYC 2011Intro to App Engine - Agency Dev Day NYC 2011
Intro to App Engine - Agency Dev Day NYC 2011
ikailan
 
Rapid web development using tornado web and mongodb
Rapid web development using tornado web and mongodbRapid web development using tornado web and mongodb
Rapid web development using tornado web and mongodb
ikailan
 
Introducing the App Engine datastore
Introducing the App Engine datastoreIntroducing the App Engine datastore
Introducing the App Engine datastore
ikailan
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? Oikailan
 
OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010
ikailan
 
Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101
ikailan
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngineikailan
 

More from ikailan (13)

Your language doesn't scale
Your language doesn't scaleYour language doesn't scale
Your language doesn't scale
 
From 0-1 billion in 46 days
From 0-1 billion in 46 daysFrom 0-1 billion in 46 days
From 0-1 billion in 46 days
 
2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth
 
2011 aug-gdd-mexico-city-high-replication-datastore
2011 aug-gdd-mexico-city-high-replication-datastore2011 aug-gdd-mexico-city-high-replication-datastore
2011 aug-gdd-mexico-city-high-replication-datastore
 
2011 july-nyc-gtug-go
2011 july-nyc-gtug-go2011 july-nyc-gtug-go
2011 july-nyc-gtug-go
 
2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore
 
Intro to App Engine - Agency Dev Day NYC 2011
Intro to App Engine - Agency Dev Day NYC 2011Intro to App Engine - Agency Dev Day NYC 2011
Intro to App Engine - Agency Dev Day NYC 2011
 
Rapid web development using tornado web and mongodb
Rapid web development using tornado web and mongodbRapid web development using tornado web and mongodb
Rapid web development using tornado web and mongodb
 
Introducing the App Engine datastore
Introducing the App Engine datastoreIntroducing the App Engine datastore
Introducing the App Engine datastore
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
 
OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010
 
Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngine
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 

2011 June - Singapore GTUG presentation. App Engine program update + intro to Go

  • 1. GAE Program Update Ikai Lan - @ikai Singapore GTUG June 12, 2011 Monday, June 13, 2011
  • 2. About the speaker • Developer Relations at Google based out of San Francisco, CA • Software Engineer at heart • Singapore, Kuala Lumpur and Taipei on this trip • Twitter: @ikai Monday, June 13, 2011
  • 3. Agenda • What is Google App Engine? • What’s new in App Engine? • What’s coming in App Engine? • Go on App Engine Monday, June 13, 2011
  • 4. What is cloud computing? 3 Monday, June 13, 2011
  • 5. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009 Monday, June 13, 2011
  • 6. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009 Monday, June 13, 2011
  • 7. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009 Monday, June 13, 2011
  • 8. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009 Monday, June 13, 2011
  • 9. • Easy to build • Easy to manage • Easy to scale Monday, June 13, 2011
  • 10. “We wear pagers so you don’t have to” Monday, June 13, 2011
  • 12. >90K Developers >130K Apps >700M daily pageviews Monday, June 13, 2011
  • 13. SDK & “The Cloud” Hardware Networking Operating system Application runtime Java, Python Static file serving 20 Monday, June 13, 2011
  • 14. Duke, the Java mascot Go Gopher Copyright © Sun Microsystems Inc., all rights reserved. Monday, June 13, 2011
  • 15. Extended Language support through JVM • Java • Scala • JRuby (Ruby) Duke, the Java mascot • Groovy Copyright © Sun Microsystems Inc., all rights reserved. • Quercus (PHP) • Rhino (JavaScript) • Jython (Python) Monday, June 13, 2011
  • 16. (We’ll talk about this guy in a bit) The Go Gopher Monday, June 13, 2011
  • 17. Core APIs Memcache Datastore URL Fetch Mail XMPP Task Queue Images Blobstore User Service Monday, June 13, 2011
  • 18. Two+ years in review Apr 2008 Python launch May 2008 Memcache, Images API Jul 2008 Logs export Aug 2008 Batch write/delete Oct 2008 HTTPS support Dec 2008 Status dashboard, quota details Feb 2009 Billing, larger files Apr 2009 Java launch, DB import, cron support, SDC May 2009 Key-only queries Jun 2009 Task queues Aug 2009 Kindless queries Sep 2009 XMPP Oct 2009 Incoming email Dec 2009 Blobstore Feb 2010 Datastore cursors, Appstats, Async UrlFetch Monday, June 13, 2011
  • 19. Two+ years in review Mar 2010 Read policies, IPv6 May 2010 OpenID, OAuth, Bulkloader Jun 2010 Python Precompilation, raised Task Queue limits Aug 2010 Multitenancy Oct 2010 Datastore Admin, query improvements Dec 2010 Always on, Channel API, Task queue out of labs Jan 2011 High Replication Datastore, datastore copy Feb 2011 XMPP Presence, programmatic Task Queue deletions Mar 2011 Files API, Prospective Search, Testbed API May 2011 Backends, Pull Queues, massive bugfix release Monday, June 13, 2011
  • 20. App Engine Roadmap http://code.google.com/appengine/docs/roadmap.html • App Engine out of Preview • SSL access on custom domains • Full-text search over Datastore • Support for Python 2.7 • Support for running MapReduce jobs across App Engine datasets • Bulk Datastore Import and Export tool • Improved monitoring and alerting of application serving • Logging system improvements to remove limits on size and storage • Integration with Google Storage for Developers Monday, June 13, 2011
  • 21. High Replication • Strongly consistent, multi-datastore, multi- data center serving solution • Write once, have your data be available in a highly consistent manner • No data loss, no datastore outages Monday, June 13, 2011
  • 22. Leaving preview ... • Pricing changes towards a sustainable model • Guarantee that Google is investing in long term future of App Engine • Premium support available Monday, June 13, 2011
  • 23. Go on App Engine • Go with most features intact on App Engine • Goroutines • Execution speed! Monday, June 13, 2011
  • 24. Why Go? • Fast, modern language • Strongly typed, very flexible interfaces • Functions as first class objects • Ridiculously fast compilation times • Concurrency baked in • Tooling Monday, June 13, 2011
  • 25. Fast, modern languages • Standard library: JSON, websockets, web server; more • Garbage collection • Multiple return values • Unicode Monday, June 13, 2011
  • 26. Strongly typed • ... but feels like a dynamic languages • // Combo statement - We can infer type here, so no Java style type declaration redundancy s := “This is a String” Monday, June 13, 2011
  • 27. Flexible interfaces // This is an interface declaration type myInterface interface { set(i int) } // This is a Type declaration. Note that it is a type, not a class type myType struct { i int } // This is how we define a function where myType is a receiver // With an instance of myType we can call myType.set(123) func (p *myType) set(i int) { p.i = i } // Because myType defines a function with the signature set(int i) method, // we can use it anywhere myInterface is accepted! func setToThousand(x myInterface) { myInterface.set(1000) } Monday, June 13, 2011
  • 28. First class functions package main import "fmt" // Make a function that returns a new function func makeAdd(increment int) (counter func(int) int) { return func(v int) int { return v + increment; } } func main() { fmt.Printf("value of makeAdd(100)(1) is %vn", makeAdd(100)(1)); fmt.Printf("value of makeAdd(200)(2) is %vn", makeAdd(200)(2)); } // Outputs: // value of makeAdd(100)(1) is 101 // value of makeAdd(200)(2) is 202 Monday, June 13, 2011
  • 29. Concurrency baked in • goroutines - prefix a go in front of a method and it will run concurrently! Similar to appending & in *nix systems • channels - blocking or buffered queues for cross process communication Monday, June 13, 2011
  • 30. Goroutines and package main Channels import ( "fmt" "time" ) func doLotsOfWork(until int, ch chan int) { c := 0 for i := 0; i < until; i++ { c += i time.Sleep(1000) } ch <- c } func main() { ch := make(chan int) // First the work off into the background go doLotsOfWork(5, ch) // Do more work here while we wait for this process to complete // Block until doLotsOfWork sends data back on this channel i := <- ch fmt.Printf("Final value: %vn", i) } Monday, June 13, 2011
  • 31. It runs on App Engine! • Currently requires whitelisting • Experimental status • Goroutines allow for concurrency within request; concurrent requests coming • Demo app: http://moustach-io.appspot.com/ • Source: https://code.google.com/p/ appengine-go/source/browse/example/ Monday, June 13, 2011
  • 33. Summary • Lots has been going on with App Engine! • Lots more on the way • Go (golang.org) - worth a look Monday, June 13, 2011