SlideShare a Scribd company logo
1 of 35
Download to read offline
PaaS Cloud with Java
Eberhard Wolff, Principal Technologist, SpringSource – A division of VMware
ewolff@vmware.com
Twitter: @ewolff
Blog: http://ewolff.com




                                                                    © 2009 VMware Inc. All rights reserved
Agenda
§  A Few Words About Cloud
§  PaaS – Platform as a Service
§  Google App Engine
§  Vmforce
§  Amazon Beanstalk




                                   2
A Few Words About Cloud




                          3
Three types of Clouds

      Infrastructure            Platform                  Software
    as a Service           as a Service               as a Service
  •  Virtual Servers     •  Virtual Application     •  Software or Service
  •  Virtual Storage        Server                     that you use

  •  Similar to          •  Handles Scale-Out       •  Components that you
     Virtualization      •  Everything is              add/integrate into
                                                       your app
  •  Custom Solutions       Services and APIs

  •  Manage Everything   •  Usually Larger Buy-In
     Yourself            •  Mostly Managed by
                            Provider




                                                                             4
Cloud might be...

•  Private /internal “on premise”
   –  In your data center
   –  Useful in particular for larger organizations
•  Public “off premise”
   –  Hosted and Operated by a third Party
   –  Ideal for Startups etc


•  Even smaller enterprises can create private clouds
•  Based on virtualization




                                                        5
Cloud at the Core is a Business Model

§  Customer pays only for what he uses
 •  Per CPU hour or cycles, per GB of storage, per MB of network bandwidth
 •  Per user and year
 •  Not for having stand-by capacity


§  Flexibility: More capacity is available on demand
 •  Instantly available
 •  Customer uses GUI or API to expand capacity
 •  Cloud provider is responsible for having capacity ready


§  Makes IT just another service




                                                                             6
Why Cloud?

§  Compelling Economics
  •  Lower CapEx
  •  Cheaper handling of peak loads
  •  Better resource utilization
  •  Simple to achieve benefits – direct ROI


§  Flexibility and better productivity for
  development
  •  Much easier to set up environments
  •  Feasible to have production-like environments
   quickly and cheaply available
  •  Indirect: Better productivity leads to cost
   saving / better time to market




                                                     7
OK, so let me get started




                            8
So, let me get started

§  Get an account at an IaaS provider
§  …or virtualize your data center and create a self service portal

§  Install your (Java EE) environment
§  Install your (Java) application
§  Done

§  Wow, that was easy!




                                                                       9
That is not enough

§  How do you deal with peaks? Need more app server instances
§  The server instances must be shut down after the peak
§  …otherwise you would pay for them
§  Traditional middleware does not allow for that
§  Elastic scaling

§  RBMS prefer scale up (larger server)
§  In the cloud it is easier to scale out (more server)
§  That is why Amazon and Google use NoSQL / key-value stores




                                                                 10
That is not enough: Handling Lot of Date

§  Traditional approach: Batch on a few nodes
§  Alternative approach: Map / Reduce on
 many nodes
§  Map each value using some function
 •  Runs on many nodes in parallel
 •  E.g. given a text file emit a word count each time a
   word is found
§  Reduce takes the result of the map step and
 reduces it
 •  E.g. add up all word counts
§  Distributed algorithm running on potentially
 many nodes
§  Cloud: Can easily use a lot of nodes to run
                                                           Map   Reduce


                                                                    11
That is not enough: More Than Just a Virtualized Computer

§  Additional services
  •  Amazon Simple Queue Service (SQS)
  •  Amazon Simple Notification Service (SNS)
  •  Amazon Simple Storage Service (S3)
  •  Amazon Elastic Block Store (EBS)




                                                            12
Cloud Influences the Programming Model

§  Some Jave EE technologies are not a good fit
 •  Non-JMS messaging technologies
   •  AMQP / RabbitMQ
   •  Amazon Simple Queue Service (SQS)
   •  Amazon Simple Notification Service (SNS)
 •  Two Phase Commit / JTA leads to long locking / strong coupling
 •  What do you do about Map / Reduce?
 •  What do you do about NoSQL?


§  You might be better off with a different programming model
 •  Spring can handle non-Java-EE environments (e.g. Tomcat)
 •  Projects for NoSQL, AMQP …




                                                                     13
More Flexibility Needed

§  And remember: You pay the resources you consume
§  You need to use more or less resources based on load

§  You need to be able to shut down servers if load is low
§  You need to be able to start new servers if load is high




                                                               14
