SlideShare a Scribd company logo
1 of 40
Download to read offline
Cloudy in Indonesia – Java and Cloud
Eberhard Wolff
Architecture and Technology Manager
adesso AG
Twitter: @ewolff
Blog: http://ewolff.com
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
Agenda
    A Few Words About Cloud
    Java and IaaS
    PaaS – Platform as a Service
    Google App Engine
    CloudBees
    Amazon Beanstalk
A Few Words About Cloud
Infrastructure                   Platform                        Software
       as a Service                   as a Service                    as a Service



>  Virtual Servers             >  Virtual Application 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
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
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
Why Cloud?
►    Compelling Economics
     >  Lower CapEx
     >  Cheaper handling of peak loads
     >  Better resource utilization
     >  Simple to achieve benefits – direct ROI
     >  Chances are your data center is not as efficient as Amazon’s, Microsoft’s or
        Googles’s
Why Cloud?
►    Flexibility and better productivity for development
     >  Self service portal
     >  Much easier to set up environments
     >  Feasible to have production-like environments quickly
        and cheaply available
     >  …or environment for load tests
     >  Indirect: Better productivity leads to cost saving / better
        time to market
Why Cloud?
►    Better Service
     >  Higher Availability
     >  Better Reliability
     >  Redundancy across multiple data centers
     >  Lower latency because of local data centers
What this is all about...




          WAR
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!
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


►    Map / Reduce for analyzing large data sets
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 …
And what about Java EE 7?
►    Java EE 7 is supposed to be about Cloud
     >  Multi-Tenant systems
     >  Probably new roles like PaaS Administrator
     >  Cloud services


►    I am currently not aware of Cloud offerings that support Java EE out of the box
►    I.e. beyond manual installation on an IaaS or provided images
►    In particular no PaaS
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
What you will eventually come up with
►    A tool to take an Application
                                                                App
►    …and create a VM with all needed infrastructure etc
►    Dynamically i.e. scale up and down


►    Need tools to
     >  Install software
     >  Manage infrastructure
     >  Configure infrastructure
     >  Set up user etc
     >  Puppet, Chef etc.


►    Like a factory for VMs
►    Works on Private Cloud, Public Cloud or your          VM         VM
     local machine
►    Vagrant
So…
►    Very flexible
►    Works for any IaaS and any software to be installed
►    Works for complex environments with many infrastructure pieces
     >  Install a database server, some Tomcats, a load balancer and a cache server
     >  Fine tune all the parameters
►    Can deploy different parts of the application to special nodes


►    But often developers just want a platform to run applications on
►    No fine tuning


►    Also: Developers need other non-Java-EE services
Not just automated…


                      App




                      VM
Invisible


             App




            PaaS
PaaS
►    Platform as a service (PaaS) is the delivery of a computing platform and solution
     stack as a service.
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
        •  …but IaaS does the same (Amazon)
    Disadvantages
     •  Less flexible
        •  Pre-defined programming model
        •  Defines environment
     •  Programming model might be different
        •  Hard to port existing code
       •  Need to learn
Google App Engine
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
Google App Engine: Storage
    Relational database only in App Engine for Business
    Based on BigTable
     •  Google's storage technology
     •  High replication or simple master / slave
     •  Key/value i.e. objects stored under some key
     •  No joins
     •  Simple / simplistic (?)
     •  Scalable
     •  Example of NoSQL


    Max. 1 MB per entity (and other limitations)
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
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
    Channel (to talk to JavaScript in the browser)
    Numerous other services available (not tied to App Engine)
       Google Predict, Google BigQuery, AdSense, Search, …
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
     >  Relational database
Google App Engine
    Documentation + SDK + Eclipse Plug In available
    SDK contains environment for local tests


    http://code.google.com/appengine/
Google App Engine
►    Pioneer: Very early in the market


►    Very restrictive environment
     >  Limited sandbox
     >  Focus on NoSQL while typical Java applications use RDBMS
     >  Limit on start up time of application etc
     >  Limit on response time (30 seconds)
     >  No control or access to operating system
     >  Not even the web server
►    So specialized frameworks have been created (Gaelyk for Groovy)


►    Benefits?
Amazon Beanstalk
Amazon Web Services
►    Collection of Cloud Offerings (mostly IaaS)
►    Elastic Compute Cloud (EC2)
►    Elastic Map Reduce
►    Auto Scaling
►    SimpleDB : Big Table like NoSQL database
►    Simple Queue Service (SQS)
►    Simple Notification Service (SNS)
►    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 and
     https://cloudant.com/ for CouchDB
Amazon BeanStalk
►    Based on the Amazon EC2 infrastructure
►    …and Auto Scaling and S3
►    Add Linux, OpenJDK, Tomcat


