SlideShare une entreprise Scribd logo
1  sur  156
Télécharger pour lire hors ligne
Google App Engine



                        Feb – March, 2010
                        Patrick Chanezon
                        Developer Advocate
                        Google Developer Relations
                        chanezon@google.com


                                                     Google Confidential and Proprietary   1

Monday, March 8, 2010
Agenda

            - App Engine introduction
            - Why build it?
            - App Engine tour
            - What's different?
            - Wrap up
            - Questions
                                        2

Monday, March 8, 2010
4. The spirit is unmoving, one, swifter than the mind. The
               senses do not reach It as It is ever ahead of them. Though
               Itself standing still It outstrips those who run.
               In It the all-pervading air supports the activities of beings


                                                    Isha Upanishad
                                             3

Monday, March 8, 2010
Vayu computing?




     Public domain image from http://commons.wikimedia.org/wiki/File:Vayu.jpg
                                                   4

Monday, March 8, 2010
Vayu Computing?

            7−10
            Then they said to Vayu (Air): "O Vayu! Find out who this great
            Spirit is." "Yes," he said, and hastened to It. Brahman asked him:
            "Who are you?" He replied "I am known as Vayu; I am
            also called Matarisva." Brahman said: "What power is in you,
            who are so well known?"
            Vayu replied: "I can carry off all−whatever there is on earth."
            Brahman put a straw before him and said: "Carry this." He
            rushed toward it with all his ardour but could not move it.
            Then he returned from the Spirit and said to the gods: "I could
            not find out who this Spirit is,"
                                                  Kena Upanishad
                                           5

Monday, March 8, 2010
What is cloud computing?

                                     SaaS
                                     PaaS
                                     IaaS




                                            Postage
                                             Place
                                             Here
                                 6
Monday, March 8, 2010
IaaS value proposition…




                          7

Monday, March 8, 2010
IaaS value proposition…




                          7

Monday, March 8, 2010
IaaS value proposition…




                          7

Monday, March 8, 2010
IaaS value proposition…




                          7

Monday, March 8, 2010
Google App Engine
                        “We wear pagers so you don’t have to”

                                       pager


                                         8
Monday, March 8, 2010
Google App Engine

            - Easy to build
            - Easy to maintain
            - Easy to scale




                                 9

Monday, March 8, 2010
By the numbers

            - Built 100K apps
            - Maintained by 250K developers
            - Scaled to 250M pageviews daily



                           semi-transparent collage of apps


                                                              10

Monday, March 8, 2010
gigya Socialize




                        11

Monday, March 8, 2010
gigya Socialize - traffic




                               12

Monday, March 8, 2010
gigya Socialize - traffic




                               12

Monday, March 8, 2010
Gigya Socialize - traffic




                               13

Monday, March 8, 2010
App Engine




                        14

Monday, March 8, 2010
App Engine




                        15

Monday, March 8, 2010
Time.com




                        16

Monday, March 8, 2010
Socialwok




                        17

Monday, March 8, 2010
Social networking at scale




                                18

Monday, March 8, 2010
Social networking at scale

                        >40M Users




                                     18

Monday, March 8, 2010
PubSubHubbub
   http://code.google.com/p/pubsubhubbub/
                 The future is distributed: There will be big hubs, many
                   small hubs, and tons of publishers and subscribers.
                Publishers, subscribers, and hubs may play multiple roles.




                                                                             19

Monday, March 8, 2010
Hell's Kitchen on facebook




                                20

Monday, March 8, 2010
Handling peak traffic: mental_floss




                                     21

Monday, March 8, 2010
Elastic / redundant capacity




                                  22

Monday, March 8, 2010
Short term events: earthhour.org




                                      23

Monday, March 8, 2010
http://www.allforgood.org/




                                24

Monday, March 8, 2010
http://www.snapabug.com/




                              25

Monday, March 8, 2010
26

Monday, March 8, 2010
Japan: Q&A for our Future




                               27

Monday, March 8, 2010
http://www.google.com/tipjar




                                  28

Monday, March 8, 2010
Chillingo Crystal
   Gaming meets Social




    Zombie Dash         Angry Birds LITE   underground       Meltdown          Cogs




Mission Deep Sea         Speed Forge       Guerilla Bob    Ravensword:      Angry Birds
                           Extreme                        The Fallen King


Monday, March 8, 2010
Why build it?

                           Wrench



                              30
Monday, March 8, 2010
It's just too difficult




                                     31

Monday, March 8, 2010
Hosting means hidden costs
            • Idle capacity
            • Software patches & upgrades
            • License fees
            • Lots of maintenance
            • Traffic & utilization forecasting
            • Upgrades




                                         32

Monday, March 8, 2010
Cloud development in a box
            • SDK & “The Cloud”
            • Hardware
            • Networking
            • Operating system
            • Application runtime
                   Java, Python
                   o

            •    Static file serving
            •    Services
            •    Fault tolerance
            •    Load balancing



                                       33

Monday, March 8, 2010
Distributed Cloud Computing
           Reliability and scalability




Monday, March 8, 2010
Know your Distributed Memes

            - Divide & conquer
            - Sharding
            - Tolerate / expect failure
            - Idempotency
            - Just scale it up

                                          35

Monday, March 8, 2010
Rocket science
   Monolithic Computing




                          36

Monday, March 8, 2010
Rocket science
   Monolithic Computing
                        Hot spare
                        “Just in case”




                                         36

Monday, March 8, 2010
Distributed Meme:
   Expect, tolerate and design for failure

                        MTFB: O(Years)




                                         37

