SlideShare a Scribd company logo
GOOGLE APP ENGINE FOR THE
       ENTERPRISE
         Kayode Odeyemi

         Cloud Camp 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

More Related Content

PDF
Google app-engine-cloudcamplagos2011
PDF
Advanced moduledevelopment d6_slideshare
PPTX
Scaling asp.net websites to millions of users
PPT
Web Servers (ppt)
PPTX
Integration with dropbox using mule esb
PPTX
Web servers
PPTX
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
PPTX
Jsf login logout project
Google app-engine-cloudcamplagos2011
Advanced moduledevelopment d6_slideshare
Scaling asp.net websites to millions of users
Web Servers (ppt)
Integration with dropbox using mule esb
Web servers
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
Jsf login logout project

What's hot (20)

PPTX
Building Scalable .NET Web Applications
PPT
LinkedIn - A highly scalable Architecture on Java!
PPTX
The ASP.NET Web API for Beginners
ODP
Web Server-Side Programming Techniques
PPTX
40+ tips to use Postman more efficiently
PPT
Oracle WebLogic Server Basic Concepts
PDF
HTML5 Server Sent Events/JSF JAX 2011 Conference
PPTX
CQ Provisionning & Authoring
PDF
Aem offline content
PPTX
WAS vs JBoss, WebLogic, Tomcat (year 2015)
PPTX
Application server vs Web Server
PPTX
Servletarchitecture,lifecycle,get,post
PDF
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
PPTX
New Features of ASP.NET 4.0
PPT
Useful Rails Plugins
PDF
CIRCUIT 2015 - Monitoring AEM
PPT
Active Server Page(ASP)
PPT
PPSX
ASP.NET Web form
PPT
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
Building Scalable .NET Web Applications
LinkedIn - A highly scalable Architecture on Java!
The ASP.NET Web API for Beginners
Web Server-Side Programming Techniques
40+ tips to use Postman more efficiently
Oracle WebLogic Server Basic Concepts
HTML5 Server Sent Events/JSF JAX 2011 Conference
CQ Provisionning & Authoring
Aem offline content
WAS vs JBoss, WebLogic, Tomcat (year 2015)
Application server vs Web Server
Servletarchitecture,lifecycle,get,post
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
New Features of ASP.NET 4.0
Useful Rails Plugins
CIRCUIT 2015 - Monitoring AEM
Active Server Page(ASP)
ASP.NET Web form
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
Ad

Similar to Google App Engine (20)

PPT
Developing Java Web Applications In Google App Engine
PDF
Introduction to Google's Cloud Technologies
PDF
Google Developer Days Brazil 2009 - Java Appengine
PDF
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
PDF
Google App Engine Overview - BarCamp Phnom Penh 2011
PDF
Google App Engine
PDF
Java Support On Google App Engine
PDF
Developing, deploying and monitoring Java applications using Google App Engine
PDF
Google App Engine At A Glance
PDF
Javaedge 2010-cschalk
PPTX
Google Cloud Platform
PDF
App Engine On Air: Munich
PDF
Google App Engine Overview and Update
PPT
Google App Engine for Java
PDF
Google App Engine
PDF
What is Google App Engine?
PDF
Google App Engine for Java
PDF
What's new in App Engine and intro to App Engine for Business
PDF
App engine cloud_comp_expo_nyc
PDF
Moving complex enterprise ecommerce systems to the cloud
Developing Java Web Applications In Google App Engine
Introduction to Google's Cloud Technologies
Google Developer Days Brazil 2009 - Java Appengine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Google App Engine Overview - BarCamp Phnom Penh 2011
Google App Engine
Java Support On Google App Engine
Developing, deploying and monitoring Java applications using Google App Engine
Google App Engine At A Glance
Javaedge 2010-cschalk
Google Cloud Platform
App Engine On Air: Munich
Google App Engine Overview and Update
Google App Engine for Java
Google App Engine
What is Google App Engine?
Google App Engine for Java
What's new in App Engine and intro to App Engine for Business
App engine cloud_comp_expo_nyc
Moving complex enterprise ecommerce systems to the cloud
Ad

Recently uploaded (20)

PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Tartificialntelligence_presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Approach and Philosophy of On baking technology
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
A comparative study of natural language inference in Swahili using monolingua...
Univ-Connecticut-ChatGPT-Presentaion.pdf
1. Introduction to Computer Programming.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A comparative analysis of optical character recognition models for extracting...
Unlocking AI with Model Context Protocol (MCP)
Tartificialntelligence_presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
cloud_computing_Infrastucture_as_cloud_p
SOPHOS-XG Firewall Administrator PPT.pptx
Hindi spoken digit analysis for native and non-native speakers
NewMind AI Weekly Chronicles - August'25-Week II
A novel scalable deep ensemble learning framework for big data classification...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Mushroom cultivation and it's methods.pdf
Chapter 5: Probability Theory and Statistics
Approach and Philosophy of On baking technology
Zenith AI: Advanced Artificial Intelligence
WOOl fibre morphology and structure.pdf for textiles
A comparative study of natural language inference in Swahili using monolingua...

Google App Engine

  • 1. GOOGLE APP ENGINE FOR THE ENTERPRISE Kayode Odeyemi Cloud Camp 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