Eclipse Exam Tutorial - Pros and Cons

Similar documents
Google App Engine f r o r J av a a v a (G ( AE A / E J / )

Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

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

Heterogeneous Cloud Computing for Research

Con PaaS. ConPaaS: a Platform as a Service for Multi-clouds. Guillaume Pierre Rennes 1 University, France

Google App Engine for Java. Lars Vogel Twitter:

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Table of Contents. Développement logiciel pour le Cloud (TLC) Table of Contents. 5. NoSQL data models. Guillaume Pierre

The Cloud to the rescue!

ConPaaS: an integrated runtime environment for elastic cloud applications

Cloud Computing mit mathematischen Anwendungen

Lecture 10 Fundamentals of GAE Development. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Scaling Web Applications in a Cloud Environment. Emil Ong Caucho Technology 8621

MS 10978A Introduction to Azure for Developers

Assignment # 1 (Cloud Computing Security)

ur skills.com

Course 10978A Introduction to Azure for Developers

Citrix XenDesktop Backups with Xen & Now by SEP

Google App Engine. Guido van Rossum Stanford EE380 Colloquium, Nov 5, 2008

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

NoSQL and Hadoop Technologies On Oracle Cloud

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

10978A: Introduction to Azure for Developers

What We Can Do in the Cloud (2) -Tutorial for Cloud Computing Course- Mikael Fernandus Simalango WISE Research Lab Ajou University, South Korea

Lecture 6 Cloud Application Development, using Google App Engine as an example

Lecture 02a Cloud Computing I

PaaS - Platform as a Service Google App Engine

Open Source Technologies on Microsoft Azure

Cloud Computing. Technologies and Types

Google Cloud Platform The basics

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

References. Introduction to Database Systems CSE 444. Motivation. Basic Features. Outline: Database in the Cloud. Outline

Introduction to Database Systems CSE 444

Cloudy with a chance of 0-day

F1: A Distributed SQL Database That Scales. Presentation by: Alex Degtiar (adegtiar@cmu.edu) /21/2013

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Citrix XenServer Backups with Xen & Now by SEP

Cloud computing opens new perspectives for hosting

Last time. Today. IaaS Providers. Amazon Web Services, overview

Windows Azure Data Services (basics) 55093A; 3 Days

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Introduction to Azure for Developers

StACC: St Andrews Cloud Computing Co laboratory. A Comparison of Public Cloud Platforms. Microsoft Azure and Google App Engine

Garuda: a Cloud-based Job Scheduler

Cluster Computing. ! Fault tolerance. ! Stateless. ! Throughput. ! Stateful. ! Response time. Architectures. Stateless vs. Stateful.

A Review on Leaders in Cloud Computing Service Providers and Cloud SQL a Case Study

Getting Started with Google Cloud Platform

Preparing Your Data For Cloud

Microsoft Introduction to Azure for Developers

Blog:

Rational Application Developer Performance Tips Introduction

Apache Hadoop. Alexandru Costan

Oracle WebLogic Server 11g Administration

Case Study : 3 different hadoop cluster deployments

Développement logiciel pour le Cloud (TLC)

A programming model in Cloud: MapReduce

Cloud Training Portal. Trainings. Process Guide. October 2012 ECPG-3. Version 1.2

CloudFTP: A free Storage Cloud

IDEAL INSTITITE OF MANAGEMENT AND TECHNOLOGY In association with IIT MADRAS Presents SAARANG 2015 National Level CLOUD COMPUTING Championship

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

Can the Elephants Handle the NoSQL Onslaught?

Microsoft Windows Apple Mac OS X

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

Developing Microsoft Azure Solutions

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

Achieve Agility with Cloud Based Development: BlueMix and IBM DevOps Services Khurram Nizami

Developing Microsoft Azure Solutions 20532A; 5 days

Cloud Based Application Architectures using Smart Computing

SNOW LICENSE MANAGER (7.X)... 3

w w w. u l t i m u m t e c h n o l o g i e s. c o m Infrastructure-as-a-Service on the OpenStack platform

Performance TesTing expertise in case studies a Q & ing T es T

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

Open-Xchange Hosted Edition Directory Integration

Last time. Today. IaaS Providers. Amazon Web Services, overview

Cloud Computing with Windows Azure using your Preferred Technology

Microsoft Azure Data Technologies: An Overview

PLATFORM-AS-A-SERVICE: ADOPTION, STRATEGY, PLANNING AND IMPLEMENTATION

DESIGN AND IMPLEMENTATION OF A FILE SHARING APPLICATION FOR ANDROID

Scalable Architecture on Amazon AWS Cloud

HYBRID CLOUD SUPPORT FOR LARGE SCALE ANALYTICS AND WEB PROCESSING. Navraj Chohan, Anand Gupta, Chris Bunch, Kowshik Prakasam, and Chandra Krintz

In Memory Accelerator for MongoDB

PHP and MongoDB Web Development Beginners Guide by Rubayeet Islam

Integrating Big Data into the Computing Curricula

G Cloud 6 CDG Service Definition for Forgerock Software Services

Mark Bennett. Search and the Virtual Machine

WEBLOGIC ADMINISTRATION

Microsoft Dynamics NAV 2015 Hardware and Server Requirements. Microsoft Dynamics NAV Windows Client Requirements

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

Glassfish Architecture.

Visualisation in the Google Cloud

Microsoft Windows Apple Mac OS X

CloudCmp:Comparing Cloud Providers. Raja Abhinay Moparthi

Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor. Danilo Bordini & Osvaldo Daibert

Informix Administration Overview

Course 20533: Implementing Microsoft Azure Infrastructure Solutions

HDFS. Hadoop Distributed File System

Monitoring and Alerting

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

WINDOWS AZURE EXECUTION MODELS

NoSQL Database Options

Transcription:

Table of Contents 3. PaaS: the example of Google AppEngine Guillaume Pierre Université de Rennes 1 Fall 2012 http://www.globule.org/~gpierre/ 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine 5 Conclusion 1 / 35 2 / 35 Table of Contents What is Google AppEngine? 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine A Web application hosting platform Python, Java, Go. Automatic scaling and load balancing Two data backends SQL, NoSQL Integration with Google accounts for authentication etc. 5 Conclusion 1 / 35 2 / 35

AppEngine customers AppEngine customers 3 / 35 AppEngine usage 4 / 35 6 / 35 AppEngine advertisement 5 / 35

AppEngine advertisement Application lifecycle 6 / 35 AppEngine SDK 7 / 35 9 / 35 AppEngine code deployment AppEngine provides a convenient SDK I A local server where you can develop and test I Eclipse plugin Deploy code in the cloud after testing it locally 8 / 35

AppEngine console AppEngine pricing 10 / 35 AppEngine APIs 11 / 35 Developing Java applications in AppEngine 13 / 35 Table of Contents 12 / 35 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine 5 Conclusion

Directory layout GuestbookServlet.java Java applications use a classical directory structure You can write regular servlet code Developing Java applications in AppEngine 14 / 35 Developing Java applications in AppEngine 15 / 35 web.xml appengine-web.xml Regular servlet conguration le AppEngine requires one additional conguration le To explain AppEngine how to host this application Developing Java applications in AppEngine 16 / 35 Developing Java applications in AppEngine 17 / 35

AppEngine can connect directly to Google accounts AppEngine also supports JSP Great: the development server knows how to emulate Google login Beware: you are becoming locked in... Developing Java applications in AppEngine 18 / 35 Developing Java applications in AppEngine 19 / 35 Table of Contents Scalability issues 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine 5 Conclusion So far our applications have been stateless Copy the application on N servers Process any reauest on any server Very easy to scale! Problems start when applications want to store data Replication and consistency issues Traditional replication usually scales very badly Each server processes N 1 Reads + Writes Increasing N reduces the Read load for each server When the Write load saturates a server, the system cannot scale any more The Data Store 20 / 35 The Data Store 21 / 35

Scalability of a master-slave replicated database The Google Datastore 20000 Throughput (transactions/second) 15000 10000 5000 0 0 10 20 30 40 50 60 Number of server machines The Datastore is a non-relational database We will see more on NoSQL next week... Applications can store entities in the data store Entities are organize hierarchically Each entity has one key (to dene its identity) Each entity can contain any number of key-value pairs Entities may have one parent entity All entities under the same ancestor form an entity group The Data Store 22 / 35 The Data Store 23 / 35 What's the catch? Storing all greeting in a single entity group Each query spanning a single entity group is guaranteed to be strongly consistent To make things simple: you can ignore the fact that data are replicated Queries spanning more than one entity group have no consistency guarantee You may see in-between states that are not supposed to happen What's the real catch? You can issue at most one update per entity group per second If your application generates more updates you are forced to split data in many independent entity groups The Data Store 24 / 35 The Data Store 25 / 35

Reading greetings Table of Contents 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine 5 Conclusion The Data Store 26 / 35 Background actions in AppEngine 27 / 35 AppEngine imposes limits on requests Example: processing logs AppEngine requests are killed after 60 seconds of execution Each server instance has little memory (128 MB) Server instances are created/destroyed automatically (they should not keep state) No background tasks! Processing logs Scanning the database periodically Etc. The cron service is designed for periodic work A task can execute for up to 10 minutes (process logs, scan database etc.) Tasks can be used in conjunction with the cron service Background actions in AppEngine 28 / 35 Background actions in AppEngine 29 / 35

Regular web.xml Requesting periodic execution with cron We need an additional le: cron.xml Background actions in AppEngine 30 / 35 Background actions in AppEngine 31 / 35 Task queues AppEngine allows users to dene Task queues Add a task to a queue It will be picked up at some point in the future Backends Backends are special VMs running continuous jobs For example: a stateful server Background actions in AppEngine 32 / 35 Background actions in AppEngine 33 / 35

Table of Contents Pros and cons 1 2 Developing Java applications in AppEngine 3 The Data Store 4 Background actions in AppEngine 5 Conclusion Pros: A familiar development environment The great SDK + local server for testing No scalability worry Lots of APIs for common operations Lots of ways to program background activities Cons: Only three supported languages (no PHP) Customer lock-in if you use any of the fancy APIs An unfamiliar data storage system No explicit performance control Conclusion 34 / 35 Conclusion 35 / 35