Google app-engine-cloudcamplagos2011


Published on

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

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

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Google app-engine-cloudcamplagos2011

  1. 1. GOOGLE APP ENGINE FOR THE ENTERPRISE Kayode Odeyemi Technical Architect, Opevel Cloud Camp Lagos, 2011 May 28th, 2011
  2. 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. 3. Cloud Computing – As seen by Gartner
  4. 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. 5. WHY GOOGLE APP ENGINE?• Easy to build• Easy to maintain• Easy to Scale
  6. 6. HOW DOES IT WORK?• Build• Push• Never worry about scalability
  7. 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. 8. HOW DOES IT WORK?• Push – Deploy easily with simple commands ./appengine-java-sdk/bin/ update myapp/war – Administer in Administration console (App Engine Dashboard)
  9. 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. 10. PERFORMANCE & SCALABILITY• Built with scalability as top priority• Memcache – Distributed RAM cache – Heavily dependent on mecache size allocated. The more the merrier
  11. 11. INTEGRATION Authenticati Google Google on OpenSocial XMPP Apps Data APIs Facebook GEO YouTube Django AJAX API (Maps) API
  12. 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. 13. APPLICATION ENVIRONMENT – BUILDING BLOCKSJAVASame technologies / APIs you are used to
  14. 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. 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. 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
  18. 18. URL Fetch• Consume external resources with your app• Supports HTTP & HTTPSString message = URLEncoder.encode("my message", "UTF-8"); try { URL url = new URL(""); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST");
  19. 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 classes are supported in app engine. Check whitelisted JRE classes
  20. 20. Mail• Send mail using JavaMail or Low level APItry { Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress("", " Admin")); msg.addRecipient(Message.RecipientType.TO, new InternetAddress("", "Mr. User")); msg.setSubject("Your account has been activated"); msg.setText(msgBody); Transport.send(msg); } catch (AddressException e) { // ... } catch (MessagingException e) {
  21. 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. 22. Channel API• Communicate between your application and Google Servers asynchronously.• Very useful to chat room apps, collaborative apps
  23. 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. 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. 25. ONLINE REFERENCESGet Started with App Engine the SDK and build cool stuffs Apps for Business I/O 2011 to Google Cloud Platform Technologies by Chris Schalk – Google Developer Advocate projects
  26. 26. Questions• Website -• Twitter : @opevel @googledevtools #gwt @charyorde• Opevel Services – Google App Deployment – Custom Application Development on Google App Engine – Integration services with legacy systems