• No results found

Cloud computing taxonomy

N/A
N/A
Protected

Academic year: 2021

Share "Cloud computing taxonomy"

Copied!
57
0
0

Loading.... (view fulltext now)

Full text

(1)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Cloud computing taxonomy

Olivier Cur´e

Universit´e Paris-Est Marne la Vall´ee , LIGM UMR CNRS 8049, France

January 26, 2016

(2)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

“a cloud provides on demand resources and services over the Internet, ussually at the scale and with the reliability of a data center”1

Resources are accessed through services hence pay-as-you-go pricing model

This is based on a Service Level Agreement (SLA) between a cloud provider and customers.

(3)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(4)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Scalability

ability of a system, network, or process, to handle growing amounts of work in a graceful manner or its ability to be enlarged to accommodate that growth.

Two ways to scale:

vertical scaling, aka scaling up, (adding processors, memory) and

horizontal scaling, aka scaling out, with functional scaling (group data by function and spreading then across databases) and splitting data within functional area across multiple

(5)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(6)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Service Level Agreement (SLA)

A SLA specifies the responsabilities, guarantees and service commitment.

For instance, the service commitment may define that the service uptime during a billing cycle (e.g., a month) should be at least 99%, and if this is not the case, the customer should get a service credit.

(7)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Multitenancy

an essential concept of cloud computing.

a principle in software architecture where a single instance of the software runs on a server, serving multiple client

organizations (tenants).

architecture is designed to virtually partition its data and configuration.

(8)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Cloud computing capitalizes2 on:

grid computing (distributed resources over the network) server virtualization

cluster computing (to manage lots of computing and storage resources)

Web services (SOA)

Utility computing (packaging computing and storage resources as services)

(9)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Cloud computing vs Grid computing

Cloud computing is designed to support a large number of users while Grid computing is meant to run very large jobs for few users.

Cloud computing involves to selecting a provider and to running apps in their datacenter(s), while Grid computing involves a federation of multiple organizations.

(10)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Server virtualization

a technology that enables multiple applications to run on the same physical server as virtual machines

That is the same as if they would run on distinct physical servers.

Solutions: VMWare, Xen VM(@ Amazon)

(11)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(12)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(13)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Different forms of cloud:

Public cloud: pay-as-you-go approach to the public. What is sold is utility computing.

Private cloud: internal datacenters of a business or organization that are not available to the public.

Community cloud: shares infrastructure between several organisations from a specific community with common concerns (security, compliance, jurisdiction, etc.),

Hybrid cloud: a composition of two or more clouds (private, community, or public) that remain unique entities. Can also correspond to multiple cloud systems which are connected such that programs and data can be moved easily from one

deployment system to another.

(14)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

3 broad categories of cloud services:

Software as a Service (SaaS) Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Data as a Service (DaaS)

(15)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Software as a Service

Delivery of app software as a service

A generalization of the ASP model but the cloud provider also provides tools to integrate other apps.

Apps ranging from email, calendar to CRM, data analysis, etc.

Example: Salesforce.com CRM

(16)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(17)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Infrastructure as a Service

Delivery of a computing infrastructure as a service (computing, storage and networking)

Easy scale up (add resources) and down (release resources)::

elasticity

Elastivity is achieved via server virtualization: multiple apps run on the same physical server as virtual machines.

Example: Amazon Web Services, Joyent, Rackspace, Eucalyptus.

(18)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Platfoom as a Service

Delivery of a computing platform with development tools and APIs as a service.

Supports the creation and deployment of custom apps directly on the cloud

Example: Google App Engine, Joyent, Heroku, Cloudbees, Microsoft Azure, Cloud foundry (VMWare)

(19)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(20)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(21)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Data as a Service

considers that software is becoming a commodity.

Data is the main thing when it can be used with different software.

Pricing model:

Volume-based model: either quantity-based pricing (e.g. 5,000 API calls per day) or pay per call (e.g. few cents, for each call to the API).

Data type-based model: not all data have the same value.

Ensuring data quality and its cleansing are central tasks.

