What is Cloud Computing
Key Characteristics and Benefits
Different Cloud Service Models
3 Building Blocks
SaaS: on-demand software delivery model in which software and its associated data are hosted centrally on a cloud and are typically accessed by users using a client, normally using a web browser over the Internet.
*Allows users to run existing online applications
PaaS: This includes hardware (servers, networks, load balancers etc) and software (operating systems, databases, application servers etc). There are a number of PaaS providers including Google App Engine, Microsoft Azure and Salesforce.com’ s Force.com.
*Allows User to create their own cloud applications using supplier specific tools and languages.
IaaS: This includes hardware (servers, networks, load balancers etc) and software (operating systems, databases, application servers etc).
*Allows Users to run any application they please on cloud hardware of their choice
XEN Para-Virtualization Architecture
Amazon Machine Images: Contains all the information necessary to boot instances of user’ s software. It is also possible to use templated images that are already available for usage and allow instance usage of EC2
Amazon EC2 Instance: The running system based on AMI is referred to as an instance.
Amazon Elastic Block Store: offers persistent storage for EC2 Instances. Designed to protect data by automatically creating replicas. EC2 instances can be stopped and restarted.
Elastic Load Balancing: Automatically distributes incoming application traffic across multiple Amazon EC2 instances.
Auto Scaling: Automatic Scaling up/down of EC2 Instances, provided by Amazon Cloud Watch.
Amazon EC2 Demo
Pay Model: On Demand Instances
Pay Model: Reserved Instances
Run your application on Google infrastructure.
Build your app using
JVM bases interpreter or compiler.
Applications build on Google infrastructure are
Easy to build, maintain and scale.
User has a choice either the app to be served by free domain appspot.com or he can his own domain name.
Starting package is free
500 mb storage
5 million page views per month
High Level Architecture
How does it work?
Dynamic web serving
Automatic scaling and load balancing
APIs for user authentications and sending emails.
Fully featured local development environment.
Sandbox isolates the application from operating system, hardware and physical location of the server in very secure and reliable way.
This makes load balancing easy
A powerful distributed data storage service.
Grows with the amount of traffic.
Stores data objects as entities. An entity can have more than one property of different types.
Create, update or delete happens in a transaction.
Entity can belong to entity groups also which are defined as hierarchy of relationships between entities.
Uses optimistic concurrency
Types of Datastore
High Replication datastore
Highly available and reliable
Available for reads and writes during planned downtime also
Data replicated using Paxos algorithm.
3 times expensive than Master/Slave
One datacenter is master at any given time for write queries. Therefore offers strong consistency.
When to use?
Speed up common datastore queries
Session data, user preferences and frequently performed queries
When not to use?
Values can expire unexpectedly from cache. Make sure that your application runs normally if the value is suddenly not available.
Communicate with other hosts using http or https requests.
URL to be fetched can use any port in the range : 80-90,440-450 and 1024-65535.
Fetch can use any of GET,POST,PUT, HEAD and DELETE.
A request handler cannot call its own URL.
Default deadline for response for URL fetch is 5 seconds and maximum is 10 seconds for online and 10 minutes for offline.
Supports both synchronous and asynchronous requests.
The message to be sent is queued and call returns immediately.
Mail service contact each recipient’ s mail server, delivers the message and retries if the server was unavailable.
If mail service fails in sending message, then error message is sent to the address of the sender of the message.
Receive emails of the form email@example.com
Received as HTTP requests
Allows the app to serve data objects that can be upto 2 gigabytes in size.
Useful for serving large files , e.g., Videos or image files or allowing users to upload large files.
Cannot be modified once they are created.
Capabilities & Images
Detect outages and scheduled downtime.
Reduce downtime by detecting if capability is available or not.
Manipulate images(rotate, crop, resize) using Image service
Support JPEG, PNG,GIF,BMP,TIFF and ICO formats.
Creates a persistent API between application and Google servers.
Protocol that allows a user to grant third party limited permission without the user to give his/her username or password to the third party.
Various steps between user and the service provider
Consumer calls a web service to get request token for app.
Redirection of user browser to authentication URL, user signs in and tells Google accounts that consumer is authorized to access service on user’ s behalf.
Consumer calls web service to get access token
Consumer is authorized to call the service now.
Apps perform tasks other than from the user requests, e.g., for some background work. Efficient and powerful tool for background processing
Configure a queue and add tasks to it. App engine takes care of rest.
Easy to implement but restricted to use within app engine.
Best choice if using a different system to consume tasks.
Task consumer leases specific number of tasks from the queue and is responsible for deleting it afterwards.
Gives more flexibility and control over when and where tasks will be processed.
Users, Multitenancy and XMPP
Google Apps domain
One instance of an application servers many clients.
XMPP: Send and receive messages to and from any XMPP compatible chatting service , e.g. Google talk
Team members contributions
Pooja -Amazon EC2
Navi -Google App Engine
Sangeetha -Microsoft Azure