Monday, March 8, 2010
Distributed Meme:
   Expect, tolerate and design for failure

                        MTFB: O(Years)




                                         37

Monday, March 8, 2010
Distributed Meme:
   Expect, tolerate and design for failure

                        MTFB: O(Years)


                        MTFB: O(Months)




                                          37

Monday, March 8, 2010
Distributed Meme:
   Expect, tolerate and design for failure

                        MTFB: O(Years)


                        MTFB: O(Months)




                                          37

Monday, March 8, 2010
Distributed Meme:
   Expect, tolerate and design for failure

                        MTFB: O(Years)


                        MTFB: O(Months)



                        MTFB: O(Minutes/Seconds)


                                              37

Monday, March 8, 2010
Monolithic computing


                          stop watch
                          small




                            stop watch
                            large



                                   38

Monday, March 8, 2010
Distributed web hosting platform




                                      39

Monday, March 8, 2010
Distributed web hosting platform




                        X
                                      39

Monday, March 8, 2010
Distributed web hosting platform




                        Retry
                                X
                                      39

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical / horizontal scalability




                                     40

Monday, March 8, 2010
Vertical scalability




                                  41

Monday, March 8, 2010
Vertical scalability




           Horizontal scalability




                                    41

Monday, March 8, 2010
Vertical scalability




           Horizontal scalability




                                    41

Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Tolerate, plan for and expect small failures




Monday, March 8, 2010
Easy to deploy & scale


                                         1




                                             2

                    http://www.yourdomain.com/

                                                 43

Monday, March 8, 2010
Thinking about scalability
    Just a few users....




                           ....the tools, platform and design don't matter too
                           much



                                                                           44

Monday, March 8, 2010
Thinking about scalability
    Lots and lots of users...




                                ....you must design for scalability




                                                                      45

Monday, March 8, 2010
But the problem is...


                          When?

                          http://digg.com/
                        http://slashdot.org/



                                               46

Monday, March 8, 2010
The real problem is...



                          When it happens.

                         Can you afford to put
                        everything else on hold?

                                                   47

Monday, March 8, 2010
Google App Engine



                        Leveraging Google's
                        platform to better serve
                        your customers




                                              48

Monday, March 8, 2010
Distributed web hosting platform




                                      49

Monday, March 8, 2010
Distributed web hosting platform

            - Great for web apps
                  • Request based, data backed
            - Parallel processing
            - Scales automatically
            - Available globally
            - Configuration free
            - Built-in DoS protections           50

Monday, March 8, 2010
Distributed datastore




                           51

Monday, March 8, 2010
Distributed datastore




                           52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling




                                             52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling
            - Parallel processing




                                             52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling
            - Parallel processing
            - Scales to 'Internet scale'




                                             52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling
            - Parallel processing
            - Scales to 'Internet scale'
            - Predictable query performance


                                              52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling
            - Parallel processing
            - Scales to 'Internet scale'
            - Predictable query performance
            - No deadlocks

                                              52

Monday, March 8, 2010
Distributed datastore

            - Arbitrary horizontal scaling
            - Parallel processing
            - Scales to 'Internet scale'
            - Predictable query performance
            - No deadlocks
            - No global schema
                                              52

Monday, March 8, 2010
Distributed memcache



                        Memcache




                                   53

Monday, March 8, 2010
Distributed Meme: Divide & Conquer
   Specialized services

                        Memcache   Datastore   URL Fetch




                          Mail      XMPP       Task Queue




                         Images    Blobstore   User Service

                                                              54

Monday, March 8, 2010
Distributed Meme: Sharding



                  Single              Sharded




                 Counter   Counter   Counter    Counter




                                                          55

Monday, March 8, 2010
Distributed Meme: Sharding



                  Single              Sharded




                 Counter   Counter   Counter    Counter




                                                          55

Monday, March 8, 2010
Distributed Meme: Sharding



                  Single              Sharded




                 Counter   Counter   Counter    Counter




                                                          55

Monday, March 8, 2010
Language runtimes




                        Duke, the Java mascot
                        Copyright © Sun Microsystems Inc., all rights reserved.
                                                                             56

Monday, March 8, 2010
JVM languages

            - Scala
            - JRuby (Ruby)
            - Groovy
            - Quercus (PHP)
            - Rhino (JavaScript)
            - Jython (Python)
                                   57

Monday, March 8, 2010
Ensuring portability




                          58

Monday, March 8, 2010
Ensuring portability




                          58

Monday, March 8, 2010
Complete Java development stack




                                 59

Monday, March 8, 2010
Google Plugin for Eclipse




                               60

Monday, March 8, 2010
Google Plugin for Eclipse




                               61

Monday, March 8, 2010
Google Web Toolkit (GWT)




                              62

Monday, March 8, 2010
Google Web Toolkit (GWT)


                            IE


                          Firefo
                                  x




                             i
                        Safar e
                             m
                        Chro



                           Opera




                                      63

Monday, March 8, 2010
GWT Debugging in the browser




                                  64

Monday, March 8, 2010
Quotes to remember



                        “The fastest code is that
                          which does not run.”
                                          Joel Webber
                                        GWT co-creator


                                                    65

Monday, March 8, 2010
Google Apps + your apps

                                                      Your custom
             Our Google Apps                          applications




                        Google's scalable serving architecture




                                                                     66

Monday, March 8, 2010
Google Apps integration


                        http://appid.appspot.com/




                        http://yourapp.yourdomain.com/



                                                         67