What you will eventually come up with
§  A tool to take an Application
§  …and create a VM with all needed
  infrastructure etc


§  Need tools to
  •  Install software
  •  Manage infrastructure
  •  Configure infrastructure
  •  Set up user etc
  •  Puppet, Chef etc.


§  Like a factory for VMs



                                         15
So…

§  Can we automate this?
§  Developers just want a platform to run applications on

§  Also: Developers need other non-Java-EE services




                                                             16
Introducing…




               17
The PaaS!

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




                                                 19
Not just automated…




                      20
Invisible




            PaaS

                   21
PaaS: Advantages and Disadvantages

§  Advantages
 •  More useful 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
   •  Domain e.g. predefined data model
§  Disadvantages
 •  Less flexible
   •  Pre-defined programming model
   •  Defines environment
 •  Programming model might be different
   •  Hard to port existing code
   •  Need to learn

                                                                       22
Google App Engine




                    23
Google App Engine

§  Infrastructure offered by Google
§  Supports Java and Python

§  Infrastructure completely hidden

§  GAE sandbox more restrictive than normal JVM sandbox
§  So GAE can handle your application better
§  Java classes white list
 •  i.e. some Java classes must not be used
 •  no Thread
 •  no file system
 •  parts of System class (e.g. gc(), exit()…)
 •  Reflection and ClassLoader work

                                                           24
Google App Engine: Storage

§  Relational database only in App Engine for Business
§  Based on BigTable
  •  Google's storage technology
  •  Key/value i.e. objects stored under some key
  •  No joins
  •  Simple / simplistic (?)
  •  Scalable
  •  Example of NoSQL
  •  Principles will be discussed further in NoSQL


§  Max. 1 MB per entity (and other limitations)




                                                          25
Google App Engine: Storage APIs
§  API: Low level com.google.appengine.api.datastore
 •  Not compatible to JDBC or the like
 •  Queries, transactions, entities etc.
 •  Should only be used by framework
§  API: JDO (Java Data Objects)
 •  Standard for O/R Mapper and OODBMS
 •  Unsupported: Joins, JDOQL grouping and aggregates, polymorphic queries
§  API: JPA (Java Persistence API)
 •  Well established standard for O/R Mappers
 •  Unsupported: Many-to-many relationships; join, aggregate and polymorphic
   queries, some inheritance mappings
§  Problem: JPA / JDO based on RDBMS, but this is key/value
 §  So maybe use the low level API instead?
§  JPA and JDO actually implemented by Data Nucleus library
 •  Byte code must be enhanced in an additional compile step
                                                                               26
Google App Engine: Additional services

§  Memcache
 •  Implements JCache (JSR 107)
 •  Fast access to data in memory
§  URL Fetch based on java.net.URL to read data via HTTP
§  EMail support using JavaMail
§  XMPP instant messages (proprietary API)
§  Image Manipulation (proprietary API)
§  Authentication / Authorization based on Google accounts
 (proprietary API)
§  Task queuing (proprietary API, experimental)
§  Blob store (proprietary API, experimental) for data >1MB
§  Numerous other services available (not tied to App Engine)
 §  Google Predict, Google BigQuery …

                                                                 27
Google App Engine 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.




                                                             28
Google App Engine

§  Documentation + SDK + Eclipse Plug In available
§  SDK contains environment for local tests

§  Spring / Spring Roo is the preferred programming model
§  …as it is popular and works with the limited model of the Google
 App Engine


§  http://code.google.com/appengine/




                                                                       29
Google App Engine Demo




                         © 2009 VMware Inc. All rights reserved
31
VMforce

§  Joined offerings by Salesforce and VMware
§  Salesforce
 •  Leading provider for SaaS / CRM
§  Salesforce offers force.com environment
 •  Scalable PaaS
 •  Database + data model
 •  Charting
 •  Reporting
 •  Chat etc
§  VMforce = force.com + VMware virtualization + SpringSource
 programming model




                                                                 32
vmforce Vision

§  VMforce = force.com
§  + VMware virtualization
  •  Offers IaaS foundation
§  + SpringSource tc Server / Hyperic
§  + Spring programming model

                              force.com
§  i.e. run your standard     Platform
  Spring Apps                                       SpringSource
                               Services               tc Server
§  Use force.com data         (charts,
  model / database             reports)
                                                      VMware
§  …and charts / reports           Force.com         vSphere
                                    Database


