Your SlideShare is downloading. ×
0
GAE Program Update                              Ikai Lan - @ikai                             Singapore GTUG               ...
About the speaker                    • Developer Relations at Google based out                        of San Francisco, CA...
Agenda                    • What is Google App Engine?                    • What’s new in App Engine?                    •...
What is                          cloud                        computing?                           3Monday, June 13, 2011
SaaS                        APaaS                         IaaS                                Source: Gartner AADI Summit ...
SaaS                        APaaS                         IaaS                                Source: Gartner AADI Summit ...
SaaS                        APaaS                         IaaS                                Source: Gartner AADI Summit ...
SaaS                        APaaS                         IaaS                                Source: Gartner AADI Summit ...
• Easy to build                    • Easy to manage                    • Easy to scaleMonday, 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 pageviewsMonday, June 13, 2011
SDK & “The Cloud”                Hardware                Networking                Operating system                Applica...
Duke, the Java mascot                        Go Gopher    Copyright © Sun Microsystems Inc., all rights reserved.Monday, J...
Extended Language support                               through JVM                  • Java                  • Scala      ...
(We’ll talk         about this guy            in a bit)                          The Go GopherMonday, June 13, 2011
Core APIs                        Memcache      Datastore   URL Fetch                          Mail         XMPP       Task...
Two+ years in review                        Apr   2008   Python launch                        May   2008   Memcache, Image...
Two+ years in review                        Mar   2010   Read policies, IPv6                        May   2010   OpenID, O...
App Engine                                   Roadmap                              http://code.google.com/appengine/docs/ro...
High Replication                    • Strongly consistent, multi-datastore, multi-                        data center serv...
Leaving preview ...                    • Pricing changes towards a sustainable                        model               ...
Go on App Engine                    • Go with most features intact on App Engine                    • Goroutines          ...
Why Go?                    • Fast, modern language                    • Strongly typed, very flexible interfaces           ...
Fast, modern languages                    • Standard library: JSON, websockets, web                        server; more   ...
Strongly typed                    • ... but feels like a dynamic languages                    •   // Combo statement - We ...
Flexible interfaces                        // This is an interface declaration                        type myInterface int...
First class functions               package main               import "fmt"               // Make a function that returns ...
Concurrency baked in                    • goroutines - prefix a go in front of a                         method and it will...
Goroutines and                        package main                                    Channels                        impo...
It runs on App Engine!                    • Currently requires whitelisting                    • Experimental status      ...
MustachioMonday, June 13, 2011
Summary                    • Lots has been going on with App Engine!                    • Lots more on the way            ...
Upcoming SlideShare
Loading in...5
×

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

1,612

Published on

Slides for my talk at the Singapore GTUG in June 2011. Includes a quick program update as well as an introduction to Golang.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,612
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. GAE Program Update Ikai Lan - @ikai Singapore GTUG June 12, 2011Monday, June 13, 2011
  2. 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: @ikaiMonday, June 13, 2011
  3. 3. Agenda • What is Google App Engine? • What’s new in App Engine? • What’s coming in App Engine? • Go on App EngineMonday, June 13, 2011
  4. 4. What is cloud computing? 3Monday, June 13, 2011
  5. 5. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009Monday, June 13, 2011
  6. 6. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009Monday, June 13, 2011
  7. 7. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009Monday, June 13, 2011
  8. 8. SaaS APaaS IaaS Source: Gartner AADI Summit Dec 2009Monday, June 13, 2011
  9. 9. • Easy to build • Easy to manage • Easy to scaleMonday, June 13, 2011
  10. 10. “We wear pagers so you don’t have to”Monday, June 13, 2011
  11. 11. Monday, June 13, 2011
  12. 12. >90K Developers >130K Apps >700M daily pageviewsMonday, June 13, 2011
  13. 13. SDK & “The Cloud” Hardware Networking Operating system Application runtime Java, Python Static file serving 20Monday, June 13, 2011
  14. 14. Duke, the Java mascot Go Gopher Copyright © Sun Microsystems Inc., all rights reserved.Monday, June 13, 2011
  15. 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. 16. (We’ll talk about this guy in a bit) The Go GopherMonday, June 13, 2011
  17. 17. Core APIs Memcache Datastore URL Fetch Mail XMPP Task Queue Images Blobstore User ServiceMonday, June 13, 2011
  18. 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 UrlFetchMonday, June 13, 2011
  19. 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 releaseMonday, June 13, 2011
  20. 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 DevelopersMonday, June 13, 2011
  21. 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 outagesMonday, June 13, 2011
  22. 22. Leaving preview ... • Pricing changes towards a sustainable model • Guarantee that Google is investing in long term future of App Engine • Premium support availableMonday, June 13, 2011
  23. 23. Go on App Engine • Go with most features intact on App Engine • Goroutines • Execution speed!Monday, June 13, 2011
  24. 24. Why Go? • Fast, modern language • Strongly typed, very flexible interfaces • Functions as first class objects • Ridiculously fast compilation times • Concurrency baked in • ToolingMonday, June 13, 2011
  25. 25. Fast, modern languages • Standard library: JSON, websockets, web server; more • Garbage collection • Multiple return values • UnicodeMonday, June 13, 2011
  26. 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. 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. 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 202Monday, June 13, 2011
  29. 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 communicationMonday, June 13, 2011
  30. 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. 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
  32. 32. MustachioMonday, June 13, 2011
  33. 33. Summary • Lots has been going on with App Engine! • Lots more on the way • Go (golang.org) - worth a lookMonday, June 13, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×