SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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 ConferenceJohn 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 MongoDBFlowdock
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web appsJungHyuk 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 NodeJSSylvain Zimmer
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRailsChris 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 DesignDATAVERSITY
 
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.2012Paris 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 LaforgeGuillaume 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 CloudSteve Loughran
 
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 Disquszeeg
 

Similaire à 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
 
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
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
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
 

Plus de ikailan

Your language doesn't scale
Your language doesn't scaleYour language doesn't scale
Your language doesn't scaleikailan
 
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 daysikailan
 
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-oauthikailan
 
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-datastoreikailan
 
2011 july-nyc-gtug-go
2011 july-nyc-gtug-go2011 july-nyc-gtug-go
2011 july-nyc-gtug-goikailan
 
2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastoreikailan
 
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 2011ikailan
 
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 mongodbikailan
 
Introducing the App Engine datastore
Introducing the App Engine datastoreIntroducing the App Engine datastore
Introducing the App Engine datastoreikailan
 
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 2010ikailan
 
Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101ikailan
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngineikailan
 

Plus de 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
 

Dernier

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Dernier (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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