Actors: Urban Mapping (geography data service), Xignite

(22)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

(23)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Terminology SaaS IaaS PaaS DaaS

Approximate revenues

(24)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Databases

Leader in SaaS enterprise app market, especially in CRM (Customer Relationship Management)

Between 47.000 and 100.000 clients Contains different aspects

Force.com: a PaaS offering with a proprietary language (APEX)

Database.com: database part of force.com

Heroku: a PaaS competitor to force.com. Java and Ruby focused supports many DBMS: SQL and NoSQL

(25)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Databases

Salesforce.com CRM Overview Demo

(26)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Databases

Hard to get details on their infrastructure

A single instance of Oracle, probably the largest in the world Large tables with hundreds of flex columns, which can hold data of many different kinds and dataypes → a kind of NOSQL store.

Multitenancy via joins

550 million transactions/per day in 2011.

A single instance of Oracle, probably the largest in the world

(27)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Google App Engine A PaaS approach

Supports Java, Go and Python runtime Main concerns: Scalability and reliability

GAE restricts your app from any access to the physical infrastructure:

No socket openings

No running background processes (but cron is allowed) Or other back-end routines

(28)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

GAE shares resources among multiple apps but isolates the data and security between each tenant.

Your app can use some Google services but you can not open ports directly

GAE imposes a fixed duration on execution of code.

A GAE app gets a daily limit on each type of request and this is subtracted from your daily allotment:

free GAE can scale to 5 million hits per day, 7400 secure incoming requests/min.

(29)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Daily quotas and per-minute quotas.

Features of quotas:

CPU time Requests

Incoming bandwidth Outgoing bandwidth

(30)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Quotas for request resources

(31)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Quotas for database resources

(32)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Quotas for mail API resources and more

(33)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

GAE provides (as of 2010):

a Java 6 JVM and Java Servlet Interface JDO, JPA, JavaMail

JCache

Google Plugin for Eclipse with local development server and deployment tools

Schedule tasks (to create and manage cron jobs)

(34)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Will it play in GAE

Since the JVM on GAEJ accepts a subset of a standard JVM, it is important to know what’s supported.

Supported: JDO, JPA, JSF, JSP, JSTL, Java Servlet API 2.4, JAXB, JavaMail, XML APIs (DOM, SAX, XSLT)

Not supported: EJB, JAX-RPC, JAX-WS, JDBC, JNDI, RMI, JMS

(35)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Will it play in GAE (2)

JVM-based languages

Compatible: Groovy, JRuby, Jython, Scala, PHP, Javascript Libraries and frameworks

Compatible: GWT, log4J, RESTlet, Struts (1 and 2), Spring MVC, Tiles, Adobe Flex

Semi-compatible: GRAILS, Jena Semantic framework Not compatible : Hibernate

(36)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Servlets and JSP in GAEJ

GAE runs the JVM in a secured sandbox environment to isolate apps from one another.

Classical MVC approach :

JSP for views, POJOs for the model and a Servlet for the controller.

Servlet uses JDO and JDOQL to access data stored in BigTable.

(37)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

GAE datastore

GAE takes care of distribution, replication and load balancing.

It is powered by

Bigtable: a highly distributed and scalable service for storing and managing structured data

and Google File System (GFS): a scalable, fault-tolerant file system designed for large, distributed, data-intensive

applications.

(38)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

Querying GAE datastore

Either with a standard API (JDO or JPA implementation) or low level API for modeling and persisting entities.

Datastore provides CRUD (Create, Read, Update, Delete) access to entities of Bigtable) and query with JDOQL.

Schemaless, no joins, supports for indexing and transactions.

(39)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

GAE services

Memcache:

In-memory data cache in front of a persistent storage.

Memcache API supports the JCache interface: a map like interface to the cached data store.

Expiration mechanism: after a defined number of seconds or a precise time.

Data in Memcache is not reliable since not persistent.

(40)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

URL Fetch Service

To communicate with other systems using HTTP and HTTPS callout.

Can not access ports other than 80 (HTTP) and 443 (HTTPS).

