SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Castles in the Cloud:
Developing with Google App Engine
Kevin Noonan
Calbane Ltd.
IT@Cork, 20th April, 2009
Castles in the Cloud




Introduction
A working definition of Cloudware




 •   Outsourced Virtualization
      o   Virtual server running on outsourced server farm
The Cloud Computing Pyramid




•Michael Sheehan of GoGrid devised this classification
Main Players
Other Players
•   Microsoft Windows Azure
     o    Including .NET Live Services

•   Force.com from Salesforce
•   SUN (recently announced)
•   Mosso
•   GoGrid
•   FlexiScale
•   Hosting365
•   ...
What's Cloudware good for? (I)‫‏‬




•   Guerilla development
     o   Pay-per-use model is ideal for startups
     o   Also good for guerillas inside the enterprise...
What's Cloudware good for? (II)‫‏‬




•   Scaling up
     o   Clone the virtual server
     o   pay for extra resources (bandwidth, storage, RAM, etc.)‫‏‬
What's Cloudware good for? (III)‫‏‬




•   In general, outsourcing IT infrastructure
     o   pay someone else to run your servers, network, database...
Castles in the Cloud

Who's using Cloudware & why not?
Startups & Large Firms on AWS
•   Startups
     o   Twitter
     o   SmugMug
     o   Pixenate (Walter Higgin's site, from here in Ireland)‫‏‬
     o   Many Facebook apps, e.g. iLIke



•   Large firms
     o   NASDAQ
     o   Activision
     o   Business Objects
     o   Hasbro
     o   New York Times



•   See: http://aws.amazon.com/solutions/case-studies/
Startups on Google App Engine

•   Startups
     o   BuddyPoke! (30M daily pageviews on App Engine)‫‏‬
     o   Pixverse (PixChat)‫‏‬
     o   Hyperic (Cloudstatus)‫‏‬



•   One large company's experiment:
     o   GiftTag from BestBuy



•   http://code.google.com/appengine/casestudies.html
Barriers to Enterprise Adoption

•   Immaturity of the technology
     o    Although AWS is over three years old

•   Concerns about reliability
•   Concerns about portability
     o    no two clouds are the same



•   Bureaucracy & inertia
•   Lock-in to legacy systems
•   Fear of loss-of-control & of job-losses
•   ...
Black days in the Cloud

•   Amazon S3 went down for two consecutive hours in Feb 2008.


•   Amazon S3 (& Amazon SQS) went down for eight consecutive US daytime hours in
    July 2008.


•   App Engine had a five-hour partial-outage in June '08


•   App Engine had a problem of increased latency (for web-serving) over a few days in
    early Mar '09.


•   Group for notification of App Engine downtime
     o   http://groups.google.com/group/google-appengine-downtime-notify
Castles in the Cloud

Google App Engine
Python: The Original of the Species
Java: the All New Flavour
Languages on App Engine's JVM
•   Java
•   JRuby
•   Jython
•   BeanShell
•   JavaScript
•   Scala
•   Groovy
•   …
•   Will it Play in App Engine?
    http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
What is Google App Engine?
•   Complete web stack
     o   Soon to be more general computing platform

•   Runs on Google's infrastructure
•   Bigtable Datastore
     o   Like a sorted hashtable
     o   Not a relational database
     o   Use GQL (with Python) instead of SQL
     o   Use JDO or JPA (with Java) for datastore work

•   Memcache
•   Image API
•   Mail API
•   Python library available for Force.com web services
•   SDK for development on Windows/Mac/Linux
     o   Run & test locally before uploading to Cloud
A fabulous app: 'Gaebar'




Alternative: use AppRocket to replicate an App Engine datastore to an SQL database
http://code.google.com/p/approcket/
Limitations of Google App Engine
•   Applications run in “The Sandbox”:
    http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox


•   Native Python modules (written in C) do not work.


•   Many Java libraries will not work (but many have been patched or will be).
    See the JRE whitelist: http://code.google.com/appengine/docs/java/jrewhitelist.html


•   No “long-lived” processing (requests must return in 30 seconds).


•   Limited “offline processing” (this is coming)
     o   no forks, no spawned processes, no threads
     o   Just scheduled tasks, which work like “cron jobs” on UNIX systems



•   HTTPS only on XYZ.appspot.com
     o   and only with Google's certificate.
     o   Due to limitation of SSL protocol, as applied to Google's Cloud.
Roadmap to June for App Engine
•   Service for storing and serving large files


•   Task queues for performing background processing


•   Incoming email support


•   XMPP (Jabber) API
'Batch processing' on App Engine today
•   Use App Engine's task scheduling for “cron jobs” spaced a minute apart (or more seldom)


•   A hack for more frequent jobs: run a cron-job on your PC or server to periodically hit a URL on App
    Engine and kick off a task


•   An outsourced hack for more frequent jobs: use webcron.org
     o   do the same as above (perhaps more reliably!)
     o   Cost: one hundredth of one Euro cent per 'hit'


•   More sophisticated: hitch the clouds together
     o   'App Engine Patch' has support for 'Boto'
     o   'Boto' is a Python library for Amazon
     o   Use Boto (on App Engine) to queue work-packets on Amazon's Simple Queue Service (SQS)
     o   Kick off tasks on App Engine with a method above.
     o   Cost: $0.01 per 10,000 requests
     o   (+ $0.10 per GB transferred in...)
Web tools for App Engine
•   “Xmas gifts” - announced in late December 2008


•   Zoho Creator
     o   generates code and web-pages for deployment
     o   http://creator.zoho.com/



•   App Engine Site Creator
     o   “Lightweight CMS” (with GUI interface)‫‏‬
     o   http://code.google.com/p/app-engine-site-creator/
     o   Apache 2.0 license
Billing on Google App Engine
• True pay-per-use
 o   free quotas & no bill to pay if quotas not exceeded.
 o   quite different model to AWS



• Developer can assign budget per resource.

• Prices
 o   $0.10 per CPU core-hour
 o   $0.15 per GB-month of storage
 o   $0.12 per GB outgoing bandwidth
 o   $0.10 per GB incoming bandwidth
 o   $0.0001 per email recipient for emails sent by the application
Free Quotas on App Engine
•Daily outgoing bandwidth: 10 GB

•Daily incoming bandwidth 10 GB

•Daily requests 1.3 million

• Daily CPU-hours: 46

• More quotas (mail, datastore, images, memcache)
http://code.google.com/appengine/docs/quotas.html
Other limitations on App Engine
• 1 GB of free storage per app.

•100 MB Memcache storage limit

• App Engine apps can now receive requests and send responses of up to 10MB.

• Caveat: 1 MB limit on datastore/memcache API call

• You can deploy up to 1,000 code and 1,000 static files with an app.
Workaround: use ZipImport (with Python) to store files in a Zip-archive:
http://code.google.com/appengine/articles/django10_zipimport.html


• 150MB cumulative limit on an app's code and static files
(as opposed to storage in the datastore).
Atypical Uses of App Engine

•   Run Open Source software (e.g. blog / CMS):
http:/groups.google.com/group/google-appengine/web/google-app-engine-open-source-projects


• Store your static files on App Engine
 o   You can use App Engine as rudimentary 'Content Delivery Network'


• Expose a web-service on App Engine (while doing your main development elsewhere)
REST library for Django & App Engine: http://code.google.com/p/python-rest/


• Expose an interface to BigTable and exploit its scalable storage:
REST interface to datastore: http://code.google.com/p/app3/


• Use RESTlets for Java equivalent of the two above:
http://wiki.restlet.org/docs_1.2/13-restlet/252-restlet.html
Brief Case Study: LongURLPlease
• LongURLPlease expands “tiny URLs” to the original long versions.

• Original version written in a day by Darragh Curran, with barely any previous Python experience.

• Launched publicly on December 23rd, 2008.

• Rapidly became a platform in itself: at least nine other applications built on the API within 8 weeks

• Over four thousand downloads of the Firefox plugin

• 100K – 200K requests per day (each request can batch up to 4 URLs)

• Running costs: zero (since its usage is well below the free quotas)
Where to go from here (Python)
• App Engine Helper tutorial
 o   http://blog.pas.net.au/2009/02/17/django-and-google-app-engine-tutorial/


• App Engine Patch article (I recommend AEP over the “helper” above)
 o   http://code.google.com/appengine/articles/app-engine-patch.html


• App Engine cheatsheet: http://short.ie/cheatongae

• Code samples
 o   http://code.google.com/p/google-app-engine-samples/downloads/list
Where to go from here (Java)
•   Sign up for the Java “early look”
    http://appengine.google.com/promo/java_runtime


•   Install the Eclipse plugin (& SDK)
    http://code.google.com/appengine/docs/java/tools/eclipse.html
    (The Java samples are in the SDK.)


•   Read Google's docs and follow the tutorial:
    http://code.google.com/appengine/docs/java/overview.html


•   Or pick your own language and get up-and-running on the JVM:
    http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
Castles in the Cloud

 Reference




2/27/2009
Articles & Papers
•   10 Reasons Enterprises Aren't Ready to Trust the Cloud
     o   http://gigaom.com/2008/07/01/10-reasons-enterprises-arent-ready-to-trust-the-cloud/



•   The Information Factories, by George Gilder
     o   http://www.wired.com/wired/archive/14.10/cloudware_pr.html
     o   quot;When the network becomes as fast as the processor, the computer hollows out and spreads across the network.quot;
         - in 1993, from Sun Microsystems' CTO, Eric Schmidt (now CEO of Google)



•   Above the Clouds: A Berkeley View of Cloud Computing
     o   http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html
Resources for Google App Engine
•   Google App Engine: http://appengine.google.com


•   Videos from conference Google held in 2008
     o   http://sites.google.com/site/io/



•   Chat with developers from the App Engine team
     o   first Wednesday of the month: 3am next day (Dublin/London time).
     o   third Wednesday of the month: 5pm (Dublin/London time).
     o   IRC channel: #appengine on irc.freenode.net
     o   http://en.wikipedia.org/wiki/List_of_IRC_clients



•   Google Group
     o   http://groups.google.com/group/google-appengine/



•   Paper on Bigtable:
     o   http://labs.google.com/papers/bigtable.html
Book (I)‫‏‬
       Developing with Google App Engine
                        
              by Eugene Ciurana


                  Published:
                   Feb 2009
                        
               http://apress.com/
Book (II)‫‏‬

             Google App Engine in Action
                           
             by Noah Gift & Michael Orr


                  To be published:
                      May 2009
                           
             http://www.manning.com/gift/
Book (III)‫‏‬

          Google App Engine
                        
          by Dan Sanderson


          To be published:
                 Sept 2009
                        
              http://oreilly.com/
Castles in the Cloud

 Wrapping up




2/27/2009
Credits
•   Photos used under Creative Commons license:
•   Photo Credits
     o   http://www.flickr.com/photos/notsogoodphotography/
     o   http://www.flickr.com/photos/barto/
     o   http://www.flickr.com/photos/kitoy/
     o   http://www.flickr.com/photos/wolfgangstaudt/
     o   http://www.flickr.com/photos/motumboe/
     o   http://www.flickr.com/photos/ragnar1984/
     o   http://www.flickr.com/photos/janekm/
     o   http://www.flickr.com/photos/raylopez/
     o   http://www.flickr.com/photos/pagedooley/
     o   http://www.flickr.com/photos/gustty/
     o   http://www.flickr.com/photos/mike9alive/
     o   http://www.flickr.com/photos/tambako/
     o   http://www.flickr.com/photos/nate
     o   http://www.flickr.com/photos/freewine/
Cloudware is the arsenal of freedom




•   Go guerilla
     o   Experiment with cloudware
     o   Consider using cloudware for your new projects
     o   Test-drive your favourite language on the App Engine SDK
     o   Await availability for access to the production Java runtime
Contact Information
     Kevin Noonan




 kevin_noonan on Twitter

 http://www.calbane.com

Contenu connexe

Tendances

Building Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronBuilding Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronChris Ward
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"Chris Mills
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
 
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy waystefanjudis
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!Chris Mills
 
Service Workers for Performance
Service Workers for PerformanceService Workers for Performance
Service Workers for PerformancePatrick Meenan
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the futureChris Mills
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9Ilya Grigorik
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web appsChris Mills
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Matthew McCullough
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approachMark Friedman
 
Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Django in heavy load environment
Django in heavy load environmentDjango in heavy load environment
Django in heavy load environmentAndy Dai
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingPatrick Meenan
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Julien SIMON
 
Real-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsReal-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsStanislav Zozulia
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Enginemdc11
 

Tendances (19)

Building Cross Platform Apps with Electron
Building Cross Platform Apps with ElectronBuilding Cross Platform Apps with Electron
Building Cross Platform Apps with Electron
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance Investigations
 
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy way
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
Service Workers for Performance
Service Workers for PerformanceService Workers for Performance
Service Workers for Performance
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Socket applications
Socket applicationsSocket applications
Socket applications
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
Django in heavy load environment
Django in heavy load environmentDjango in heavy load environment
Django in heavy load environment
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 Training
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)
 