Monday, March 8, 2010
2. Log in to your Google Apps domain as an
  admin




                                               68

Monday, March 8, 2010
3. Accept terms and specify web address




                                            69

Monday, March 8, 2010
4. The new feature is available in your control
  panel




                                                    70

Monday, March 8, 2010
5. Additional configuration is available for each feature




                                                        71

Monday, March 8, 2010
Google Apps + App Engine




                           72

Monday, March 8, 2010
Federate your on-premise data




                                   73

Monday, March 8, 2010
Secure Data Connector (SDC)




                                 74

Monday, March 8, 2010
Secure Data Connector




                           75

Monday, March 8, 2010
Secure Data Connector




                           and 50+ more...




                                             76

Monday, March 8, 2010
Using Secure Data Connector




                                 77

Monday, March 8, 2010
Using Secure Data Connector
                        Installation
                        - Determine access rules
                        - Configure and install SDC




                                                      77

Monday, March 8, 2010
Using Secure Data Connector
                        Installation
                        - Determine access rules
                        - Configure and install SDC
                        Getting ready to serve
                        - SDC opens SSL tunnel




                                                      77

Monday, March 8, 2010
Using Secure Data Connector
                        Installation
                        - Determine access rules
                        - Configure and install SDC
                        Getting ready to serve
                        - SDC opens SSL tunnel
                        Serving
                        - User request sent to App Engine
                        - User authenticated
                        - App makes request through tunnel
                        - SDC performs access checks
                        - Results returned
                                                      77

Monday, March 8, 2010
Database export / import




                              78

Monday, March 8, 2010
Cron support



                            - clean-up
                                        DB
                           - prepare r
                                       eports
                          - batch ma
                                      il
                         - perform
                                     calcs
                        - call mom



                                                79

Monday, March 8, 2010
Cron support
     <?xml version="1.0" encoding="UTF-8"?>
     <cronentries>
       <cron>
         <url>/recache</url>
         <description>Repopulate the cache every 2 minutes</description>
         <schedule>every 2 minutes</schedule>
       </cron>
       <cron>
         <url>/weeklyreport</url>
         <description>Mail out a weekly report</description>
         <schedule>every monday of month 08:30</schedule>
         <timezone>America/New_York</timezone>
       </cron>
     </cronentries>


    ("every"|ordinal) (days) "of" (monthspec) (time)

    every 5 minutes
    every 12 hours
    2nd,third mon,wed,thu of march 17:00
    every monday of month 09:00
    1st monday of sep,oct,nov 17:00


                                                                           80

Monday, March 8, 2010
Distributed Meme: Divide & Conquer
   Task Queues

    Task 12             Task 67   Task 42     Task 2   Task 91   Task 16        Tas




                                   Offline Processing on
                                   App Engine: A Look Ahead
                                   Brett Slatkin
                                   May, 2009


                                                                           81

Monday, March 8, 2010
Tasks Queues - Motivation

        • Why do background processing?
          o Do work continuously without user requests
          o Incrementally process data, compute results
          o Smooth out load patterns, lower user latency

        • Simple idea in general:
          1.Describe the work you want to do now
          2.Save the description somewhere
          3.Have something else execute the work later

        • Work executed in the order received (best-effort FIFO)
        • If execution fails, work will be retried until successful


    Task 12             Task 67   Task 42   Task 2   Task 91   Task 16   Tas



Monday, March 8, 2010
Task Queue Benefits

        • Benefits
          o Asynchronous
             Why do work now when we can do it later?
          o Low-latency (for users)
             Tasks are light-weight; ~3x faster than Datastore
          o Reliable
             Once written, a task will eventually complete
          o Scalable
             Storage of new tasks has no contention
             Parallelizable with multiple workers

        • Many features can extend this basic concept


    Task 12             Task 67   Task 42   Task 2   Task 91   Task 16   Tas



Monday, March 8, 2010
How do traditional task queues work?




Monday, March 8, 2010
How do traditional task queues work? (2)

        • Polling has problems:
          o Worker sits in a loop polling the front of the queue
             Not event driven; wasted work
          o Workers stay resident when there's no work to do
             Wastes machine resources
          o Fixed number of workers
             Admins must manually add more workers to keep
               up or queue will grow without bounds

        • Limited optimization possible
          o Many systems fake a polling interface with something
            event-driven under the hood
          o Long-lived, hanging connections




Monday, March 8, 2010
How does our Task Queue API work? (2)




Monday, March 8, 2010
How does our Task Queue API work? (3)




Monday, March 8, 2010
Your application's health




                               88

Monday, March 8, 2010
App Engine's health history




                                 89

Monday, March 8, 2010
Scalable serving architecture




                        creative commons licensed photograph from cote   90

Monday, March 8, 2010
Distributed frontends




                           91

Monday, March 8, 2010
Distributed frontends




   - Edge Caching


                           91

Monday, March 8, 2010
Distributed frontends




   - Edge Caching
   - Priority routing

                           91

Monday, March 8, 2010
Distributed frontends




   - Edge Caching
   - Priority routing
   - Geographically close
        connection endpoint   91

Monday, March 8, 2010
Life of a request




                                 App       App's
                        User    Engine    Runtime
                               Frontend




                                                    92

Monday, March 8, 2010
Life of a request




                                 App       App's
                        User    Engine    Runtime
                               Frontend




                                                    93

Monday, March 8, 2010
Scales dynamically / automatically

                                      User
                        User



                                               App       App's
                               User           Engine    Runtime
                                             Frontend




                        User
                                      User


                                                                  94