No socket connections directly.

(41)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

To manage, monitor and configure an application.

Application dashboard enables to:

View requests, error log, analyze traffic.

Administer datastore, manage indexes.

Display quotas info (resources, datastore, email)

(42)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Features Quotas Components Admin console Integration

A cloud-computing app can be connected to several cloud computing platforms.

For instance: GAE and Salesforce.com with the Force.com toolkit for GAE.

(43)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

Amazon Web Services comprises:

Simple Storage Service (S3) Elastic Compute Cloud (EC2) SimpleDB

Simple Queue Service

3 interfaces supported: REST, Query (REST-like) and SOAP

(44)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

Amazon’s IaaS solution

“a true virtual computing environment, allowing you to use web service interfaces to launch instances with a variety of operating systems, load them with your custom application environment, manage your networks access permissions, and run your image using as many or few systems as you desire.”

charges by the number and duration of VM instances used by a customer.

To use Amazon EC2, one need to selet a pre-configured image

(45)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

Instance types

6 families of instances with a total of 11 solutions:

Micro instances: 613MB of RAM, 2 EC2 unit, EBS storage, 32-bit or 64-bity platform

Standard instances: 3 solutions from 1.7GB RAM to 15GB, 2 to 8 EC2 unit, 160GB to 1690 GB disk, 32-bit and 64-bit platform

High memory instances: 3 solutions from 17.1 GB to 68.4 GB of RAM, 6 to 26 EC2 unit, 5420 GB to 1690 GB of disk High CPU instance

Cluster compute instances: high CPU with increased network perf. (10GigaBit Ethernet)

Cluster GPU instances: high CPU and increased network

(46)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

Operating systems and Software

OS: Red Hat Enterprise Linux, SUSE Linux Enterprise, Fedora, Windows Server, Gentoo, Oracle Enterprise Linux, Ubuntu Linux, Debian, Amazone Linux AMI

Databases: IBM DB2, SQL Server, MySQL, Oracle Database 11g

App dev environments: IBM sMsh, JBoss Enterprise app platform, Ruby on Rails

App servers: Websphere, Oracle Weblogic

(47)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

On demand instances

(48)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

Data transfer

(49)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing model

(50)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing Pricing example

Google Compute Engine Google’s IaaS.

Linux Virtual machines on Google’s infrastructure.

Strong security (data encryption).

Pricing: minimum charge is 10 minutes after that billing by the minute.

(51)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing Pricing example

Pricing

4 machine types: standard (8 versions from 0.132$/hr to 0.922$/hr), shared-core (0.019$/hr), high memory (0.305$/hr to 1.2$/hr) and high CPU (0.16$/hr to 0.65$/hr).

Instance uptime (number of minutes between when you start an instance and when you stop an instance).

Network pricing: free for the same zone, Google products.

Otherwise, the more you send, the less you pay per Gb . Load balancing: pay per load balancing rule by the hour Persistent disk: difference between provisioned and snapshot, paid per Gb/month (0.10$ resp. 0.125$).

(52)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing Pricing example

Pricing example 1

(53)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Introduction Pricing Pricing example

Pricing example 2

(54)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Comparison is hard :

hard to find a common ground between IaaS and PaaS.

many dimensions: compute, storage, network, scaling.

CloudCmp3 compares the performance and cost of cloud providers. Challenges:

what to measure?

how to measure perceived performance of services? speed of CPU, memory, and disk I/O, scaling latency, storage service response time, time to reach consistency, network latency, and available bandwidth

CloudCmp compares: Amazon AWS, RackSpace CloudServers

(55)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

RAMCloud

project of large-scale storage systems entirely in DRAM Combination of scale and low latency

Scale : 10000 servers with 64GB DRAM/server Latency access: 5-10µs remote procedure calls

Motivation: DRAM 5-10 times faster than SSD (flash)

(56)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

History

(57)

Introduction Salesforce.com Google App Engine Amazon Web Services Google Compute Engine Comparison RAMCloud

Configuration example

References

Related documents