SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
GOOGLE APP ENGINE FOR THE
       ENTERPRISE

         Kayode Odeyemi
         Technical Architect, Opevel



       Cloud Camp Lagos, 2011

              May 28th, 2011
The Cloud

1. Convenience
       Pay for what you use

2. On-Demand network access
       Use as much as you need, whenever you need

3. Minimal management effort
       Don’t have to build your own infrastructure
Cloud Computing – As seen by Gartner
WHAT IS GOOGLE APP ENGINE?


•   Google’s own infrastructure for running web applications
•   The P (Platform) of Cloud Computing.
•   App Engine is HTTP Server, but does not serve HTML
•   Host web services for integration
•   Consume other web services
•   Various authentication options: Oauth, Google Account

So, Google App Engine falls under PaaS of Cloud Computing
WHY GOOGLE APP ENGINE?



• Easy to build

• Easy to maintain

• Easy to Scale
HOW DOES IT WORK?


• Build

• Push

• Never worry about scalability
HOW DOES IT WORK?


• Build

   – Download SDK
   – Of Java, Python or GO Runtime
   – Build with dev tools such as GPE (Eclipse plugin), Netbeans,
     AppLauncher
HOW DOES IT WORK?


• Push

   – Deploy easily with simple commands
      ./appengine-java-sdk/bin/appcfg.sh update myapp/war

   – Administer in Administration console (App Engine
     Dashboard)
HOW DOES IT WORK?


• Scalability

   – Automatic performance improvements as traffic on your
     app increases
      See more in GAE Dashboard

   – Automatic instance creation to handle load as well as
     distribution of resources
      CPU, Bandwidth, Quota, Memory

   – Fault Tolerance
PERFORMANCE & SCALABILITY


• Built with scalability as top priority
• Memcache
   – Distributed RAM cache
   – Heavily dependent on mecache size allocated. The more the merrier
INTEGRATION




  Authenticati                          Google    Google
      on
                 OpenSocial   XMPP
                                         Apps    Data APIs




                 Facebook      GEO     YouTube
    Django                                        AJAX
                    API       (Maps)     API
APPLICATION ENVIRONMENT – BUILDING BLOCKS

• Java Runtime

• Python Runtime

• GO Runtime

• Datastore

• Suite of APIs to do common stuffs

   –   URL Fetch
   –   Mail
   –   Memcache
   –   Image Manipulation
   –   Channel
   –   Blobstore
APPLICATION ENVIRONMENT – BUILDING BLOCKS

JAVA
Same technologies / APIs you are used to
KNOW HOW YOUR APP IS DOING – PLATFORM MANAGEMENT

PYTHON

• Communicates via CGI protocol
• Supports Django
• Supports Python 2.5+


  Datastore   Memcache    URL Fetch          Mail   Blobstore


    CGI          CGI        CGI              CGI      CGI


                         Google App Engine
DATASTORE – OBJECT PERSISTENCE

• Built on BigTable
• Non-relational database management system
• Consistent read and write even in a distributed network



                            Storage 2


      Storage 1                                   Storage 3
ADMINISTERING YOUR APP – The Admin Console

•   Create a new application

•   View request and error logs and analyze traffic

•   Browse your application's datastore and manage indexes

•   Administer your datastore

•   View your application's instances

•   Manage task queues, allowing for viewing, deleting or running individual tasks
    immediately

•   Test new versions of your application and switch the version that your users see
ADMINISTERING YOUR DATASTORE
URL Fetch

• Consume external resources with your app
• Supports HTTP & HTTPS



String message = URLEncoder.encode("my message", "UTF-8");

           try {
               URL url = new
   URL("http://www.example.com/comment");
               HttpURLConnection connection =
   (HttpURLConnection) url.openConnection();
               connection.setDoOutput(true);
               connection.setRequestMethod("POST");
URL Fetch – Write and return response to client

            OutputStreamWriter writer = new
   OutputStreamWriter(connection.getOutputStream());
               writer.write("message=" + message);
               writer.close();

               if (connection.getResponseCode() ==
   HttpURLConnection.HTTP_OK) {
                   // OK
               } else {
                   // Server returned HTTP error code.
               }
           } catch (MalformedURLException e) {
               // ...
           } catch (IOException e) {
               // ...
           }

Note: Not all java.io classes are supported in app engine. Check whitelisted JRE
   classes
Mail

• Send mail using JavaMail or Low level API