Real-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsReal-Time Web applications with WebSockets
Real-Time Web applications with WebSockets
 
Making the web faster
Making the web fasterMaking the web faster
Making the web faster
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 

Similaire à Castles in the Cloud: Developing with Google App Engine

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munichdion
 
I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveSimon Willison
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 
Intro To Django
Intro To DjangoIntro To Django
Intro To DjangoUdi Bauman
 
Google App Engine: An Introduction
Google App Engine: An IntroductionGoogle App Engine: An Introduction
Google App Engine: An IntroductionAbu Ashraf Masnun
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developerslisab517
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Ido Green
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...Vladimir Simek
 
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...IEEEFINALSEMSTUDENTPROJECTS
 
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...IEEEMEMTECHSTUDENTPROJECTS
 
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR Hadoop
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR HadoopCrunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR Hadoop
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR HadoopAdrian Cockcroft
 
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPSimpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPDaniel Zivkovic
 

Similaire à Castles in the Cloud: Developing with Google App Engine (20)

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you have
 
Where should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and moreWhere should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and more
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
 
Google App Engine: An Introduction
Google App Engine: An IntroductionGoogle App Engine: An Introduction
Google App Engine: An Introduction
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
 
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
 
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
 
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR Hadoop
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR HadoopCrunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR Hadoop
Crunch Your Data in the Cloud with Elastic Map Reduce - Amazon EMR Hadoop
 
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPSimpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
 

