This document summarizes different cloud PaaS options for running Java applications. It discusses Google App Engine, Amazon Elastic Beanstalk, and VMware Cloud Foundry. For each option, it provides a brief overview of features like supported programming languages, scaling capabilities, and available services. It also notes that while PaaS platforms make development easier than IaaS, there are still limitations in flexibility and portability between platforms. The document concludes that there are tradeoffs to consider and it is worth exploring the different options.
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: http://ewolff.com
Twitter: @ewolff
eberhard.wolff@adesso.de
3. And Me
Bernd Kolb
Development Architect @ SAP
Speaker
Author (i.e. first OSGi book)
Blog: http://kolbware.de
Twitter: @berndkolb
b.kolb@kolbware.de
4. Agenda
Some words about clouds
IaaS
PaaS
Examples
Google App Engine
Amazon Beanstalk
VMware Cloud Foundry
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
13. PaaS
“Platform as a service (PaaS) is the delivery of a
computing platform and solution stack as a service.”
14. 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)
15. 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
19. 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
http://code.google.com/appengine/
20. 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
http://code.google.com/appengine/
21. 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
23. 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.
http://aws.amazon.com/elasticbeanstalk/
24. 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
http://aws.amazon.com/elasticbeanstalk/
25. 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
https://mongohq.com/ for
Simple Notification Service MongoDB
(SNS)* https://cloudant.com/ for
Relational Database Service CouchDB
(RDS)
* Proprietary API
28. VMware Cloud Foundry
Open Source
At GitHub under Apache2 license
Pretty new
No commercial offering yet
Hosted at cloudfoundry.com, 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
http://aws.amazon.com/elasticbeanstalk/
29. 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
http://aws.amazon.com/elasticbeanstalk/
30. 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
33. Summary
General
It’s very easy to run Java apps in the cloud
Some things are different, not everything is solved
IaaS
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
34. 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!
jobs@adesso.de
www.AAAjobs.de