►    Currently in beta
►    …and 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.)
Amazon BeanStalk
►    Access to Tomcat logs etc.
►    Access to the OS
►    Fine tuning of Tomcat parameters possible
►    Easy, yet powerful


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


►    Add Relational Database Service (RDS) for enterprise scale MySQL
►    …and all the other Amazon Web Services (AWS)
Amazon 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 (?)
CloudBees
CloudBees: DEV@Cloud
►    In fact two services: DEV@Cloud and RUN@Cloud


►    DEV@Cloud: Developer services
►    Continuous Integration (Jenkins)
     >  Good application of the Cloud: Peaks and high load only during working hours
     >  Standardized and universally applicable service
     >  Some Essentials Plug Ins in free version
     >  More in Base / Pro / Enterprise pay version
     >  Also more parallel build in pay version
     >  …and faster build machines
►    Maven repository
     >  Snapshot / Release
     >  Builds can be automatically deployed
►    Potentially other services
CloudBees: RUN@Cloud
►    Tomcat on EC2
►    Easily deploy a WAR
     >  either by web interface
     >  or command line utility (bees SDK)


►    Little control
     >  Only 256MB heap
     >  Single instance or multiple instance
     >  No elastic scaling
     >  Potentially cheaper: Can you multiple application on one machine
►    Simple monitoring (web / command line)


►    MySQL database
     >  Very simple (i.e. just one server, but backup included)
     >  Could use Amazon RDS instead
Java in the Cloud: Conclusion
    Feasible to run Java applications in the cloud
    IaaS
       Maximum control
       Automatic installation needed
       Also works on private cloud / virtualized environment
    Google App Engine
       Very limited sandbox
       Advantage?
    Amazon Beanstalk
       Standard Enterprise Java Stack
       Lots of additional Amazon Web Services (Relational Database Service)
    CloudBees
       DEV@Cloud: Developer-only features (Jenkins)
       RUN@Cloud: simple but probably more price efficient
Wir suchen Sie als
    Software-Architekt (m/w)
    Projektleiter (m/w)
    Senior Software Engineer (m/w)


 jobs@adesso.de
 www.AAAjobs.de

More Related Content

What's hot

Knowledge share about scalable application architecture
Knowledge share about scalable application architectureKnowledge share about scalable application architecture
Knowledge share about scalable application architectureAHM Pervej Kabir
 
Cloud Architecture best practices
Cloud Architecture best practicesCloud Architecture best practices
Cloud Architecture best practicesOmid Vahdaty
 
Scalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and ApproachesScalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and Approachesadunne
 
AWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsAWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsTom Laszewski
 
Cmg06 utilization is useless
Cmg06 utilization is uselessCmg06 utilization is useless
Cmg06 utilization is uselessAdrian Cockcroft
 
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...Amazon Web Services
 
Architecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureArchitecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureNuno Godinho
 
Running High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSRunning High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSAcquia
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By DesignTim Morrow
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Mark Myers
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdam Pazik
 
AWS Certified Solutions Architect Professional Course S10-S14
AWS Certified Solutions Architect Professional Course S10-S14AWS Certified Solutions Architect Professional Course S10-S14
AWS Certified Solutions Architect Professional Course S10-S14Neal Davis
 
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...Continuent
 
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...Amazon Web Services
 
Four approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakFour approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakAEM HUB
 
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...MongoDB
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Tom Laszewski
 

What's hot (20)

Knowledge share about scalable application architecture
Knowledge share about scalable application architectureKnowledge share about scalable application architecture
Knowledge share about scalable application architecture
 
Cloud Architecture best practices
Cloud Architecture best practicesCloud Architecture best practices
Cloud Architecture best practices
 
Scalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and ApproachesScalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and Approaches
 
Azure appfabric caching intro and tips
Azure appfabric caching intro and tipsAzure appfabric caching intro and tips
Azure appfabric caching intro and tips
 
AWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsAWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise Workloads
 
Cmg06 utilization is useless
Cmg06 utilization is uselessCmg06 utilization is useless
Cmg06 utilization is useless
 
