Your SlideShare is downloading. ×
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Google app-engine-cloudcamplagos2011

1,319

Published on

Google App Engine for the Enterprise. Cloud Camp Lagos 2011.

Google App Engine for the Enterprise. Cloud Camp Lagos 2011.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,319
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GOOGLE APP ENGINE FOR THE ENTERPRISE Kayode Odeyemi Technical Architect, Opevel Cloud Camp Lagos, 2011 May 28th, 2011
  • 2. The Cloud1. Convenience Pay for what you use2. On-Demand network access Use as much as you need, whenever you need3. 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 AccountSo, 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 BLOCKSJAVASame technologies / APIs you are used to
  • 14. KNOW HOW YOUR APP IS DOING – PLATFORM MANAGEMENTPYTHON• 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 applications datastore and manage indexes• Administer your datastore• View your applications 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
  • 17. ADMINISTERING YOUR DATASTORE
  • 18. URL Fetch• Consume external resources with your app• Supports HTTP & HTTPSString 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 APItry { 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 serviceprivate 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 urlString uploadurl = blobstoreservice.createUploadUrl(“/Upload”);// Called after uploadMap<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 REFERENCESGet Started with App Enginehttp://code.google.com/appengineGet the SDK and build cool stuffshttp://code.google.com/appengine/downloads.htmlGoogle Apps for Businesshttp://code.google.com/appengine/business/BigTablehttp://labs.google.com/papers/bigtable.htmlGoogle I/O 2011http://www.google.com/events/io/2011/index-live.htmlIntroduction to Google Cloud Platform Technologies by Chris Schalk – Google Developer Advocatehttp://goo.gl/zmxvFSample projectshttp://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

×