SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
Chris Mills
 
Socket applications
Socket applicationsSocket applications
Socket applications
João Moura
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
mdc11
 

Was ist angesagt? (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
 

Ähnlich wie 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 Engine
catherinewall
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
lisab517
 

Ähnlich wie 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
 

Mehr von catherinewall

Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
catherinewall
 

Mehr von 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
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

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