cloud paas with java

34
Cloud PaaS with Java Eberhard Wolff @ewolff | Bernd Kolb @berndkolb

Upload: eberhard-wolff

Post on 14-Jan-2015

4.620 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Cloud PaaS with Java

Cloud PaaS with Java

Eberhard Wolff @ewolff | Bernd Kolb @berndkolb

Page 2: Cloud PaaS with Java

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   [email protected]

Page 3: Cloud PaaS with Java

And Me   Bernd Kolb   Development Architect @ SAP   Speaker   Author (i.e. first OSGi book)   Blog: http://kolbware.de   Twitter: @berndkolb   [email protected]

Page 4: Cloud PaaS with Java

Agenda   Some words about clouds   IaaS   PaaS   Examples

  Google App Engine   Amazon Beanstalk   VMware Cloud Foundry

Page 5: Cloud PaaS with Java

A Few Words about Clouds

Page 6: Cloud PaaS with Java

Public Clouds

Page 7: Cloud PaaS with Java

Private Clouds

Page 8: Cloud PaaS with Java

Hybrid Clouds

Page 9: Cloud PaaS with Java

Infrastructure as a Service

Platform as a Service

Software as a Service

> Virtual App Server

> Handles Scale-Out

> Mostly Managed by Provider

> Virtual Servers

> Similar to Virtualization

> Manage Everything Yourself

IaaS – PaaS – SaaS

> Software or Service that you use

> Components that you add/integrate into your app

Page 10: Cloud PaaS with Java

The Cloud’s Business Model

Page 11: Cloud PaaS with Java
Page 12: Cloud PaaS with Java

is not enough

Bare metal

Page 13: Cloud PaaS with Java

PaaS

“Platform as a service (PaaS) is the delivery of a computing platform and solution stack as a service.”

Page 14: Cloud PaaS with Java

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)

Page 15: Cloud PaaS with Java

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

Page 16: Cloud PaaS with Java

Clouds by Example

Page 17: Cloud PaaS with Java
Page 18: Cloud PaaS with Java

Google AppEngine

Page 19: Cloud PaaS with Java

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/

Page 20: Cloud PaaS with Java

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/

Page 21: Cloud PaaS with Java

Google AppEngine Services

  Bigtable* (NoSQL)   Memcache   URL Fetch   EMail   XMPP* (proprietary API)   Image Manipulation*   Authentication /

Authorization*

  Task queuing*   Blob store* for data >1MB   Channel (talk to JavaScript

in the browser)   Numerous other services

available (not tied to App Engine)   Google Predict, Google

BigQuery, AdSense, Search, …

* Proprietary API

Page 22: Cloud PaaS with Java

AWS Elastic Beanstalk

Page 23: Cloud PaaS with Java

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/

Page 24: Cloud PaaS with Java

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/

Page 25: Cloud PaaS with Java

AWS Services

  Elastic Compute Cloud (EC2)

  Elastic Map Reduce*   Auto Scaling   SimpleDB : Big Table like

NoSQL database*   Simple Queue Service (SQS)

*   Simple Notification Service

(SNS)*   Relational Database Service

(RDS)

  Simple Email Service (SES)*   Virtual Private Cloud (VPC)*   Simple Storage Service (S3)*   Elastic Block Storage (EBS)*   …

  Third party offerings like   https://mongohq.com/ for

MongoDB   https://cloudant.com/ for

CouchDB

* Proprietary API

Page 26: Cloud PaaS with Java

AWS Elastic Beanstalk

Demo

Page 27: Cloud PaaS with Java

VMware Cloud Foundry

Page 28: Cloud PaaS with Java

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/

Page 29: Cloud PaaS with Java

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/

Page 30: Cloud PaaS with Java

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

Page 31: Cloud PaaS with Java

VMware Cloud Foundry

Demo

Page 32: Cloud PaaS with Java
Page 33: Cloud PaaS with Java

Summary

Cloud Foundry Services model Open Source

Amazon Beanstalk Standard Enterprise Java Stack Lots of additional Amazon Web Services

Google App Engine Very limited sandbox Advantage?

IaaS Maximum control Automatic installation needed

There is more – it’s worth exploring

General It’s very easy to run Java apps in the cloud Some things are different, not everything is solved

Page 34: Cloud PaaS with Java

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!

www.AAAjobs.de

[email protected]