ECE7650
At one extreme, sharing basic IT infrastructure
E.g Amazon ’ s EC2 : an EC2 instance appears physical HW, users can control nearly the entire sw stack, from the kernel upwards
At the other extreme, sharing application domainspecific platforms
E.g. Google AppEngine , a platform for building and hosting web applications on Google Web servers. Limited range of applications are supported,
In the middle, sharing programming environments
Microsoft ’ s Azure written using .NET libraries, and compiled to the Common Langurage Runtime (CLR).
Cloud Computing 2
AWS is a collection of remote computing services that together make up a cloud computing platform, offered over the Internet by
Amazon.com.
List of AWS products
Amazon Elastic Compute Cloud (EC2) provides scalable virtual private servers using Xen.
Amazon Simple Storage Service (S3) provides Web Service based storage.
Amazon SimpleDB allows developers to run queries on structured data. It provide "the core functionality of a database."
Amazon Elastic MapReduce allows developers to easily and cheaply process vast amounts of data. It uses a hosted Hadoop framework running on the web-scale infrastructure of EC2 and Amazon S3.
Amazon Virtual Private Cloud (VPC) creates a logically isolated set of
Amazon EC2 instances which can be connected to an existing network using a VPN connection.
And More…
Cloud Computing 3
’
Amazon Elastic Compute Cloud (EC2)
Web service that provides resizable compute capacity in the cloud
An EC2 instance appears physical HW, provides users complete control over nearly entire sw stack, from the kernel upwards
Load Variety of operating system
Install Custom applications
Manage network access permission
Run image using as many/few systems as you desire
C. Xu @ Wayne State Cloud Computing 4
’
Elastic capacity
Elastic resource config/reconfig; Elastic num of instances
Completely Control
Root access/access to console output/data store/ reboot
Reliable
Multiple locations
Elastic IP addresses
Secure
Firewall config
Virtual Private Cloud
Performance
Auto Scaling
Auto local balancing
Cloud Computing 5
’
On-Demand Instances
Pay for capacity without long-term commitment
Reserved Instances
Standard Instances
Micro Instances
High-Memory Instances
High-CPU Instances
High-I/O instance
High Storage Instances
Spot Instances
Bit on unused Amazon EC2 capacity, run those instances for as long as their bid exceeds the current Spot Prices
C. Xu @ Wayne State Cloud Computing 6
’
Create an Amazon Machine Image (AMI) containing your applications, libraries, data and associated configuration settings. Or use pre-configured, templated images to get up and running immediately.
Choose the types of instances and OS, then start, terminate, and monitor as many instances of your AMI as needed, using the web service APIs or the variety of management tools provided.
Determine whether you want to run in multiple locations, utilize static IP endpoints, or attach persistent block storage to your instances.
Pay only for the resources that you actually consume, like instance-hours or data transfer.
http://www.youtube.com/watch?v=JPFoDnjR8e8
Cloud Computing 7
’
Amazon Simple Storage Service (S3)
Storage for the Internet.
Features
Unlimited Storage
Highly scalable
• in terms of storage, request rate and concurrent users
Reliable
• Store redundant data in multiple facilities and on multiple devices
Secure
• Flexibility to control who/how/when/where to access the data
Performance
• Choose region to optimize for latency/minimize costs
Work with other AWS products
EC2/Elastic MR/Amazon Import/Export…
C. Xu @ Wayne State Cloud Computing 8
Photo operation
red eye reduction/cropping/customization/re-coloring/teeth whitening, etc
Procedure
Web server receive request
Put request message in the queue
Pictures stored in S3
Multiple EC2 instances run photo processing
Put back in the queue
Return
Cloud Computing 9
’
A platform for building and hosting web applications on Google data servers.
support Python/Java
Upload and ready to run
No need to maintain your own servers, easy to scale as your traffic and storage grow
Kevin Gibbs, App Engine Tech Lead
“ AppEngine is a system that exposes various pieces of Google ’ s scalable infrastructure so that you can write server-side applications on top ”
Cloud Computing 10
AppEngine handles HTTP(S) requests, nothing else
Think RPC: request in, processing, response out
Dynamic web serving, with full support for common web technologies
App configuration is dead simple
No performance tuning needed
Everything is built to scale
“ infinite ” number of apps, requests/sec, storage capacity
Automatic scaling
Automatic management
Load balancing/monitoring/scaling
Local development Environment: simulation
Google AppEngine Software Development Kit
Cloud Computing 11
URLFetch fetch web resources/services
Images
manipulate images: resize, rotate, flip, crop
Google Accounts
Allow users to sign in their product by using G account
Send message using Google infrastructure.
XMPP
send instant messages
Datastore
managing data objects
Memcache
Distributed in-memory data cache in front of constant storage
Cloud Computing 12
Appl run in a secure environment that provides limited access to the underlying
OS.
Allow AppEngine to distribute web requests for the application across multiple servers; Start and stop servers to meet traffic demands
Isolates your appl in its own secure, reliable environment that is independent of the hw, OS, and physical location of the web server
Cloud Computing 13
Limited Access:
Appl can only access other computers on the
Internet through provided URL fetch and email
API
Cannot write to file system, can read file uploaded by the appl; The app must use the App
Engine datastore for all data that persists between requests
Run in response to a web request, and must return response data within 30 seconds. A request handler cannot spawn a sub-process or execute code afte the response has been sent.
Cloud Computing 14
req/resp stateless APIs urlfech mail images
Python
VM process stdlib app stateful
APIs memcache datastore
Cloud Computing 15
Cloud Computing 16
Linux, Apache, MySQL/PostgreSQL,
Python/Perl/PHP/Ruby
LAMP is the industry standard
But management is a hassle:
Configuration, tuning
Backup and recovery, disk space management
Hardware failures, system crashes
Software updates, security patches
Log rotation, cron jobs, and much more
More Important…
Cloud Computing 17
Low-usage apps: many apps per physical host
High-usage apps: multiple physical hosts per app
Stateless APIs are trivial to replicate
Datastore built on top of Bigtable; designed to scale well
Abstraction on top of Bigtable
Cloud Computing 18
You don ’ t need to configure your resource needs
One CPU can handle many requests per second
Apps are hashed onto CPUs:
One process per app, many apps per CPU
Creating a new process is a matter of cloning a generic “ model ” process and then loading the application code (in fact the clones are pre-created and sit in a queue)
The process hangs around to handle more requests (reuse)
Eventually old processes are killed (recycle)
Busy apps (many QPS query per sec) get assigned to multiple CPUs
This automatically adapts to the need
• as long as CPUs are available
Cloud Computing 19
Quota
Apps per developer
Time per request
Files per app
HTTP response size
Datastore item size
Appl code size
Limit
10
30 sec
1,000
10 MB
1 MB
150 MB
Quota
Emails per day
BW in per day
BW out per day
Secure BW in per day
Secure BW out per day
CPU megacycles per day
HTTP Requests per Day
Datastore API calls per day
Data stored
URLFetch API calls per day
Free Quota
2,000
10,000 MB
10,000 MB
2,000 MB
2,000 MB
200,000,000
1,333,328*
10,368,000*
1 GB
657,084*
Cloud Computing 20
http://www.youtube.com/watch?v=tcbpTQ
XNwac
Cloud Computing 21
’
Cloud service platform hosted in MS data centers, including an OS, Windows Azure, and a set of developer services like .NET services, Live services, and SQL data services
Window Azure: serving as the development, service hosting, data storage and service management environment
Cloud Computing 22
Compute , Storage , Fabric Controller , Content
Delivery Network (CDN) , Connect
Cloud Computing 23
Web role: web-based application
Worker role: various windows-based code
VM role: Windows Server image, customized software installations on OS will be kept.
Cloud Computing 24
Submit an application with configuration of type and number of instances
Fabric controller creates VM and runs the code
Requests through HTTP/HTTPS/TCP are load balanced across all instances without affinity.
Exposed API that allows
automatically scale up and down.
application logging
Monitoring resource usage: CPU/storage
Cloud Computing 25
Blob
Simple unstructured hierarchy: each container holds one or more blobs, which is up to terabyte
Access from URI: http://<StorageAccount>.queue.core.windows.net/<QueueName>
Basic storage
Cloud Computing 26
Tables
Structured storage.
Stored in a group of entities that contain properties.
Entity with different num of properties in various types.
Not relational tables, support massively scalable applications.
Cloud Computing 27
Queues
Provide a way for communication between instances
Cloud Computing 28
All Azure application and data reside in Microsoft data center
All Azure components are managed by the fabric controller.
Cloud Computing 29
Distributed application that’s replicated across machines.
It owns all of the resources: computer, switches, load balancers and is aware of each azure application
Autonomic management
Monitoring the system status
Optimizing hardware utilization
Create VMs and intelligent deployment
Update instances without shutdown
Managing the OS for Web and Work roles
Cloud Computing 30
The CDN stores copies of a blob at sites closer to the clients that use it
Servers store videos, Flash, HTML5…
Cloud Computing 31
Effectively connecting on-premises environments with
Windows Azure
Installing a Endpoint Agent on each on-premises machines and communication through IP-level connection
Azure applications appears to be on the same IP network as the on-premises machines.
Cloud Computing 32
Large scale web applications with occasional huge spikes and background processing.
Video sharing site
Deployment
A number of web instances based on demand
Table storage for information
Many works for processing
Blobs storage for large data set
Cloud Computing 33
Parallel processing applications
Financial modeling at a bank
New drug testing simulations in a pharmaceutical company
Deployment
Web role for access interface
Many workers for processing
Large data set stored in blobs
Cloud Computing 34
Using storage from an on-premises or hosted application
Archive old email
User log file
Deployment
Connect on-premises application with Azure
Cloud Computing 35
Cloud Computing 36