Dynamodb tutorial
Dynamodb tutorialDynamodb tutorial
Dynamodb tutorial
 
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...
Edmunds.com: Migrating, Deploying & Managing On-Premises Web Property (DMG205...
 
Architecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureArchitecture Best Practices on Windows Azure
Architecture Best Practices on Windows Azure
 
Running High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSRunning High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWS
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud Deployments
 
AWS Certified Solutions Architect Professional Course S10-S14
AWS Certified Solutions Architect Professional Course S10-S14AWS Certified Solutions Architect Professional Course S10-S14
AWS Certified Solutions Architect Professional Course S10-S14
 
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...
Webinar Slides: High Noon at AWS — Amazon RDS vs. Tungsten Clustering with My...
 
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...
(BIZ305) Case Study: Migrating Oracle E-Business Suite to AWS | AWS re:Invent...
 
Four approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan KuzniakFour approaches to integrate aem with external systems by Jan Kuzniak
Four approaches to integrate aem with external systems by Jan Kuzniak
 
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
 
Spring in the Cloud
Spring in the CloudSpring in the Cloud
Spring in the Cloud
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 

Similar to Cloudy in Indonesia: Java and Cloud

Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparisonadesso AG
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Eberhard Wolff
 
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
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stackJohan Edstrom
 
CA Plex / CM WebClient Implementing on Amazon Cloud Infastructure
CA Plex / CM WebClient Implementing on Amazon Cloud InfastructureCA Plex / CM WebClient Implementing on Amazon Cloud Infastructure
CA Plex / CM WebClient Implementing on Amazon Cloud InfastructureCM First Group
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudJulien SIMON
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...Ludovic Piot
 
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Vikas Sahni
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongSpiffy
 
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
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleArnaud LEMAIRE
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackShapeBlue
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineCsaba Toth
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java3Pillar Global
 
Cloud Done Right - PaaS is the Remedy to VM Hangover
Cloud Done Right - PaaS is the Remedy to VM HangoverCloud Done Right - PaaS is the Remedy to VM Hangover
Cloud Done Right - PaaS is the Remedy to VM HangoverMohamad Afshar
 
Running Magnolia on Jelastic Cloud Hosting
Running Magnolia on Jelastic Cloud HostingRunning Magnolia on Jelastic Cloud Hosting
Running Magnolia on Jelastic Cloud HostingMagnolia
 

Similar to Cloudy in Indonesia: Java and Cloud (20)

Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
PaaS with Java
PaaS with JavaPaaS with Java
PaaS with Java
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
 
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
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
CA Plex / CM WebClient Implementing on Amazon Cloud Infastructure
CA Plex / CM WebClient Implementing on Amazon Cloud InfastructureCA Plex / CM WebClient Implementing on Amazon Cloud Infastructure
CA Plex / CM WebClient Implementing on Amazon Cloud Infastructure
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloud
 
Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan Wong
 
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...
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java
 
Cloud Done Right - PaaS is the Remedy to VM Hangover
Cloud Done Right - PaaS is the Remedy to VM HangoverCloud Done Right - PaaS is the Remedy to VM Hangover
Cloud Done Right - PaaS is the Remedy to VM Hangover
 
Running Magnolia on Jelastic Cloud Hosting
Running Magnolia on Jelastic Cloud HostingRunning Magnolia on Jelastic Cloud Hosting
Running Magnolia on Jelastic Cloud Hosting
 

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

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Cloudy in Indonesia: Java and Cloud

  • 1. Cloudy in Indonesia – Java and Cloud Eberhard Wolff Architecture and Technology Manager adesso AG Twitter: @ewolff Blog: http://ewolff.com
  • 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. Agenda   A Few Words About Cloud   Java and IaaS   PaaS – Platform as a Service   Google App Engine   CloudBees   Amazon Beanstalk
  • 4. A Few Words About Cloud
  • 5. Infrastructure Platform Software as a Service as a Service as a Service >  Virtual Servers >  Virtual Application 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
  • 6. 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
  • 7. 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
  • 8. Why Cloud? ►  Compelling Economics >  Lower CapEx >  Cheaper handling of peak loads >  Better resource utilization >  Simple to achieve benefits – direct ROI >  Chances are your data center is not as efficient as Amazon’s, Microsoft’s or Googles’s
  • 9. Why Cloud? ►  Flexibility and better productivity for development >  Self service portal >  Much easier to set up environments >  Feasible to have production-like environments quickly and cheaply available >  …or environment for load tests >  Indirect: Better productivity leads to cost saving / better time to market
  • 10. Why Cloud? ►  Better Service >  Higher Availability >  Better Reliability >  Redundancy across multiple data centers >  Lower latency because of local data centers
  • 11. What this is all about... WAR
  • 12. 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!
  • 13. 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 ►  Map / Reduce for analyzing large data sets
  • 14. 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 …
  • 15. And what about Java EE 7? ►  Java EE 7 is supposed to be about Cloud >  Multi-Tenant systems >  Probably new roles like PaaS Administrator >  Cloud services ►  I am currently not aware of Cloud offerings that support Java EE out of the box ►  I.e. beyond manual installation on an IaaS or provided images ►  In particular no PaaS
  • 16. 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
  • 17. What you will eventually come up with ►  A tool to take an Application App ►  …and create a VM with all needed infrastructure etc ►  Dynamically i.e. scale up and down ►  Need tools to >  Install software >  Manage infrastructure >  Configure infrastructure >  Set up user etc >  Puppet, Chef etc. ►  Like a factory for VMs ►  Works on Private Cloud, Public Cloud or your VM VM local machine ►  Vagrant
  • 18. So… ►  Very flexible ►  Works for any IaaS and any software to be installed ►  Works for complex environments with many infrastructure pieces >  Install a database server, some Tomcats, a load balancer and a cache server >  Fine tune all the parameters ►  Can deploy different parts of the application to special nodes ►  But often developers just want a platform to run applications on ►  No fine tuning ►  Also: Developers need other non-Java-EE services
  • 20. Invisible App PaaS
  • 21. PaaS ►  Platform as a service (PaaS) is the delivery of a computing platform and solution stack as a service.
  • 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 •  …but IaaS does the same (Amazon)   Disadvantages •  Less flexible •  Pre-defined programming model •  Defines environment •  Programming model might be different •  Hard to port existing code •  Need to learn
  • 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
  • 25. Google App Engine: Storage   Relational database only in App Engine for Business   Based on BigTable •  Google's storage technology •  High replication or simple master / slave •  Key/value i.e. objects stored under some key •  No joins •  Simple / simplistic (?) •  Scalable •  Example of NoSQL   Max. 1 MB per entity (and other limitations)
  • 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
  • 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   Channel (to talk to JavaScript in the browser)   Numerous other services available (not tied to App Engine)   Google Predict, Google BigQuery, AdSense, Search, …
  • 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 >  Relational database
  • 29. Google App Engine   Documentation + SDK + Eclipse Plug In available   SDK contains environment for local tests   http://code.google.com/appengine/
  • 30. Google App Engine ►  Pioneer: Very early in the market ►  Very restrictive environment >  Limited sandbox >  Focus on NoSQL while typical Java applications use RDBMS >  Limit on start up time of application etc >  Limit on response time (30 seconds) >  No control or access to operating system >  Not even the web server ►  So specialized frameworks have been created (Gaelyk for Groovy) ►  Benefits?
  • 32. Amazon Web Services ►  Collection of Cloud Offerings (mostly IaaS) ►  Elastic Compute Cloud (EC2) ►  Elastic Map Reduce ►  Auto Scaling ►  SimpleDB : Big Table like NoSQL database ►  Simple Queue Service (SQS) ►  Simple Notification Service (SNS) ►  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 and https://cloudant.com/ for CouchDB
  • 33. Amazon BeanStalk ►  Based on the Amazon EC2 infrastructure ►  …and Auto Scaling and S3 ►  Add Linux, OpenJDK, Tomcat ►  Currently in beta ►  …and 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.)
  • 34. Amazon BeanStalk ►  Access to Tomcat logs etc. ►  Access to the OS ►  Fine tuning of Tomcat parameters possible ►  Easy, yet powerful ►  Videos to get started ►  Demo application based on Spring >  Uses also S3 (storage) and Simple Notification Service (SNS) ►  Add Relational Database Service (RDS) for enterprise scale MySQL ►  …and all the other Amazon Web Services (AWS)
  • 35. Amazon 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 (?)
  • 37. CloudBees: DEV@Cloud ►  In fact two services: DEV@Cloud and RUN@Cloud ►  DEV@Cloud: Developer services ►  Continuous Integration (Jenkins) >  Good application of the Cloud: Peaks and high load only during working hours >  Standardized and universally applicable service >  Some Essentials Plug Ins in free version >  More in Base / Pro / Enterprise pay version >  Also more parallel build in pay version >  …and faster build machines ►  Maven repository >  Snapshot / Release >  Builds can be automatically deployed ►  Potentially other services
  • 38. CloudBees: RUN@Cloud ►  Tomcat on EC2 ►  Easily deploy a WAR >  either by web interface >  or command line utility (bees SDK) ►  Little control >  Only 256MB heap >  Single instance or multiple instance >  No elastic scaling >  Potentially cheaper: Can you multiple application on one machine ►  Simple monitoring (web / command line) ►  MySQL database >  Very simple (i.e. just one server, but backup included) >  Could use Amazon RDS instead
  • 39. Java in the Cloud: Conclusion   Feasible to run Java applications in the cloud   IaaS   Maximum control   Automatic installation needed   Also works on private cloud / virtualized environment   Google App Engine   Very limited sandbox   Advantage?   Amazon Beanstalk   Standard Enterprise Java Stack   Lots of additional Amazon Web Services (Relational Database Service)   CloudBees   DEV@Cloud: Developer-only features (Jenkins)   RUN@Cloud: simple but probably more price efficient
  • 40. Wir suchen Sie als   Software-Architekt (m/w)   Projektleiter (m/w)   Senior Software Engineer (m/w) jobs@adesso.de www.AAAjobs.de