§  Apply for the beta at http://www.vmforce.com/

                                                                33
Amazon BeanStalk

§  Based on the Amazon EC2 infrastructure
§  Add Linux, OpenJDK, Tomcat
§  Currently in beta
§  …and only in US-East
§  Eclipse Plug In available
§  Supports version handling of applications
§  Supports scaling depending on load indicators
§  Access to Tomcat logs etc.

§  Videos to get started
§  Demo application based on Spring
 •  Uses also S3 (storage) and Simple Notification Service (SNS)


                                                                   34
PaaS: Conclusion

§  PaaS offer a runtime environment in the cloud
§  Usually based on IaaS
§  Makes Cloud easier usable for a developer
§  …but less customizable and less choice
§  Technical challenges (scalability) solved by platform
§  Spring can be used as a universal model

§  Each PaaS differentiate themselves with their added services
  §  VMforce: database model, charts, reports, GUI elements
   (functional components)
  §  GAE: Big Table, caching, security, image processing, blob storage
   (technical platform)
  §  Amazon Beanstalk: Standard Java stack
§  Choose the right tool for the job!
                                                                          35

More Related Content

What's hot

Windows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradeWindows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradePavel Revenkov
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesAlexander Penev
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news ShapeBlue
 
Choosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareChoosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareJohn Mathon
 
CCCNA17 Dynamic Roles in CloudStack
CCCNA17 Dynamic Roles in CloudStackCCCNA17 Dynamic Roles in CloudStack
CCCNA17 Dynamic Roles in CloudStackShapeBlue
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesAmazon Web Services
 
Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?" Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?" Tikal Knowledge
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsPeter Mounce
 
Boris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStackBoris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStackShapeBlue
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Sourceaspyker
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...Eficode
 
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...Adrian Cockcroft
 

What's hot (20)

Windows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradeWindows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime Upgrade
 
Introduction to IAC and Terraform
Introduction to IAC and Terraform Introduction to IAC and Terraform
Introduction to IAC and Terraform
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
IaC on AWS Cloud
IaC on AWS CloudIaC on AWS Cloud
IaC on AWS Cloud
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE Architectures
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
 
Choosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareChoosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshare
 
CCCNA17 Dynamic Roles in CloudStack
CCCNA17 Dynamic Roles in CloudStackCCCNA17 Dynamic Roles in CloudStack
CCCNA17 Dynamic Roles in CloudStack
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
 
Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?" Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?"
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Boris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStackBoris Stoyanov - some new features in Apache cloudStack
Boris Stoyanov - some new features in Apache cloudStack
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...
 
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
 

Similar to PaaS with Java

Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Introduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / PlatformsIntroduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / PlatformsNilanchal
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...IndicThreads
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceCloudBees
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpandeIndicThreads
 
Dave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudDave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudOlga Lavrentieva
 
Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Andrejs Prokopjevs
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the CloudRightScale
 
Cloud computing by amazon
Cloud computing by amazonCloud computing by amazon
Cloud computing by amazon8neutron8
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowAndrew Miller
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Andrew Miller
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsRyan Green
 
Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Andrejs Prokopjevs
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
Basics of Java Cloud
Basics of Java CloudBasics of Java Cloud
Basics of Java CloudAnkur Gupta
 

Similar to PaaS with Java (20)

Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Spring in the Cloud
Spring in the CloudSpring in the Cloud
Spring in the Cloud
 
Introduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / PlatformsIntroduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / Platforms
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
 
Dave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloudDave Nielsen - the economically unstoppable cloud
Dave Nielsen - the economically unstoppable cloud
 
Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the Cloud
 
Cloud patterns
Cloud patternsCloud patterns
Cloud patterns
 
Cloud computing by amazon
Cloud computing by amazonCloud computing by amazon
Cloud computing by amazon
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design Patterns
 
Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)
 
Windows Azure introduction
Windows Azure introductionWindows Azure introduction
Windows Azure introduction
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Basics of Java Cloud
Basics of Java CloudBasics of Java Cloud
Basics of Java Cloud
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and AlternativesEberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryEberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncEberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with JavaEberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for MicroservicesEberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into MicroservicesEberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileEberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesEberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityEberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesEberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for InnovationEberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with JavaEberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support AgileEberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale AgileEberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsEberhard Wolff
 

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