Plus de catherinewall

Building Modular Dynamic Web Apps Ben Hale
Building Modular Dynamic Web Apps   Ben HaleBuilding Modular Dynamic Web Apps   Ben Hale
Building Modular Dynamic Web Apps Ben Halecatherinewall
 
Infinispan The Future Of Os Data Grids Manik Surtani
Infinispan The Future Of Os Data Grids   Manik SurtaniInfinispan The Future Of Os Data Grids   Manik Surtani
Infinispan The Future Of Os Data Grids Manik Surtanicatherinewall
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Rittercatherinewall
 
Design Decisions for iPhone Applications, Des Traynor, Contrast
Design Decisions for iPhone Applications, Des Traynor, ContrastDesign Decisions for iPhone Applications, Des Traynor, Contrast
Design Decisions for iPhone Applications, Des Traynor, Contrastcatherinewall
 
Creating New Interaction with the iPhone, Daniel Heffernan, Appschool
Creating New Interaction with the iPhone, Daniel Heffernan, AppschoolCreating New Interaction with the iPhone, Daniel Heffernan, Appschool
Creating New Interaction with the iPhone, Daniel Heffernan, Appschoolcatherinewall
 
Ronan Geraghty Microsoft BizSpark Introduction
Ronan Geraghty Microsoft BizSpark IntroductionRonan Geraghty Microsoft BizSpark Introduction
Ronan Geraghty Microsoft BizSpark Introductioncatherinewall
 