Monday, March 8, 2010
Scales dynamically / automatically

                                      User
                                                         App's
                        User                            Runtime



                                               App       App's
                               User           Engine    Runtime
                                             Frontend


                                                         App's
                                                        Runtime
                        User
                                      User


                                                                  95

Monday, March 8, 2010
Multiple versions
                                    http://fredsa.appspot.com/

                                              Version
                                                1.1
                          App
             User                                                Datastore
                         Engine
                        Frontend


                                              Version
                                                2.1

                                   http://2.1.fredsa.appspot.com/


                                                                        96

Monday, March 8, 2010
Distributed datastore




                        http://labs.google.com/papers/bigtable.html
                                                                      97

Monday, March 8, 2010
Bigtable :
   A distributed, sharded, sorted array
                  Row key    Row data




                                        98

Monday, March 8, 2010
Bigtable :
   A distributed, sharded, sorted array
                  Row key    Row data

                                        Shard 1



                                        Shard 2
                                           .
                                           .

                                        Shard n

                                                  99

Monday, March 8, 2010
Datastore design

            - Distributed
            - Bigtable + entity groups
            - ACID transactions
            - Optimistic concurrency
            - Entities + indexes
            - Protobuf encoded entities
                                          100

Monday, March 8, 2010
Datastore properties

            - Core value types
            - List properties
            - Text & binary blobs
            - Reference


                                    101

Monday, March 8, 2010
What's different?



                                102
Monday, March 8, 2010
Datastore - what's new

            - Distributed
            - Scales to 'internet scale'
            - No deadlocks
            - Predictable query performance


                                              103

Monday, March 8, 2010
Datastore - what's different

            - No inner/outer/natural joins
            - Dense index scans
            - Per entity metadata
            - Soft schema
            - No more DDL

                                             104

Monday, March 8, 2010
Datastore - what's familiar

            - Indexes
            - ACID transactions
            - GQL
            SELECT * FROM Story
            WHERE title = 'App Engine Launch'
            AND author = :current_user
            AND rating >= 10
            ORDER BY rating, created DESC
                                                105

Monday, March 8, 2010
The new ACID

           Atomic       Associative
           Consistent   Commutative
           Isolated     Idempotent
           Durable      Distributed




                                  106

Monday, March 8, 2010
Entities




                        107

Monday, March 8, 2010
Entity groups




                        108

Monday, March 8, 2010
Amortizing costs

                                        Count(COUNT)
                        Transaction
                                      SUM(Order Amount)

                             Create
                             Update
                             Delete

                 Customer Order


                                                       109

Monday, March 8, 2010
An evolving platform



                        110
Monday, March 8, 2010
23 months 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, Async Urlfetch
                                                                            111

Monday, March 8, 2010
App Engine
                          Roadmap

             - Support for mapping operations across
               datasets
             - Alerting system for exceptions in your
               application
             - Datastore dump and restore facility
                                                        112

Monday, March 8, 2010
Wrap up



                           113
Monday, March 8, 2010
Always free to get started

              ~5M pageviews/month
                  • 6.5 CPU hrs/day
                  • 1 GB storage
                  • 650K URL Fetch calls/day
                  • 2,000 recipients emailed
                  • 1 GB/day bandwidth
                  • 100,000 tasks enqueued
                  • 650K XMPP messages/day
                                               114

Monday, March 8, 2010
Purchase additional resources *




            * free monthly quota of ~5 million page views still in full effect
                                                                                 115

Monday, March 8, 2010
Thank you

                Read more
                        http://code.google.com/appengine/

                Contact info
                        Patrick Chanezon
                        Developer Advocate
                        chanezon@google.com
                        http://twitter.com/chanezon


                Questions
                        ?
                                                            116

Monday, March 8, 2010
Thanks
           To Alon Levi, Fred Sauer, Brett Slatkin and others for their slides




Monday, March 8, 2010

Contenu connexe

Similaire à Google App Engine - Devfest India 2010

Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Griffin Technology
 
9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User Experience9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User ExperienceBurr Sutter
 
iCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationiCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationAntony Mayfield
 
Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Skills Matter
 
Real-Time Everything - the Era of Communication Ubiquity
Real-Time Everything - the Era of Communication UbiquityReal-Time Everything - the Era of Communication Ubiquity
Real-Time Everything - the Era of Communication UbiquityRob Gonda
 
What all that beta talk means for brands
What all that beta talk means for brandsWhat all that beta talk means for brands
What all that beta talk means for brandsAndy Whitlock
 
Mobile Strategy & Product Dev. - iRush
Mobile Strategy & Product Dev. - iRushMobile Strategy & Product Dev. - iRush
Mobile Strategy & Product Dev. - iRushAndrew Donoho
 
Phone gap nikolaionken-08-06
Phone gap nikolaionken-08-06Phone gap nikolaionken-08-06
Phone gap nikolaionken-08-06Skills Matter
 
A Match Made In The Cloud
A Match Made In The CloudA Match Made In The Cloud
A Match Made In The CloudChapter Three
 
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoPresentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoThierry Koscielniak
 
Rise of devops
Rise of devopsRise of devops
Rise of devopsatmosorg
 
Big Data @ Bodensee Barcamp 2010
Big Data @ Bodensee Barcamp 2010Big Data @ Bodensee Barcamp 2010
Big Data @ Bodensee Barcamp 2010c1sc0
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobileNikolai Onken
 
Able Presentation August 25-2010
Able Presentation August 25-2010Able Presentation August 25-2010
Able Presentation August 25-2010Bill Muirhead
 