PaaS with Java

  • 1. PaaS Cloud with Java Eberhard Wolff, Principal Technologist, SpringSource – A division of VMware ewolff@vmware.com Twitter: @ewolff Blog: http://ewolff.com © 2009 VMware Inc. All rights reserved
  • 2. Agenda §  A Few Words About Cloud §  PaaS – Platform as a Service §  Google App Engine §  Vmforce §  Amazon Beanstalk 2
  • 3. A Few Words About Cloud 3
  • 4. Three types of Clouds Infrastructure Platform Software as a Service as a Service as a Service •  Virtual Servers •  Virtual Application •  Software or Service •  Virtual Storage Server that you use •  Similar to •  Handles Scale-Out •  Components that you Virtualization •  Everything is add/integrate into your app •  Custom Solutions Services and APIs •  Manage Everything •  Usually Larger Buy-In Yourself •  Mostly Managed by Provider 4
  • 5. Cloud might be... •  Private /internal “on premise” –  In your data center –  Useful in particular for larger organizations •  Public “off premise” –  Hosted and Operated by a third Party –  Ideal for Startups etc •  Even smaller enterprises can create private clouds •  Based on virtualization 5
  • 6. Cloud at the Core is a Business Model §  Customer pays only for what he uses •  Per CPU hour or cycles, per GB of storage, per MB of network bandwidth •  Per user and year •  Not for having stand-by capacity §  Flexibility: More capacity is available on demand •  Instantly available •  Customer uses GUI or API to expand capacity •  Cloud provider is responsible for having capacity ready §  Makes IT just another service 6
  • 7. Why Cloud? §  Compelling Economics •  Lower CapEx •  Cheaper handling of peak loads •  Better resource utilization •  Simple to achieve benefits – direct ROI §  Flexibility and better productivity for development •  Much easier to set up environments •  Feasible to have production-like environments quickly and cheaply available •  Indirect: Better productivity leads to cost saving / better time to market 7
  • 8. OK, so let me get started 8
  • 9. So, let me get started §  Get an account at an IaaS provider §  …or virtualize your data center and create a self service portal §  Install your (Java EE) environment §  Install your (Java) application §  Done §  Wow, that was easy! 9
  • 10. That is not enough §  How do you deal with peaks? Need more app server instances §  The server instances must be shut down after the peak §  …otherwise you would pay for them §  Traditional middleware does not allow for that §  Elastic scaling §  RBMS prefer scale up (larger server) §  In the cloud it is easier to scale out (more server) §  That is why Amazon and Google use NoSQL / key-value stores 10
  • 11. That is not enough: Handling Lot of Date §  Traditional approach: Batch on a few nodes §  Alternative approach: Map / Reduce on many nodes §  Map each value using some function •  Runs on many nodes in parallel •  E.g. given a text file emit a word count each time a word is found §  Reduce takes the result of the map step and reduces it •  E.g. add up all word counts §  Distributed algorithm running on potentially many nodes §  Cloud: Can easily use a lot of nodes to run Map Reduce 11
  • 12. That is not enough: More Than Just a Virtualized Computer §  Additional services •  Amazon Simple Queue Service (SQS) •  Amazon Simple Notification Service (SNS) •  Amazon Simple Storage Service (S3) •  Amazon Elastic Block Store (EBS) 12
  • 13. Cloud Influences the Programming Model §  Some Jave EE technologies are not a good fit •  Non-JMS messaging technologies •  AMQP / RabbitMQ •  Amazon Simple Queue Service (SQS) •  Amazon Simple Notification Service (SNS) •  Two Phase Commit / JTA leads to long locking / strong coupling •  What do you do about Map / Reduce? •  What do you do about NoSQL? §  You might be better off with a different programming model •  Spring can handle non-Java-EE environments (e.g. Tomcat) •  Projects for NoSQL, AMQP … 13
  • 14. More Flexibility Needed §  And remember: You pay the resources you consume §  You need to use more or less resources based on load §  You need to be able to shut down servers if load is low §  You need to be able to start new servers if load is high 14
  • 15. What you will eventually come up with §  A tool to take an Application §  …and create a VM with all needed infrastructure etc §  Need tools to •  Install software •  Manage infrastructure •  Configure infrastructure •  Set up user etc •  Puppet, Chef etc. §  Like a factory for VMs 15
  • 16. So… §  Can we automate this? §  Developers just want a platform to run applications on §  Also: Developers need other non-Java-EE services 16
  • 18. The PaaS! 18
  • 19. Platform as a service (PaaS) the delivery of a computing platform and solution stack as a service. 19
  • 21. Invisible PaaS 21
  • 22. PaaS: Advantages and Disadvantages §  Advantages •  More useful 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 •  Domain e.g. predefined data model §  Disadvantages •  Less flexible •  Pre-defined programming model •  Defines environment •  Programming model might be different •  Hard to port existing code •  Need to learn 22
  • 24. Google App Engine §  Infrastructure offered by Google §  Supports Java and Python §  Infrastructure completely hidden §  GAE sandbox more restrictive than normal JVM sandbox §  So GAE can handle your application better §  Java classes white list •  i.e. some Java classes must not be used •  no Thread •  no file system •  parts of System class (e.g. gc(), exit()…) •  Reflection and ClassLoader work 24
  • 25. Google App Engine: Storage §  Relational database only in App Engine for Business §  Based on BigTable •  Google's storage technology •  Key/value i.e. objects stored under some key •  No joins •  Simple / simplistic (?) •  Scalable •  Example of NoSQL •  Principles will be discussed further in NoSQL §  Max. 1 MB per entity (and other limitations) 25
  • 26. Google App Engine: Storage APIs §  API: Low level com.google.appengine.api.datastore •  Not compatible to JDBC or the like •  Queries, transactions, entities etc. •  Should only be used by framework §  API: JDO (Java Data Objects) •  Standard for O/R Mapper and OODBMS •  Unsupported: Joins, JDOQL grouping and aggregates, polymorphic queries §  API: JPA (Java Persistence API) •  Well established standard for O/R Mappers •  Unsupported: Many-to-many relationships; join, aggregate and polymorphic queries, some inheritance mappings §  Problem: JPA / JDO based on RDBMS, but this is key/value §  So maybe use the low level API instead? §  JPA and JDO actually implemented by Data Nucleus library •  Byte code must be enhanced in an additional compile step 26
  • 27. Google App Engine: Additional services §  Memcache •  Implements JCache (JSR 107) •  Fast access to data in memory §  URL Fetch based on java.net.URL to read data via HTTP §  EMail support using JavaMail §  XMPP instant messages (proprietary API) §  Image Manipulation (proprietary API) §  Authentication / Authorization based on Google accounts (proprietary API) §  Task queuing (proprietary API, experimental) §  Blob store (proprietary API, experimental) for data >1MB §  Numerous other services available (not tied to App Engine) §  Google Predict, Google BigQuery … 27
  • 28. Google App Engine 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. 28
  • 29. Google App Engine §  Documentation + SDK + Eclipse Plug In available §  SDK contains environment for local tests §  Spring / Spring Roo is the preferred programming model §  …as it is popular and works with the limited model of the Google App Engine §  http://code.google.com/appengine/ 29
  • 30. Google App Engine Demo © 2009 VMware Inc. All rights reserved
  • 31. 31
  • 32. VMforce §  Joined offerings by Salesforce and VMware §  Salesforce •  Leading provider for SaaS / CRM §  Salesforce offers force.com environment •  Scalable PaaS •  Database + data model •  Charting •  Reporting •  Chat etc §  VMforce = force.com + VMware virtualization + SpringSource programming model 32
  • 33. vmforce Vision §  VMforce = force.com §  + VMware virtualization •  Offers IaaS foundation §  + SpringSource tc Server / Hyperic §  + Spring programming model force.com §  i.e. run your standard Platform Spring Apps SpringSource Services tc Server §  Use force.com data (charts, model / database reports) VMware §  …and charts / reports Force.com vSphere Database §  Apply for the beta at http://www.vmforce.com/ 33
  • 34. Amazon BeanStalk §  Based on the Amazon EC2 infrastructure §  Add Linux, OpenJDK, Tomcat §  Currently in beta §  …and only in US-East §  Eclipse Plug In available §  Supports version handling of applications §  Supports scaling depending on load indicators §  Access to Tomcat logs etc. §  Videos to get started §  Demo application based on Spring •  Uses also S3 (storage) and Simple Notification Service (SNS) 34
  • 35. PaaS: Conclusion §  PaaS offer a runtime environment in the cloud §  Usually based on IaaS §  Makes Cloud easier usable for a developer §  …but less customizable and less choice §  Technical challenges (scalability) solved by platform §  Spring can be used as a universal model §  Each PaaS differentiate themselves with their added services §  VMforce: database model, charts, reports, GUI elements (functional components) §  GAE: Big Table, caching, security, image processing, blob storage (technical platform) §  Amazon Beanstalk: Standard Java stack §  Choose the right tool for the job! 35