Knocking on Heavens Door - The Business Reality of Doing Business in the Cloud
Knocking on Heavens Door - The Business Reality of Doing Business in the CloudKnocking on Heavens Door - The Business Reality of Doing Business in the Cloud
Knocking on Heavens Door - The Business Reality of Doing Business in the Cloudcatherinewall
 
Cloud Computing in Practice: Fast Application Development and Delivery on For...
Cloud Computing in Practice: Fast Application Development and Delivery on For...Cloud Computing in Practice: Fast Application Development and Delivery on For...
Cloud Computing in Practice: Fast Application Development and Delivery on For...catherinewall
 
Emerging Technology in the Cloud! Real Life Examples. Pol Mac Aonghusa
Emerging Technology in the Cloud! Real Life Examples.  Pol Mac AonghusaEmerging Technology in the Cloud! Real Life Examples.  Pol Mac Aonghusa
Emerging Technology in the Cloud! Real Life Examples. Pol Mac Aonghusacatherinewall
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTscatherinewall
 
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...catherinewall
 
Green Computing - A Leadership Role - Tom Moriarty, DELL
Green Computing - A Leadership Role - Tom Moriarty, DELLGreen Computing - A Leadership Role - Tom Moriarty, DELL
Green Computing - A Leadership Role - Tom Moriarty, DELLcatherinewall
 
