Top Banner
GOOGLE APP ENGINE FOR THE ENTERPRISE Kayode Odeyemi Cloud Camp 2011 May 28 th , 2011
26

Google App Engine

May 24, 2015

Download

Technology

Google App Engine introduction as presented by Kayode Odeyemi of Opevel Nigeria.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Google App Engine

GOOGLE APP ENGINE FOR THE ENTERPRISE

Kayode Odeyemi

Cloud Camp 2011

May 28th, 2011

Page 2: Google App Engine

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

Page 3: Google App Engine

Cloud Computing – As seen by Gartner

Page 4: Google App Engine

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

Page 5: Google App Engine

WHY GOOGLE APP ENGINE?

• Easy to build

• Easy to maintain

• Easy to Scale

Page 6: Google App Engine

HOW DOES IT WORK?

• Build

• Push

• Never worry about scalability

Page 7: Google App Engine

HOW DOES IT WORK?

• Build

– Download SDK

– Of Java, Python or GO Runtime

– Build with dev tools such as GPE (Eclipse plugin), Netbeans, AppLauncher

Page 8: Google App Engine

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)

Page 9: Google App Engine

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

Page 10: Google App Engine

• Built with scalability as top priority

• Memcache– Distributed RAM cache

– Heavily dependent on mecache size allocated. The more the merrier

PERFORMANCE & SCALABILITY

Page 11: Google App Engine

INTEGRATION

Authentication

OpenSocial XMPPGoogle Apps

Google Data APIs

DjangoFacebook

APIGEO

(Maps)YouTube

APIAJAX

Page 12: Google App Engine

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

Page 13: Google App Engine

APPLICATION ENVIRONMENT – BUILDING BLOCKS

JAVA

Same technologies / APIs you are used to

Page 14: Google App Engine

KNOW HOW YOUR APP IS DOING – PLATFORM MANAGEMENT

PYTHON

• Communicates via CGI protocol

• Supports Django

• Supports Python 2.5+

Google App Engine

Datastore

CGI

Memcache

CGI

URL Fetch

CGI

Mail

CGI

Blobstore

CGI

Page 15: Google App Engine

DATASTORE – OBJECT PERSISTENCE

• Built on BigTable

• Non-relational database management system

• Consistent read and write even in a distributed network

Storage 1

Storage 2

Storage 3

Page 16: Google App Engine

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

Page 17: Google App Engine

ADMINISTERING YOUR DATASTORE

Page 18: Google App Engine

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");

Page 19: Google App Engine

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

Page 20: Google App Engine

Mail

• Send mail using JavaMail or Low level API

try {

Message msg = new MimeMessage(session);

msg.setFrom(new

InternetAddress("[email protected]", "Example.com Admin"));

msg.addRecipient(Message.RecipientType.TO,

new

InternetAddress("[email protected]", "Mr. User"));

msg.setSubject("Your Example.com account has been

activated");

msg.setText(msgBody);

Transport.send(msg);

} catch (AddressException e) {

// ...

} catch (MessagingException e) {

Page 21: Google App Engine

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());

Page 22: Google App Engine

Channel API

• Communicate between your application and Google Servers asynchronously.

• Very useful to chat room apps, collaborative apps

Page 23: Google App Engine

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);

Page 24: Google App Engine

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)

Page 25: Google App Engine

Get Started with App Enginehttp://code.google.com/appengine

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

Google Apps for Businesshttp://code.google.com/appengine/business/

BigTablehttp://labs.google.com/papers/bigtable.html

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

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

Sample projectshttp://goo.gl/djgMS

ONLINE REFERENCES

Page 26: Google App Engine

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