SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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
 

Similar a 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
 

Más 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
 

Más 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
 

Último

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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