Green IT @ STRATO - Rene Weinholtz
Green IT @ STRATO - Rene WeinholtzGreen IT @ STRATO - Rene Weinholtz
Green IT @ STRATO - Rene Weinholtzcatherinewall
 
The Business Challenges of the future Low Carbon Economy - Niall Brady
The Business Challenges of the future Low Carbon Economy - Niall BradyThe Business Challenges of the future Low Carbon Economy - Niall Brady
The Business Challenges of the future Low Carbon Economy - Niall Bradycatherinewall
 
The Electric Grid 2.0 - Fergus Wheatly
The Electric Grid 2.0 - Fergus WheatlyThe Electric Grid 2.0 - Fergus Wheatly
The Electric Grid 2.0 - Fergus Wheatlycatherinewall
 
SMART2020: ICT & Climate Change. Opportunities or Threat? Chris Tuppen, BT
SMART2020: ICT & Climate Change.  Opportunities or Threat? Chris Tuppen, BTSMART2020: ICT & Climate Change.  Opportunities or Threat? Chris Tuppen, BT
SMART2020: ICT & Climate Change. Opportunities or Threat? Chris Tuppen, BTcatherinewall
 
Green IT: Moving Beyond the 2% Solution - Doug Neal
Green IT: Moving Beyond the 2% Solution - Doug NealGreen IT: Moving Beyond the 2% Solution - Doug Neal
Green IT: Moving Beyond the 2% Solution - Doug Nealcatherinewall
 

Plus de catherinewall (19)

Building Modular Dynamic Web Apps Ben Hale
Building Modular Dynamic Web Apps   Ben HaleBuilding Modular Dynamic Web Apps   Ben Hale
Building Modular Dynamic Web Apps Ben Hale
 
Infinispan The Future Of Os Data Grids Manik Surtani
Infinispan The Future Of Os Data Grids   Manik SurtaniInfinispan The Future Of Os Data Grids   Manik Surtani
Infinispan The Future Of Os Data Grids Manik Surtani
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Ritter
 
Design Decisions for iPhone Applications, Des Traynor, Contrast
Design Decisions for iPhone Applications, Des Traynor, ContrastDesign Decisions for iPhone Applications, Des Traynor, Contrast
Design Decisions for iPhone Applications, Des Traynor, Contrast
 
Creating New Interaction with the iPhone, Daniel Heffernan, Appschool
Creating New Interaction with the iPhone, Daniel Heffernan, AppschoolCreating New Interaction with the iPhone, Daniel Heffernan, Appschool
Creating New Interaction with the iPhone, Daniel Heffernan, Appschool
 
Ronan Geraghty Microsoft BizSpark Introduction
Ronan Geraghty Microsoft BizSpark IntroductionRonan Geraghty Microsoft BizSpark Introduction
Ronan Geraghty Microsoft BizSpark Introduction
 
BackUpEarth
BackUpEarthBackUpEarth
BackUpEarth
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 
Knocking on Heavens Door - The Business Reality of Doing Business in the Cloud
Knocking on Heavens Door - The Business Reality of Doing Business in the CloudKnocking on Heavens Door - The Business Reality of Doing Business in the Cloud
Knocking on Heavens Door - The Business Reality of Doing Business in the Cloud
 
Cloud Computing in Practice: Fast Application Development and Delivery on For...
Cloud Computing in Practice: Fast Application Development and Delivery on For...Cloud Computing in Practice: Fast Application Development and Delivery on For...
Cloud Computing in Practice: Fast Application Development and Delivery on For...
 
Emerging Technology in the Cloud! Real Life Examples. Pol Mac Aonghusa
Emerging Technology in the Cloud! Real Life Examples.  Pol Mac AonghusaEmerging Technology in the Cloud! Real Life Examples.  Pol Mac Aonghusa
Emerging Technology in the Cloud! Real Life Examples. Pol Mac Aonghusa
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
 
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...
How ICT will help deliver ESB\'s Sustainability Strategy, Padraig McManus, CE...
 