try {
               Message msg = new MimeMessage(session);
               msg.setFrom(new
  InternetAddress("admin@example.com", "Example.com Admin"));
               msg.addRecipient(Message.RecipientType.TO,
                                new
  InternetAddress("user@example.com", "Mr. User"));
               msg.setSubject("Your Example.com account has been
  activated");
               msg.setText(msgBody);
               Transport.send(msg);

          } catch (AddressException e) {
              // ...
          } catch (MessagingException e) {
Memcache

• Distributed in-memory data-cache

• Improve performance

• You don’t have to always persist storage in datastore. Some stuffs can be
  stored in-memory


// A reference to the cache service
private final Cache cache = new Cache(MemcacheServiceFactory
    .getMemcacheService());
Channel API

• Communicate between your application and Google Servers
  asynchronously.

• Very useful to chat room apps, collaborative apps
Blobstore

• Serve large data objects
• Insert / Retrieve / Edit, in bulk
• Flexible
    – Direct access to blob data in memory
• Fast access to blob data
    – 5MB in ~ 2s



// Simple servlet to create the actual upload url
String uploadurl =
    blobstoreservice.createUploadUrl(“/Upload”);


// Called after upload
Map<String, Blobkey> blobkeys =
   blobstoreservice.getUploadedBlobs(req);
Google App Engine for Business

• Enterprise Application Management
    – Centralized domain console
• Enterprise reliability and support
    – 99.9% Service Level Agreement
    – Enterprise support
• Hosted SQL
    – Relational SQL database in the cloud
• SSL on your domain
• Extremely secure by default
    – Integrated Single Sign-on
• Pricing that makes sense
    – Apps cost $8 per user, up to $1000 max per month (Pre-IO2011 Pricing)
ONLINE REFERENCES

Get Started with App Engine
http://code.google.com/appengine

Get the SDK and build cool stuffs
http://code.google.com/appengine/downloads.html

Google Apps for Business
http://code.google.com/appengine/business/

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

Google I/O 2011
http://www.google.com/events/io/2011/index-live.html

Introduction to Google Cloud Platform Technologies by Chris Schalk – Google Developer Advocate
http://goo.gl/zmxvF

Sample projects
http://goo.gl/djgMS
Questions

• Website      - http://opevel.com

• Twitter : @opevel @googledevtools #gwt @charyorde

• Opevel Services

   – Google App Deployment

   – Custom Application Development on Google App Engine

   – Integration services with legacy systems

Contenu connexe

Tendances

modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
Puppet
 
Node.js and couchbase Full Stack JSON - Munich NoSQL
Node.js and couchbase   Full Stack JSON - Munich NoSQLNode.js and couchbase   Full Stack JSON - Munich NoSQL
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
Bob Paulin
 

Tendances (20)

IBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxIBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the Box
 
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + ThymeleafDSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
 
JavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User ExperienceJavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User Experience
 
SenchaCon 2016: Learn the Top 10 Best ES2015 Features - Lee Boonstra
SenchaCon 2016: Learn the Top 10 Best ES2015 Features - Lee Boonstra  SenchaCon 2016: Learn the Top 10 Best ES2015 Features - Lee Boonstra
SenchaCon 2016: Learn the Top 10 Best ES2015 Features - Lee Boonstra
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
Build Amazing Add-ons for Atlassian JIRA and Confluence
Build Amazing Add-ons for Atlassian JIRA and ConfluenceBuild Amazing Add-ons for Atlassian JIRA and Confluence
Build Amazing Add-ons for Atlassian JIRA and Confluence
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
 
Node.js and couchbase Full Stack JSON - Munich NoSQL
Node.js and couchbase   Full Stack JSON - Munich NoSQLNode.js and couchbase   Full Stack JSON - Munich NoSQL
Node.js and couchbase Full Stack JSON - Munich NoSQL
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
 
JSP Part 2
JSP Part 2JSP Part 2
JSP Part 2
 
COScheduler
COSchedulerCOScheduler
COScheduler
 
Java EE 7, what's in it for me?
Java EE 7, what's in it for me?Java EE 7, what's in it for me?
Java EE 7, what's in it for me?
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
 
Aad Versteden | State-of-the-art web applications fuelled by Linked Data awar...
Aad Versteden | State-of-the-art web applications fuelled by Linked Data awar...Aad Versteden | State-of-the-art web applications fuelled by Linked Data awar...
Aad Versteden | State-of-the-art web applications fuelled by Linked Data awar...
 
Exciting JavaScript - Part II
Exciting JavaScript - Part IIExciting JavaScript - Part II
Exciting JavaScript - Part II
 
Padrino - the Godfather of Sinatra
Padrino - the Godfather of SinatraPadrino - the Godfather of Sinatra
Padrino - the Godfather of Sinatra
 

En vedette

Showcasing drupal
Showcasing drupalShowcasing drupal
Showcasing drupal
Opevel
 
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
Guillaume Laforge
 
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume LaforgeGroovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Guillaume Laforge
 

En vedette (14)

Top 10 preso
Top 10 presoTop 10 preso
Top 10 preso
 
Showcasing drupal
Showcasing drupalShowcasing drupal
Showcasing drupal
 
Opevel social-enterprise-platform osep-google_apps_slideshare
Opevel social-enterprise-platform osep-google_apps_slideshareOpevel social-enterprise-platform osep-google_apps_slideshare
Opevel social-enterprise-platform osep-google_apps_slideshare
 
Interoperability betweendrupalandgoogleapps
Interoperability betweendrupalandgoogleappsInteroperability betweendrupalandgoogleapps
Interoperability betweendrupalandgoogleapps
 
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
Practical Groovy Domain-Specific Languages - Guillaume Laforge - Usi 2009
 
Whats New In Groovy 1.6?
Whats New In Groovy 1.6?Whats New In Groovy 1.6?
Whats New In Groovy 1.6?
 
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume LaforgeGroovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
 
Groovy 2 and beyond
Groovy 2 and beyondGroovy 2 and beyond
Groovy 2 and beyond
 
Groovy workshop à Mix-IT 2013
Groovy workshop à Mix-IT 2013Groovy workshop à Mix-IT 2013
Groovy workshop à Mix-IT 2013
 
Lift off with Groovy 2 at JavaOne 2013
Lift off with Groovy 2 at JavaOne 2013Lift off with Groovy 2 at JavaOne 2013
Lift off with Groovy 2 at JavaOne 2013
 
Les nouveautés de Groovy 2 -- Mix-IT 2013
Les nouveautés de Groovy 2 -- Mix-IT 2013Les nouveautés de Groovy 2 -- Mix-IT 2013
Les nouveautés de Groovy 2 -- Mix-IT 2013
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similaire à Google app-engine-cloudcamplagos2011

Google appenginejava.ppt
Google appenginejava.pptGoogle appenginejava.ppt
Google appenginejava.ppt
Young Alista
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 

Similaire à Google app-engine-cloudcamplagos2011 (20)

Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Appscale at CLOUDCOMP '09
Appscale at CLOUDCOMP '09Appscale at CLOUDCOMP '09
Appscale at CLOUDCOMP '09
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Azure App Services
Azure App ServicesAzure App Services
Azure App Services
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A Glance
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
Google appenginejava.ppt
Google appenginejava.pptGoogle appenginejava.ppt
Google appenginejava.ppt
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
 
Monitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with PrometheusMonitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with Prometheus
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic apps
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
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
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Google app-engine-cloudcamplagos2011

  • 1. GOOGLE APP ENGINE FOR THE ENTERPRISE Kayode Odeyemi Technical Architect, Opevel Cloud Camp Lagos, 2011 May 28th, 2011
  • 2. The Cloud 1. Convenience Pay for what you use 2. On-Demand network access Use as much as you need, whenever you need 3. Minimal management effort Don’t have to build your own infrastructure
  • 3. Cloud Computing – As seen by Gartner
  • 4. WHAT IS GOOGLE APP ENGINE? • Google’s own infrastructure for running web applications • The P (Platform) of Cloud Computing. • App Engine is HTTP Server, but does not serve HTML • Host web services for integration • Consume other web services • Various authentication options: Oauth, Google Account So, Google App Engine falls under PaaS of Cloud Computing
  • 5. WHY GOOGLE APP ENGINE? • Easy to build • Easy to maintain • Easy to Scale
  • 6. HOW DOES IT WORK? • Build • Push • Never worry about scalability
  • 7. HOW DOES IT WORK? • Build – Download SDK – Of Java, Python or GO Runtime – Build with dev tools such as GPE (Eclipse plugin), Netbeans, AppLauncher
  • 8. HOW DOES IT WORK? • Push – Deploy easily with simple commands ./appengine-java-sdk/bin/appcfg.sh update myapp/war – Administer in Administration console (App Engine Dashboard)
  • 9. HOW DOES IT WORK? • Scalability – Automatic performance improvements as traffic on your app increases See more in GAE Dashboard – Automatic instance creation to handle load as well as distribution of resources CPU, Bandwidth, Quota, Memory – Fault Tolerance
  • 10. PERFORMANCE & SCALABILITY • Built with scalability as top priority • Memcache – Distributed RAM cache – Heavily dependent on mecache size allocated. The more the merrier
  • 11. INTEGRATION Authenticati Google Google on OpenSocial XMPP Apps Data APIs Facebook GEO YouTube Django AJAX API (Maps) API
  • 12. APPLICATION ENVIRONMENT – BUILDING BLOCKS • Java Runtime • Python Runtime • GO Runtime • Datastore • Suite of APIs to do common stuffs – URL Fetch – Mail – Memcache – Image Manipulation – Channel – Blobstore
  • 13. APPLICATION ENVIRONMENT – BUILDING BLOCKS JAVA Same technologies / APIs you are used to
  • 14. KNOW HOW YOUR APP IS DOING – PLATFORM MANAGEMENT PYTHON • Communicates via CGI protocol • Supports Django • Supports Python 2.5+ Datastore Memcache URL Fetch Mail Blobstore CGI CGI CGI CGI CGI Google App Engine
  • 15. DATASTORE – OBJECT PERSISTENCE • Built on BigTable • Non-relational database management system • Consistent read and write even in a distributed network Storage 2 Storage 1 Storage 3
  • 16. ADMINISTERING YOUR APP – The Admin Console • Create a new application • View request and error logs and analyze traffic • Browse your application's datastore and manage indexes • Administer your datastore • View your application's instances • Manage task queues, allowing for viewing, deleting or running individual tasks immediately • Test new versions of your application and switch the version that your users see
  • 18. URL Fetch • Consume external resources with your app • Supports HTTP & HTTPS String message = URLEncoder.encode("my message", "UTF-8"); try { URL url = new URL("http://www.example.com/comment"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST");
  • 19. URL Fetch – Write and return response to client OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); writer.write("message=" + message); writer.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { // OK } else { // Server returned HTTP error code. } } catch (MalformedURLException e) { // ... } catch (IOException e) { // ... } Note: Not all java.io classes are supported in app engine. Check whitelisted JRE classes
  • 20. Mail • Send mail using JavaMail or Low level API try { Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress("admin@example.com", "Example.com Admin")); msg.addRecipient(Message.RecipientType.TO, new InternetAddress("user@example.com", "Mr. User")); msg.setSubject("Your Example.com account has been activated"); msg.setText(msgBody); Transport.send(msg); } catch (AddressException e) { // ... } catch (MessagingException e) {
  • 21. Memcache • Distributed in-memory data-cache • Improve performance • You don’t have to always persist storage in datastore. Some stuffs can be stored in-memory // A reference to the cache service private final Cache cache = new Cache(MemcacheServiceFactory .getMemcacheService());
  • 22. Channel API • Communicate between your application and Google Servers asynchronously. • Very useful to chat room apps, collaborative apps
  • 23. Blobstore • Serve large data objects • Insert / Retrieve / Edit, in bulk • Flexible – Direct access to blob data in memory • Fast access to blob data – 5MB in ~ 2s // Simple servlet to create the actual upload url String uploadurl = blobstoreservice.createUploadUrl(“/Upload”); // Called after upload Map<String, Blobkey> blobkeys = blobstoreservice.getUploadedBlobs(req);
  • 24. Google App Engine for Business • Enterprise Application Management – Centralized domain console • Enterprise reliability and support – 99.9% Service Level Agreement – Enterprise support • Hosted SQL – Relational SQL database in the cloud • SSL on your domain • Extremely secure by default – Integrated Single Sign-on • Pricing that makes sense – Apps cost $8 per user, up to $1000 max per month (Pre-IO2011 Pricing)
  • 25. ONLINE REFERENCES Get Started with App Engine http://code.google.com/appengine Get the SDK and build cool stuffs http://code.google.com/appengine/downloads.html Google Apps for Business http://code.google.com/appengine/business/ BigTable http://labs.google.com/papers/bigtable.html Google I/O 2011 http://www.google.com/events/io/2011/index-live.html Introduction to Google Cloud Platform Technologies by Chris Schalk – Google Developer Advocate http://goo.gl/zmxvF Sample projects http://goo.gl/djgMS
  • 26. Questions • Website - http://opevel.com • Twitter : @opevel @googledevtools #gwt @charyorde • Opevel Services – Google App Deployment – Custom Application Development on Google App Engine – Integration services with legacy systems