Web 2.0 and Rich Internet Applications
Web 2.0 and Rich Internet ApplicationsWeb 2.0 and Rich Internet Applications
Web 2.0 and Rich Internet ApplicationsSaurabh Narula
 

Similaire à Google App Engine - Devfest India 2010 (20)

Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Is the iPad just a big iPhone?
Is the iPad just a big iPhone?
 
9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User Experience9.7 Things Every Programmer Should Know About User Experience
9.7 Things Every Programmer Should Know About User Experience
 
iCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationiCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group Presentation
 
20100608sigmod
20100608sigmod20100608sigmod
20100608sigmod
 
Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06
 
HTML5 offline
HTML5 offlineHTML5 offline
HTML5 offline
 
Real-Time Everything - the Era of Communication Ubiquity
Real-Time Everything - the Era of Communication UbiquityReal-Time Everything - the Era of Communication Ubiquity
Real-Time Everything - the Era of Communication Ubiquity
 
What all that beta talk means for brands
What all that beta talk means for brandsWhat all that beta talk means for brands
What all that beta talk means for brands
 
Mobile Strategy & Product Dev. - iRush
Mobile Strategy & Product Dev. - iRushMobile Strategy & Product Dev. - iRush
Mobile Strategy & Product Dev. - iRush
 
Phone gap nikolaionken-08-06
Phone gap nikolaionken-08-06Phone gap nikolaionken-08-06
Phone gap nikolaionken-08-06
 
A Match Made In The Cloud
A Match Made In The CloudA Match Made In The Cloud
A Match Made In The Cloud
 
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoPresentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
 
Rise of devops
Rise of devopsRise of devops
Rise of devops
 
Social Network and Online Community
Social Network and Online CommunitySocial Network and Online Community
Social Network and Online Community
 
100 paper cuts
100 paper cuts100 paper cuts
100 paper cuts
 
Big Data @ Bodensee Barcamp 2010
Big Data @ Bodensee Barcamp 2010Big Data @ Bodensee Barcamp 2010
Big Data @ Bodensee Barcamp 2010
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobile
 
Able Presentation August 25-2010
Able Presentation August 25-2010Able Presentation August 25-2010
Able Presentation August 25-2010
 
Acronym Soup
Acronym SoupAcronym Soup
Acronym Soup
 
Web 2.0 and Rich Internet Applications
Web 2.0 and Rich Internet ApplicationsWeb 2.0 and Rich Internet Applications
Web 2.0 and Rich Internet Applications
 

Plus de Patrick Chanezon

KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)Patrick Chanezon
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...Patrick Chanezon
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesPatrick Chanezon
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesPatrick Chanezon
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroPatrick Chanezon
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018Patrick Chanezon
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftPatrick Chanezon
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerPatrick Chanezon
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017Patrick Chanezon
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Patrick Chanezon
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017Patrick Chanezon
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsPatrick Chanezon
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 

Plus de Patrick Chanezon (20)

KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Docker Innovation Culture
Docker Innovation CultureDocker Innovation Culture
Docker Innovation Culture
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Google App Engine - Devfest India 2010

  • 1. Google App Engine Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations chanezon@google.com Google Confidential and Proprietary 1 Monday, March 8, 2010
  • 2. Agenda - App Engine introduction - Why build it? - App Engine tour - What's different? - Wrap up - Questions 2 Monday, March 8, 2010
  • 3. 4. The spirit is unmoving, one, swifter than the mind. The senses do not reach It as It is ever ahead of them. Though Itself standing still It outstrips those who run. In It the all-pervading air supports the activities of beings Isha Upanishad 3 Monday, March 8, 2010
  • 4. Vayu computing? Public domain image from http://commons.wikimedia.org/wiki/File:Vayu.jpg 4 Monday, March 8, 2010
  • 5. Vayu Computing? 7−10 Then they said to Vayu (Air): "O Vayu! Find out who this great Spirit is." "Yes," he said, and hastened to It. Brahman asked him: "Who are you?" He replied "I am known as Vayu; I am also called Matarisva." Brahman said: "What power is in you, who are so well known?" Vayu replied: "I can carry off all−whatever there is on earth." Brahman put a straw before him and said: "Carry this." He rushed toward it with all his ardour but could not move it. Then he returned from the Spirit and said to the gods: "I could not find out who this Spirit is," Kena Upanishad 5 Monday, March 8, 2010
  • 6. What is cloud computing? SaaS PaaS IaaS Postage Place Here 6 Monday, March 8, 2010
  • 7. IaaS value proposition… 7 Monday, March 8, 2010
  • 8. IaaS value proposition… 7 Monday, March 8, 2010
  • 9. IaaS value proposition… 7 Monday, March 8, 2010
  • 10. IaaS value proposition… 7 Monday, March 8, 2010
  • 11. Google App Engine “We wear pagers so you don’t have to” pager 8 Monday, March 8, 2010
  • 12. Google App Engine - Easy to build - Easy to maintain - Easy to scale 9 Monday, March 8, 2010
  • 13. By the numbers - Built 100K apps - Maintained by 250K developers - Scaled to 250M pageviews daily semi-transparent collage of apps 10 Monday, March 8, 2010
  • 14. gigya Socialize 11 Monday, March 8, 2010
  • 15. gigya Socialize - traffic 12 Monday, March 8, 2010
  • 16. gigya Socialize - traffic 12 Monday, March 8, 2010
  • 17. Gigya Socialize - traffic 13 Monday, March 8, 2010
  • 18. App Engine 14 Monday, March 8, 2010
  • 19. App Engine 15 Monday, March 8, 2010
  • 20. Time.com 16 Monday, March 8, 2010
  • 21. Socialwok 17 Monday, March 8, 2010
  • 22. Social networking at scale 18 Monday, March 8, 2010
  • 23. Social networking at scale >40M Users 18 Monday, March 8, 2010
  • 24. PubSubHubbub http://code.google.com/p/pubsubhubbub/ The future is distributed: There will be big hubs, many small hubs, and tons of publishers and subscribers. Publishers, subscribers, and hubs may play multiple roles. 19 Monday, March 8, 2010
  • 25. Hell's Kitchen on facebook 20 Monday, March 8, 2010
  • 26. Handling peak traffic: mental_floss 21 Monday, March 8, 2010
  • 27. Elastic / redundant capacity 22 Monday, March 8, 2010
  • 28. Short term events: earthhour.org 23 Monday, March 8, 2010
  • 29. http://www.allforgood.org/ 24 Monday, March 8, 2010
  • 30. http://www.snapabug.com/ 25 Monday, March 8, 2010
  • 32. Japan: Q&A for our Future 27 Monday, March 8, 2010
  • 33. http://www.google.com/tipjar 28 Monday, March 8, 2010
  • 34. Chillingo Crystal Gaming meets Social Zombie Dash Angry Birds LITE underground Meltdown Cogs Mission Deep Sea Speed Forge Guerilla Bob Ravensword: Angry Birds Extreme The Fallen King Monday, March 8, 2010
  • 35. Why build it? Wrench 30 Monday, March 8, 2010
  • 36. It's just too difficult 31 Monday, March 8, 2010
  • 37. Hosting means hidden costs • Idle capacity • Software patches & upgrades • License fees • Lots of maintenance • Traffic & utilization forecasting • Upgrades 32 Monday, March 8, 2010
  • 38. Cloud development in a box • SDK & “The Cloud” • Hardware • Networking • Operating system • Application runtime Java, Python o • Static file serving • Services • Fault tolerance • Load balancing 33 Monday, March 8, 2010
  • 39. Distributed Cloud Computing Reliability and scalability Monday, March 8, 2010
  • 40. Know your Distributed Memes - Divide & conquer - Sharding - Tolerate / expect failure - Idempotency - Just scale it up 35 Monday, March 8, 2010
  • 41. Rocket science Monolithic Computing 36 Monday, March 8, 2010
  • 42. Rocket science Monolithic Computing Hot spare “Just in case” 36 Monday, March 8, 2010
  • 43. Distributed Meme: Expect, tolerate and design for failure MTFB: O(Years) 37 Monday, March 8, 2010
  • 44. Distributed Meme: Expect, tolerate and design for failure MTFB: O(Years) 37 Monday, March 8, 2010
  • 45. Distributed Meme: Expect, tolerate and design for failure MTFB: O(Years) MTFB: O(Months) 37 Monday, March 8, 2010
  • 46. Distributed Meme: Expect, tolerate and design for failure MTFB: O(Years) MTFB: O(Months) 37 Monday, March 8, 2010
  • 47. Distributed Meme: Expect, tolerate and design for failure MTFB: O(Years) MTFB: O(Months) MTFB: O(Minutes/Seconds) 37 Monday, March 8, 2010
  • 48. Monolithic computing stop watch small stop watch large 38 Monday, March 8, 2010
  • 49. Distributed web hosting platform 39 Monday, March 8, 2010
  • 50. Distributed web hosting platform X 39 Monday, March 8, 2010
  • 51. Distributed web hosting platform Retry X 39 Monday, March 8, 2010
  • 52. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 53. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 54. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 55. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 56. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 57. Vertical / horizontal scalability 40 Monday, March 8, 2010
  • 58. Vertical scalability 41 Monday, March 8, 2010
  • 59. Vertical scalability Horizontal scalability 41 Monday, March 8, 2010
  • 60. Vertical scalability Horizontal scalability 41 Monday, March 8, 2010
  • 61. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 62. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 63. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 64. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 65. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 66. Tolerate, plan for and expect small failures Monday, March 8, 2010
  • 67. Easy to deploy & scale 1 2 http://www.yourdomain.com/ 43 Monday, March 8, 2010
  • 68. Thinking about scalability Just a few users.... ....the tools, platform and design don't matter too much 44 Monday, March 8, 2010
  • 69. Thinking about scalability Lots and lots of users... ....you must design for scalability 45 Monday, March 8, 2010
  • 70. But the problem is... When? http://digg.com/ http://slashdot.org/ 46 Monday, March 8, 2010
  • 71. The real problem is... When it happens. Can you afford to put everything else on hold? 47 Monday, March 8, 2010
  • 72. Google App Engine Leveraging Google's platform to better serve your customers 48 Monday, March 8, 2010
  • 73. Distributed web hosting platform 49 Monday, March 8, 2010
  • 74. Distributed web hosting platform - Great for web apps • Request based, data backed - Parallel processing - Scales automatically - Available globally - Configuration free - Built-in DoS protections 50 Monday, March 8, 2010
  • 75. Distributed datastore 51 Monday, March 8, 2010
  • 76. Distributed datastore 52 Monday, March 8, 2010
  • 77. Distributed datastore - Arbitrary horizontal scaling 52 Monday, March 8, 2010
  • 78. Distributed datastore - Arbitrary horizontal scaling - Parallel processing 52 Monday, March 8, 2010
  • 79. Distributed datastore - Arbitrary horizontal scaling - Parallel processing - Scales to 'Internet scale' 52 Monday, March 8, 2010
  • 80. Distributed datastore - Arbitrary horizontal scaling - Parallel processing - Scales to 'Internet scale' - Predictable query performance 52 Monday, March 8, 2010
  • 81. Distributed datastore - Arbitrary horizontal scaling - Parallel processing - Scales to 'Internet scale' - Predictable query performance - No deadlocks 52 Monday, March 8, 2010
  • 82. Distributed datastore - Arbitrary horizontal scaling - Parallel processing - Scales to 'Internet scale' - Predictable query performance - No deadlocks - No global schema 52 Monday, March 8, 2010
  • 83. Distributed memcache Memcache 53 Monday, March 8, 2010
  • 84. Distributed Meme: Divide & Conquer Specialized services Memcache Datastore URL Fetch Mail XMPP Task Queue Images Blobstore User Service 54 Monday, March 8, 2010
  • 85. Distributed Meme: Sharding Single Sharded Counter Counter Counter Counter 55 Monday, March 8, 2010
  • 86. Distributed Meme: Sharding Single Sharded Counter Counter Counter Counter 55 Monday, March 8, 2010
  • 87. Distributed Meme: Sharding Single Sharded Counter Counter Counter Counter 55 Monday, March 8, 2010
  • 88. Language runtimes Duke, the Java mascot Copyright © Sun Microsystems Inc., all rights reserved. 56 Monday, March 8, 2010
  • 89. JVM languages - Scala - JRuby (Ruby) - Groovy - Quercus (PHP) - Rhino (JavaScript) - Jython (Python) 57 Monday, March 8, 2010
  • 90. Ensuring portability 58 Monday, March 8, 2010
  • 91. Ensuring portability 58 Monday, March 8, 2010
  • 92. Complete Java development stack 59 Monday, March 8, 2010
  • 93. Google Plugin for Eclipse 60 Monday, March 8, 2010
  • 94. Google Plugin for Eclipse 61 Monday, March 8, 2010
  • 95. Google Web Toolkit (GWT) 62 Monday, March 8, 2010
  • 96. Google Web Toolkit (GWT) IE Firefo x i Safar e m Chro Opera 63 Monday, March 8, 2010
  • 97. GWT Debugging in the browser 64 Monday, March 8, 2010
  • 98. Quotes to remember “The fastest code is that which does not run.” Joel Webber GWT co-creator 65 Monday, March 8, 2010
  • 99. Google Apps + your apps Your custom Our Google Apps applications Google's scalable serving architecture 66 Monday, March 8, 2010
  • 100. Google Apps integration http://appid.appspot.com/ http://yourapp.yourdomain.com/ 67 Monday, March 8, 2010
  • 101. 2. Log in to your Google Apps domain as an admin 68 Monday, March 8, 2010
  • 102. 3. Accept terms and specify web address 69 Monday, March 8, 2010
  • 103. 4. The new feature is available in your control panel 70 Monday, March 8, 2010
  • 104. 5. Additional configuration is available for each feature 71 Monday, March 8, 2010
  • 105. Google Apps + App Engine 72 Monday, March 8, 2010
  • 106. Federate your on-premise data 73 Monday, March 8, 2010
  • 107. Secure Data Connector (SDC) 74 Monday, March 8, 2010
  • 108. Secure Data Connector 75 Monday, March 8, 2010
  • 109. Secure Data Connector and 50+ more... 76 Monday, March 8, 2010
  • 110. Using Secure Data Connector 77 Monday, March 8, 2010
  • 111. Using Secure Data Connector Installation - Determine access rules - Configure and install SDC 77 Monday, March 8, 2010
  • 112. Using Secure Data Connector Installation - Determine access rules - Configure and install SDC Getting ready to serve - SDC opens SSL tunnel 77 Monday, March 8, 2010
  • 113. Using Secure Data Connector Installation - Determine access rules - Configure and install SDC Getting ready to serve - SDC opens SSL tunnel Serving - User request sent to App Engine - User authenticated - App makes request through tunnel - SDC performs access checks - Results returned 77 Monday, March 8, 2010
  • 114. Database export / import 78 Monday, March 8, 2010
  • 115. Cron support - clean-up DB - prepare r eports - batch ma il - perform calcs - call mom 79 Monday, March 8, 2010
  • 116. Cron support <?xml version="1.0" encoding="UTF-8"?> <cronentries>   <cron>     <url>/recache</url>     <description>Repopulate the cache every 2 minutes</description>     <schedule>every 2 minutes</schedule>   </cron>   <cron>     <url>/weeklyreport</url>     <description>Mail out a weekly report</description>     <schedule>every monday of month 08:30</schedule>     <timezone>America/New_York</timezone>   </cron> </cronentries> ("every"|ordinal) (days) "of" (monthspec) (time) every 5 minutes every 12 hours 2nd,third mon,wed,thu of march 17:00 every monday of month 09:00 1st monday of sep,oct,nov 17:00 80 Monday, March 8, 2010
  • 117. Distributed Meme: Divide & Conquer Task Queues Task 12 Task 67 Task 42 Task 2 Task 91 Task 16 Tas Offline Processing on App Engine: A Look Ahead Brett Slatkin May, 2009 81 Monday, March 8, 2010
  • 118. Tasks Queues - Motivation • Why do background processing? o Do work continuously without user requests o Incrementally process data, compute results o Smooth out load patterns, lower user latency • Simple idea in general: 1.Describe the work you want to do now 2.Save the description somewhere 3.Have something else execute the work later • Work executed in the order received (best-effort FIFO) • If execution fails, work will be retried until successful Task 12 Task 67 Task 42 Task 2 Task 91 Task 16 Tas Monday, March 8, 2010
  • 119. Task Queue Benefits • Benefits o Asynchronous Why do work now when we can do it later? o Low-latency (for users) Tasks are light-weight; ~3x faster than Datastore o Reliable Once written, a task will eventually complete o Scalable Storage of new tasks has no contention Parallelizable with multiple workers • Many features can extend this basic concept Task 12 Task 67 Task 42 Task 2 Task 91 Task 16 Tas Monday, March 8, 2010
  • 120. How do traditional task queues work? Monday, March 8, 2010
  • 121. How do traditional task queues work? (2) • Polling has problems: o Worker sits in a loop polling the front of the queue Not event driven; wasted work o Workers stay resident when there's no work to do Wastes machine resources o Fixed number of workers Admins must manually add more workers to keep up or queue will grow without bounds • Limited optimization possible o Many systems fake a polling interface with something event-driven under the hood o Long-lived, hanging connections Monday, March 8, 2010
  • 122. How does our Task Queue API work? (2) Monday, March 8, 2010
  • 123. How does our Task Queue API work? (3) Monday, March 8, 2010
  • 124. Your application's health 88 Monday, March 8, 2010
  • 125. App Engine's health history 89 Monday, March 8, 2010
  • 126. Scalable serving architecture creative commons licensed photograph from cote 90 Monday, March 8, 2010
  • 127. Distributed frontends 91 Monday, March 8, 2010
  • 128. Distributed frontends - Edge Caching 91 Monday, March 8, 2010
  • 129. Distributed frontends - Edge Caching - Priority routing 91 Monday, March 8, 2010
  • 130. Distributed frontends - Edge Caching - Priority routing - Geographically close connection endpoint 91 Monday, March 8, 2010
  • 131. Life of a request App App's User Engine Runtime Frontend 92 Monday, March 8, 2010
  • 132. Life of a request App App's User Engine Runtime Frontend 93 Monday, March 8, 2010
  • 133. Scales dynamically / automatically User User App App's User Engine Runtime Frontend User User 94 Monday, March 8, 2010
  • 134. Scales dynamically / automatically User App's User Runtime App App's User Engine Runtime Frontend App's Runtime User User 95 Monday, March 8, 2010
  • 135. Multiple versions http://fredsa.appspot.com/ Version 1.1 App User Datastore Engine Frontend Version 2.1 http://2.1.fredsa.appspot.com/ 96 Monday, March 8, 2010
  • 136. Distributed datastore http://labs.google.com/papers/bigtable.html 97 Monday, March 8, 2010
  • 137. Bigtable : A distributed, sharded, sorted array  Row key    Row data 98 Monday, March 8, 2010
  • 138. Bigtable : A distributed, sharded, sorted array  Row key    Row data Shard 1 Shard 2 . . Shard n 99 Monday, March 8, 2010
  • 139. Datastore design - Distributed - Bigtable + entity groups - ACID transactions - Optimistic concurrency - Entities + indexes - Protobuf encoded entities 100 Monday, March 8, 2010
  • 140. Datastore properties - Core value types - List properties - Text & binary blobs - Reference 101 Monday, March 8, 2010
  • 141. What's different? 102 Monday, March 8, 2010
  • 142. Datastore - what's new - Distributed - Scales to 'internet scale' - No deadlocks - Predictable query performance 103 Monday, March 8, 2010
  • 143. Datastore - what's different - No inner/outer/natural joins - Dense index scans - Per entity metadata - Soft schema - No more DDL 104 Monday, March 8, 2010
  • 144. Datastore - what's familiar - Indexes - ACID transactions - GQL SELECT * FROM Story WHERE title = 'App Engine Launch' AND author = :current_user AND rating >= 10 ORDER BY rating, created DESC 105 Monday, March 8, 2010
  • 145. The new ACID Atomic Associative Consistent Commutative Isolated Idempotent Durable Distributed 106 Monday, March 8, 2010
  • 146. Entities 107 Monday, March 8, 2010
  • 147. Entity groups 108 Monday, March 8, 2010
  • 148. Amortizing costs Count(COUNT) Transaction SUM(Order Amount) Create Update Delete Customer Order 109 Monday, March 8, 2010
  • 149. An evolving platform 110 Monday, March 8, 2010
  • 150. 23 months 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, Async Urlfetch 111 Monday, March 8, 2010
  • 151. App Engine Roadmap - Support for mapping operations across datasets - Alerting system for exceptions in your application - Datastore dump and restore facility 112 Monday, March 8, 2010
  • 152. Wrap up 113 Monday, March 8, 2010
  • 153. Always free to get started ~5M pageviews/month • 6.5 CPU hrs/day • 1 GB storage • 650K URL Fetch calls/day • 2,000 recipients emailed • 1 GB/day bandwidth • 100,000 tasks enqueued • 650K XMPP messages/day 114 Monday, March 8, 2010
  • 154. Purchase additional resources * * free monthly quota of ~5 million page views still in full effect 115 Monday, March 8, 2010
  • 155. Thank you Read more http://code.google.com/appengine/ Contact info Patrick Chanezon Developer Advocate chanezon@google.com http://twitter.com/chanezon Questions ? 116 Monday, March 8, 2010
  • 156. Thanks To Alon Levi, Fred Sauer, Brett Slatkin and others for their slides Monday, March 8, 2010