Green Computing - A Leadership Role - Tom Moriarty, DELL
Green Computing - A Leadership Role - Tom Moriarty, DELLGreen Computing - A Leadership Role - Tom Moriarty, DELL
Green Computing - A Leadership Role - Tom Moriarty, DELL
 
Green IT @ STRATO - Rene Weinholtz
Green IT @ STRATO - Rene WeinholtzGreen IT @ STRATO - Rene Weinholtz
Green IT @ STRATO - Rene Weinholtz
 
The Business Challenges of the future Low Carbon Economy - Niall Brady
The Business Challenges of the future Low Carbon Economy - Niall BradyThe Business Challenges of the future Low Carbon Economy - Niall Brady
The Business Challenges of the future Low Carbon Economy - Niall Brady
 
The Electric Grid 2.0 - Fergus Wheatly
The Electric Grid 2.0 - Fergus WheatlyThe Electric Grid 2.0 - Fergus Wheatly
The Electric Grid 2.0 - Fergus Wheatly
 
SMART2020: ICT & Climate Change. Opportunities or Threat? Chris Tuppen, BT
SMART2020: ICT & Climate Change.  Opportunities or Threat? Chris Tuppen, BTSMART2020: ICT & Climate Change.  Opportunities or Threat? Chris Tuppen, BT
SMART2020: ICT & Climate Change. Opportunities or Threat? Chris Tuppen, BT
 
Green IT: Moving Beyond the 2% Solution - Doug Neal
Green IT: Moving Beyond the 2% Solution - Doug NealGreen IT: Moving Beyond the 2% Solution - Doug Neal
Green IT: Moving Beyond the 2% Solution - Doug Neal
 

