Using App Engine and Google Web
  Toolkit to power your start-ups

           February 27th, 2010
       St. Louis Innovation Camp

               Jason Cooper
        Developer Programs Engineer
         jasonacooper@google.com
Two* classes of apps

   (* intentionally broad)
Apps that don't need a back-end...
Apps that don't need a back-end...
And apps that do...




      All interesting applications
?
?




http://www.flickr.com/photos/befuddledsenses/
CC BY 2.0
X




http://www.flickr.com/photos/befuddledsenses/
CC BY 2.0
http://www.flickr.com/photos/neospire/
CC BY 2.0
Don't reinvent the wheel:
leverage others' strengths
Enter App Engine...
Google App Engine pitch #1



   "Run your apps on Google's
     scalable infrastructure"
Google App Engine pitch #2



   "Run your apps in Google's
        managed cloud"
Google App Engine pitch #3



 "Get your apps running reliably
     and ready to scale in
          30 seconds"
Reliability:
Building web applications is hard
Scalability:

With just a few users...




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

With lots and lots of users...




                 ...you must design for scalability
WhiteHouse.gov/openforquestions
Scale dynamically and automatically




                   App       App’s
        Use       Engine    Runtime
         r       Frontend
Scale dynamically and automatically




                   App       App’s
        Use       Engine    Runtime
         r       Frontend
Scale dynamically and automatically


                 Use
     Use          r
      r


                         App       App’s
           Use          Engine    Runtime
            r          Frontend




     Use
      r          Use
                  r
Scale dynamically and automatically


                 Use
                                   App’s
     Use          r
                                  Runtime
      r


                         App       App’s
           Use          Engine    Runtime
            r          Frontend



                                   App’s
                                  Runtime
     Use
      r          Use
                  r
Multiple versions

                      http://fredsa.appspot.com/


                             Version 1.1


            App
           Engine                                     Datastore
  Use
   r      Frontend



                             Version 2.1


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




           * and other JVM-
           compatible languages
Services and APIs

 Datastore
 URL Fetch
 Memcache
 Mail
 XMPP
 Images
 Google Accounts
 Background tasks
Ensuring portability
Administrative Console
Google Plugin for Eclipse
Google Apps + your apps

                                       Your custom
 Our Google Apps                       applications




        Google's scalable serving architecture
How much?
Always free to get started


Free Quota
~5M pageviews/month

 6.5 CPU hrs/day
 2,000 recipients emailed
 1 GB/day bandwidth
Purchase Additional Resources
App Engine in three bullets

Deploy your apps to a platform that is

              Easy to use

              Easy to scale

              Easy to manage
Google Web Toolkit
Google Web Toolkit

Mission statement

   "GWT's mission is to radically improve
       the web experience for users by
     enabling developers to use existing
     Java tools to build no-compromise
       AJAX for any modern browser."
Google Web Toolkit

GWT is all about

  Productivity for developers
  Language, IDEs, tools, libraries
  People, ecosystem
  Performance
     'Perfect' caching
     Whole program optimization
     Better than practical hand written code
Google Web Toolkit


                       IE



                      Firefox


                     Safari
                     Chrome


                      Opera
Complete Java development stack




               +

App Engine/GWT overview (STLIC 02-10)