PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

Similar documents
Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen

Architekturen für die Cloud

Cloud Computing. Technologies and Types

Cloud Programming. Programming Environment Oct 29, 2015 Osamu Tatebe

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Cloud Computing Technologies and Types

Google App Engine: Java Technology In The Cloud

Systems Integration in the Cloud Era. Kai Wähner, MaibornWolff et al GmbH

Development of web applications using Google Technology

David Bernstein June 2012

Cloud Computing 4/17/2016. Outline. Cloud Computing. Centralized versus Distributed Computing Some people argue that Cloud Computing. Cloud Computing.

Cloud + Big Data Putting it all Together

17/05/2017. What we ll cover. Who is Greg? Why PaaS and SaaS? What we re not discussing: IaaS

DISTRIBUTED SYSTEMS [COMP9243] Lecture 8a: Cloud Computing WHAT IS CLOUD COMPUTING? 2. Slide 3. Slide 1. Why is it called Cloud?

Cloud Computing Patterns & Best Practices. Ezhil Arasan Babaraj Director of R&D Labs CSS Corp, India

Developing Enterprise Cloud Solutions with Azure

Windows Azure Overview

Developing with Google App Engine

The Windows Azure Platform: A Perspective

Cloud Computing. Chapter 3 Platform as a Service (PaaS)

Examining Public Cloud Platforms

White Paper. Major Performance Tuning Considerations for Weblogic Server

The Windows Azure Platform: A Perspective

VMware Cloud Application Platform

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

Large Scale Computing Infrastructures

Introduction To Cloud Computing

Data Centers and Cloud Computing

Data Centers and Cloud Computing. Slides courtesy of Tim Wood

Cloud platforms. T Mobile Systems Programming

OPENSTACK: THE OPEN CLOUD

Data Centers and Cloud Computing. Data Centers

Developing Microsoft Azure Solutions: Course Agenda

Cloud Computing Platform as a Service

Demystifying the Cloud With a Look at Hybrid Hosting and OpenStack

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

Developing Microsoft Azure Solutions (70-532) Syllabus

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff

Developing Microsoft Azure Solutions (70-532) Syllabus

Get ready to be what s next.

Cloud Providers more AWS, Aneka

Cloud platforms T Mobile Systems Programming

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

CIT 668: System Architecture. Amazon Web Services

Designing MQ deployments for the cloud generation

Hybrid Infrastructure Hosting Clouds + Dedicated + Colocated GoGrid / ServePath September 09

Javaentwicklung in der Oracle Cloud

Developing Microsoft Azure Solutions (70-532) Syllabus

Finished Application e.g. SalesForce.com. Software as a Service. Application Code Publish your app to the cloud. Platform as a Service

CLOUD COMPUTING It's about the data. Dr. Jim Baty Distinguished Engineer Chief Architect, VP / CTO Global Sales & Services, Sun Microsystems

CHEM-E Process Automation and Information Systems: Applications

Cloud Computing. Chapter 3 Platform as a Service (PaaS)

Infrastructure modernization with Microsoft Azure

Azure Development Course

Transform Your Business To An Open Hybrid Cloud Architecture. Presenter Name Title Date

Introduction to Cloud Computing

Basics of Cloud Computing Lecture 2. Cloud Providers. Satish Srirama

Cloud Computing introduction

Top 40 Cloud Computing Interview Questions

Cloud Computing Chapter 2

What is Cloud Computing? What are the Private and Public Clouds? What are IaaS, PaaS, and SaaS? What is the Amazon Web Services (AWS)?

What is a Lean Cloud Platform? May 2011 Paul Fremantle CTO and Co-Founder,

Introduction to Cloud Computing. [thoughtsoncloud.com] 1

UVA HPC & BIG DATA COURSE. Cloud Computing. Adam Belloum

Middle East Technical University. Jeren AKHOUNDI ( ) Ipek Deniz Demirtel ( ) Derya Nur Ulus ( ) CENG553 Database Management Systems

COMP6511A: Large-Scale Distributed Systems. Windows Azure. Lin Gu. Hong Kong University of Science and Technology Spring, 2014

Using and Developing with Azure. Joshua Drew

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led

Build Meeting Room Management Website Using BaaS Framework : Usergrid

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

What is Cloud Computing? Cloud computing is the dynamic delivery of IT resources and capabilities as a Service over the Internet.

ManageEngine Applications Manager 9. Product Features

Migrating traditional Java EE applications to mobile

ECE Enterprise Storage Architecture. Fall ~* CLOUD *~. Tyler Bletsch Duke University

Programowanie w chmurze na platformie Java EE Wykład 1 - dr inż. Piotr Zając

Faculté Polytechnique

Enable IoT Solutions using Azure

Multitiered Architectures & Cloud Services. Benoît Garbinato

How to scale Windows Azure Application

Azure Certification BootCamp for Exam (Architect)

Cloud Computing. Amazon Web Services (AWS)

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

BUILDING AN ON-PREM APPLICATION-AWARE CLOUD

Getting the most out of Spring and App Engine!!

Hosted Azure for your business. Build virtual servers, deploy with flexibility, and reduce your hardware costs with a managed cloud solution.

Use Case: Scalable applications

Creating a Hybrid Gateway for API Traffic. Ed Julson API Platform Product Marketing TIBCO Software

Oracle Corporation

Application Deployment

RA-GRS, 130 replication support, ZRS, 130

Overview. SUSE OpenStack Cloud Monitoring

MEDIA PROCESSING ON CLOUD

Western Michigan University

Cloud Foundry Bootcamp

Developing Microsoft Azure Solutions (MS 20532)

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

Naresh Information Technologies

CLOUD COMPUTING ABSTRACT

Azure Certification BootCamp for Exam (Developer)

Transcription:

PaaS Cloud mit Java Eberhard Wolff, Principal Technologist, SpringSource A division of VMware 2009 VMware Inc. All rights reserved

Agenda! A Few Words About Cloud! PaaS Platform as a Service! Google App Engine! VMforce 2

A Few Words About Cloud 3

Three types of Clouds Infrastructure as a Service Platform as a Service Software as a Service Virtual Servers Virtual Storage Similar to Virtualization Custom Solutions Manage Everything Yourself Virtual Application Server Handles Scale-Out Everything is Services and APIs Usually Larger Buy-In Mostly Managed by Provider Software or Service that you use Components that you add/integrate into your app 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! No relational database! 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 Hosted SQL databases 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! VMforce = force.com! + VMware virtualization Offers IaaS foundation! + SpringSource tc Server / Hyperic! + Spring programming model! i.e. run your standard Spring Apps! Use force.com data model / database!!and charts / reports force.com Platform Services (charts, reports) Force.com Database SpringSource tc Server VMware vsphere 33

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)! Choose the right tool for the job! 34