Dernier

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Dernier (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Castles in the Cloud: Developing with Google App Engine

  • 1. Castles in the Cloud: Developing with Google App Engine Kevin Noonan Calbane Ltd. IT@Cork, 20th April, 2009
  • 2. Castles in the Cloud Introduction
  • 3. A working definition of Cloudware • Outsourced Virtualization o Virtual server running on outsourced server farm
  • 4. The Cloud Computing Pyramid •Michael Sheehan of GoGrid devised this classification
  • 6. Other Players • Microsoft Windows Azure o Including .NET Live Services • Force.com from Salesforce • SUN (recently announced) • Mosso • GoGrid • FlexiScale • Hosting365 • ...
  • 7. What's Cloudware good for? (I)‫‏‬ • Guerilla development o Pay-per-use model is ideal for startups o Also good for guerillas inside the enterprise...
  • 8. What's Cloudware good for? (II)‫‏‬ • Scaling up o Clone the virtual server o pay for extra resources (bandwidth, storage, RAM, etc.)‫‏‬
  • 9. What's Cloudware good for? (III)‫‏‬ • In general, outsourcing IT infrastructure o pay someone else to run your servers, network, database...
  • 10. Castles in the Cloud Who's using Cloudware & why not?
  • 11. Startups & Large Firms on AWS • Startups o Twitter o SmugMug o Pixenate (Walter Higgin's site, from here in Ireland)‫‏‬ o Many Facebook apps, e.g. iLIke • Large firms o NASDAQ o Activision o Business Objects o Hasbro o New York Times • See: http://aws.amazon.com/solutions/case-studies/
  • 12. Startups on Google App Engine • Startups o BuddyPoke! (30M daily pageviews on App Engine)‫‏‬ o Pixverse (PixChat)‫‏‬ o Hyperic (Cloudstatus)‫‏‬ • One large company's experiment: o GiftTag from BestBuy • http://code.google.com/appengine/casestudies.html
  • 13. Barriers to Enterprise Adoption • Immaturity of the technology o Although AWS is over three years old • Concerns about reliability • Concerns about portability o no two clouds are the same • Bureaucracy & inertia • Lock-in to legacy systems • Fear of loss-of-control & of job-losses • ...
  • 14. Black days in the Cloud • Amazon S3 went down for two consecutive hours in Feb 2008. • Amazon S3 (& Amazon SQS) went down for eight consecutive US daytime hours in July 2008. • App Engine had a five-hour partial-outage in June '08 • App Engine had a problem of increased latency (for web-serving) over a few days in early Mar '09. • Group for notification of App Engine downtime o http://groups.google.com/group/google-appengine-downtime-notify
  • 15. Castles in the Cloud Google App Engine
  • 16. Python: The Original of the Species
  • 17. Java: the All New Flavour
  • 18. Languages on App Engine's JVM • Java • JRuby • Jython • BeanShell • JavaScript • Scala • Groovy • … • Will it Play in App Engine? http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
  • 19. What is Google App Engine? • Complete web stack o Soon to be more general computing platform • Runs on Google's infrastructure • Bigtable Datastore o Like a sorted hashtable o Not a relational database o Use GQL (with Python) instead of SQL o Use JDO or JPA (with Java) for datastore work • Memcache • Image API • Mail API • Python library available for Force.com web services • SDK for development on Windows/Mac/Linux o Run & test locally before uploading to Cloud
  • 20. A fabulous app: 'Gaebar' Alternative: use AppRocket to replicate an App Engine datastore to an SQL database http://code.google.com/p/approcket/
  • 21. Limitations of Google App Engine • Applications run in “The Sandbox”: http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox • Native Python modules (written in C) do not work. • Many Java libraries will not work (but many have been patched or will be). See the JRE whitelist: http://code.google.com/appengine/docs/java/jrewhitelist.html • No “long-lived” processing (requests must return in 30 seconds). • Limited “offline processing” (this is coming) o no forks, no spawned processes, no threads o Just scheduled tasks, which work like “cron jobs” on UNIX systems • HTTPS only on XYZ.appspot.com o and only with Google's certificate. o Due to limitation of SSL protocol, as applied to Google's Cloud.
  • 22. Roadmap to June for App Engine • Service for storing and serving large files • Task queues for performing background processing • Incoming email support • XMPP (Jabber) API
  • 23. 'Batch processing' on App Engine today • Use App Engine's task scheduling for “cron jobs” spaced a minute apart (or more seldom) • A hack for more frequent jobs: run a cron-job on your PC or server to periodically hit a URL on App Engine and kick off a task • An outsourced hack for more frequent jobs: use webcron.org o do the same as above (perhaps more reliably!) o Cost: one hundredth of one Euro cent per 'hit' • More sophisticated: hitch the clouds together o 'App Engine Patch' has support for 'Boto' o 'Boto' is a Python library for Amazon o Use Boto (on App Engine) to queue work-packets on Amazon's Simple Queue Service (SQS) o Kick off tasks on App Engine with a method above. o Cost: $0.01 per 10,000 requests o (+ $0.10 per GB transferred in...)
  • 24. Web tools for App Engine • “Xmas gifts” - announced in late December 2008 • Zoho Creator o generates code and web-pages for deployment o http://creator.zoho.com/ • App Engine Site Creator o “Lightweight CMS” (with GUI interface)‫‏‬ o http://code.google.com/p/app-engine-site-creator/ o Apache 2.0 license
  • 25. Billing on Google App Engine • True pay-per-use o free quotas & no bill to pay if quotas not exceeded. o quite different model to AWS • Developer can assign budget per resource. • Prices o $0.10 per CPU core-hour o $0.15 per GB-month of storage o $0.12 per GB outgoing bandwidth o $0.10 per GB incoming bandwidth o $0.0001 per email recipient for emails sent by the application
  • 26. Free Quotas on App Engine •Daily outgoing bandwidth: 10 GB •Daily incoming bandwidth 10 GB •Daily requests 1.3 million • Daily CPU-hours: 46 • More quotas (mail, datastore, images, memcache) http://code.google.com/appengine/docs/quotas.html
  • 27. Other limitations on App Engine • 1 GB of free storage per app. •100 MB Memcache storage limit • App Engine apps can now receive requests and send responses of up to 10MB. • Caveat: 1 MB limit on datastore/memcache API call • You can deploy up to 1,000 code and 1,000 static files with an app. Workaround: use ZipImport (with Python) to store files in a Zip-archive: http://code.google.com/appengine/articles/django10_zipimport.html • 150MB cumulative limit on an app's code and static files (as opposed to storage in the datastore).
  • 28. Atypical Uses of App Engine • Run Open Source software (e.g. blog / CMS): http:/groups.google.com/group/google-appengine/web/google-app-engine-open-source-projects • Store your static files on App Engine o You can use App Engine as rudimentary 'Content Delivery Network' • Expose a web-service on App Engine (while doing your main development elsewhere) REST library for Django & App Engine: http://code.google.com/p/python-rest/ • Expose an interface to BigTable and exploit its scalable storage: REST interface to datastore: http://code.google.com/p/app3/ • Use RESTlets for Java equivalent of the two above: http://wiki.restlet.org/docs_1.2/13-restlet/252-restlet.html
  • 29. Brief Case Study: LongURLPlease • LongURLPlease expands “tiny URLs” to the original long versions. • Original version written in a day by Darragh Curran, with barely any previous Python experience. • Launched publicly on December 23rd, 2008. • Rapidly became a platform in itself: at least nine other applications built on the API within 8 weeks • Over four thousand downloads of the Firefox plugin • 100K – 200K requests per day (each request can batch up to 4 URLs) • Running costs: zero (since its usage is well below the free quotas)
  • 30. Where to go from here (Python) • App Engine Helper tutorial o http://blog.pas.net.au/2009/02/17/django-and-google-app-engine-tutorial/ • App Engine Patch article (I recommend AEP over the “helper” above) o http://code.google.com/appengine/articles/app-engine-patch.html • App Engine cheatsheet: http://short.ie/cheatongae • Code samples o http://code.google.com/p/google-app-engine-samples/downloads/list
  • 31. Where to go from here (Java) • Sign up for the Java “early look” http://appengine.google.com/promo/java_runtime • Install the Eclipse plugin (& SDK) http://code.google.com/appengine/docs/java/tools/eclipse.html (The Java samples are in the SDK.) • Read Google's docs and follow the tutorial: http://code.google.com/appengine/docs/java/overview.html • Or pick your own language and get up-and-running on the JVM: http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
  • 32. Castles in the Cloud Reference 2/27/2009
  • 33. Articles & Papers • 10 Reasons Enterprises Aren't Ready to Trust the Cloud o http://gigaom.com/2008/07/01/10-reasons-enterprises-arent-ready-to-trust-the-cloud/ • The Information Factories, by George Gilder o http://www.wired.com/wired/archive/14.10/cloudware_pr.html o quot;When the network becomes as fast as the processor, the computer hollows out and spreads across the network.quot; - in 1993, from Sun Microsystems' CTO, Eric Schmidt (now CEO of Google) • Above the Clouds: A Berkeley View of Cloud Computing o http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html
  • 34. Resources for Google App Engine • Google App Engine: http://appengine.google.com • Videos from conference Google held in 2008 o http://sites.google.com/site/io/ • Chat with developers from the App Engine team o first Wednesday of the month: 3am next day (Dublin/London time). o third Wednesday of the month: 5pm (Dublin/London time). o IRC channel: #appengine on irc.freenode.net o http://en.wikipedia.org/wiki/List_of_IRC_clients • Google Group o http://groups.google.com/group/google-appengine/ • Paper on Bigtable: o http://labs.google.com/papers/bigtable.html
  • 35. Book (I)‫‏‬ Developing with Google App Engine   by Eugene Ciurana Published: Feb 2009   http://apress.com/
  • 36. Book (II)‫‏‬ Google App Engine in Action   by Noah Gift & Michael Orr To be published: May 2009   http://www.manning.com/gift/
  • 37. Book (III)‫‏‬ Google App Engine   by Dan Sanderson To be published: Sept 2009   http://oreilly.com/
  • 38. Castles in the Cloud Wrapping up 2/27/2009
  • 39. Credits • Photos used under Creative Commons license: • Photo Credits o http://www.flickr.com/photos/notsogoodphotography/ o http://www.flickr.com/photos/barto/ o http://www.flickr.com/photos/kitoy/ o http://www.flickr.com/photos/wolfgangstaudt/ o http://www.flickr.com/photos/motumboe/ o http://www.flickr.com/photos/ragnar1984/ o http://www.flickr.com/photos/janekm/ o http://www.flickr.com/photos/raylopez/ o http://www.flickr.com/photos/pagedooley/ o http://www.flickr.com/photos/gustty/ o http://www.flickr.com/photos/mike9alive/ o http://www.flickr.com/photos/tambako/ o http://www.flickr.com/photos/nate o http://www.flickr.com/photos/freewine/
  • 40. Cloudware is the arsenal of freedom • Go guerilla o Experiment with cloudware o Consider using cloudware for your new projects o Test-drive your favourite language on the App Engine SDK o Await availability for access to the production Java runtime
  • 41. Contact Information Kevin Noonan kevin_noonan on Twitter http://www.calbane.com