Cloud PaaS with Java


Published on

This talks shows different approaches to PaaS for Java developers. It covers Google App Engine, Amazon Beanstalk and Cloud Foundry in detail. I did the talk with Bernd Kolb at JAX 2011, Germany.

Published in: Technology, Education
  • Be the first to comment

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

No notes for slide

Cloud PaaS with Java

  1. 1. Cloud PaaS mit Java Warum und wie?Eberhard Wolff @ewolff | Bernd Kolb @berndkolb
  2. 2. About Me  Eberhard Wolff  Architecture & Technology Manager at adesso  adesso is a leading IT consultancy in Germany  We are hiring  Speaker  Author (i.e. first German Spring book)  Blog:  Twitter: @ewolff
  3. 3. And Me  Bernd Kolb  Development Architect @ SAP  Speaker  Author (i.e. first OSGi book)  Blog:  Twitter: @berndkolb
  4. 4. Agenda  Some words about clouds  IaaS  PaaS  Examples   Google App Engine   Amazon Beanstalk   VMware Cloud Foundry
  5. 5. A Few Words about Clouds
  6. 6. Public Clouds
  7. 7. Private Clouds
  8. 8. Hybrid Clouds
  9. 9. IaaS – PaaS – SaaS Infrastructure Platform Software as a Service as a Service as a Service> Virtual Servers > Virtual App Server > Software or Service that you use> Similar to Virtualization > Handles Scale-Out > Components that you> Manage Everything > Mostly Managed by add/integrate into your Yourself Provider app
  10. 10. The Cloud’s Business Model
  11. 11. Bare metal is not enough
  12. 12. PaaS “Platform as a service (PaaS) is the delivery of acomputing platform and solution stack as a service.”
  13. 13. PaaS - Advantages  Easier to use than IaaS:You would need to install a server anyway  Automatic scaling   Resources automatically added  Can offer additional service   Tuned for Cloud   Technical e.g. data store, messaging, GUI elements   …but IaaS does the same (Amazon)
  14. 14. PaaS - Disadvantages  Less flexible   Pre-defined programming model   Defines environment  Programming model might be different   Hard to port existing code   Need to learn  Lock-in   Higher-value services  Development in the Cloud  Potentially expensive
  15. 15. Clouds by Example
  16. 16. GoogleAppEngine
  17. 17. Google AppEngine  Infrastructure offered by Google   Infrastructure completely hidden – pure PaaS  Supports Java and Python  Very restrictive sandbox   Java classes white list   no Thread, no file system, …  Supports version handling of applications  Supports elastic scaling  Documentation + SDK + Eclipse Plug In available   SDK contains environment for local tests
  18. 18. Google AppEngine for Business  Centralized administration.  99.9% uptime SLA  Premium developer support available.  Sign on for users from your Google Apps domain  Announced   SSL on your company’s domain for secure communications   Access to advanced Google services   Relational database
  19. 19. Google AppEngine Services  Bigtable* (NoSQL)   Task queuing*  Memcache   Blob store* for data >1MB  URL Fetch   Channel (talk to JavaScript  EMail in the browser)  XMPP* (proprietary API)   Numerous other services  Image Manipulation* available (not tied to App Engine)  Authentication /   Google Predict, Google Authorization* BigQuery, AdSense, Search, … * Proprietary API
  20. 20. AWSElastic Beanstalk
  21. 21. AWS Elastic Beanstalk  Collection of Cloud Offerings (mostly IaaS)   Infrastructure visible  Based on the Amazon EC2 infrastructure, Auto Scaling and S3  Only Java   Linux + OpenJDK + Tomcat  Currently in beta   only in US-East  Eclipse Plug In available  Supports version handling of applications  Supports elastic scaling depending on load indicators  Simple Monitoring built in  Detailed control over the environment   Tomcat parameters, used AMIs, log in to machine etc.
  22. 22. AWS Elastic Beanstalk  Much like your average Enterprise Java environment   =Tomcat + RDBMS  Cloud features like elastic scaling available  Can easily add other AWS elements  Runs on a proven environment  But: 1 server = 1 virtual machine   GAE can run multiple applications on one machine   More cost efficient (?)   Scaling is “slow” as an image needs to be started and provisioned
  23. 23. AWS Services  Elastic Compute Cloud   Simple Email Service (SES)* (EC2)   Virtual Private Cloud (VPC)*  Elastic Map Reduce*   Simple Storage Service (S3)*  Auto Scaling   Elastic Block Storage (EBS)*  SimpleDB : Big Table like   … NoSQL database*  Simple Queue Service (SQS) *   Third party offerings like  for  Simple Notification Service MongoDB (SNS)*  for  Relational Database Service CouchDB (RDS) * Proprietary API
  24. 24. AWSElastic Beanstalk Demo
  25. 25. VMwareCloud Foundry
  26. 26. VMware Cloud Foundry  Open Source   At GitHub under Apache2 license  Pretty new   No commercial offering yet   Hosted at, currently closed beta  Can run Java, Ruby and Node.js   Spring, Grails, Rails, Sinatra & Node supported   Support for other languages currently in development by the community  Can be hosted anywhere   IaaS integration is not part of the open-sourced components  Eclipse Plug In available  Supports elastic scaling depending on load indicators   Well… you can build it 
  27. 27. VMware Cloud Foundry  Much like your average Enterprise Java environment   =Tomcat + RDBMS  Cloud features like elastic scaling available  Runs on a proven environment (Ubuntu)  Allows access to Tomcat’s log files  1 virtual machine = n servers
  28. 28. VMware Cloud Foundry Services  Relational Database Service (MySQL)  Key-Value Store (Redis)  Document Store (mongoDB)  Messaging Service (RabbitMQ)  More to come in the future  API to build your own service * Proprietary API
  29. 29. VMwareCloud Foundry Demo
  30. 30. Summary General It’s very easy to run Java apps in the cloud Some things are different, not everything is solvedIaaS Maximum control Automatic installation needed Google App Engine Very limited sandbox Advantage? Amazon Beanstalk Standard Enterprise Java Stack Lots of additional Amazon Web Services Cloud Foundry Services model Open Source There is more – it’s worth exploring
  31. 31. Wir suchen Sie als  Software-Architekt (m/w)  Projektleiter (m/w)  Senior Software Engineer (m/w)  Kommen Sie zum Stand und gewinnen Sie ein iPad 2!