BUILDING MULTI-TIER WEB
APPLICATIONS IN VIRTUAL
ENVIRONMENTS
OUTLINE
Virtualization
Cloud Computing
Microsoft Azure Platform
Multi-tier Architecture
Deployment Azure, Amazon EC2, UAkron CS VMs
VIRTUALIZATION
VIRTUALIZATION
Multiple virtual servers run on a host hardware (a
server, a server farm or a data center).
Share hardware by dividing resources (CPUs,
RAM, hard disks, network).
A Virtual Machine (VM) is an isolated software
container which runs its own operating systems and
applications behaving like a physical computer.
VMs reside on hypervisors which give direct access
to the hardware
HYPERVISORS
Hypervisors are virtual machine managers (VMM), they
are the OS of the OS.
Two types of hypervisors:
Type 1: native (bare metal), run directly on host hardware.
Type 2: hosted, run on a host OS
TYPE 2 HYPERVISORS
Host OS based: a VM runs as an
application on the host OS.
Examples: Parallels for Mac, VirtualBox.
Slow, three-layers of OS: host OS,
hypervisor, guest OS.
VIRTUALIZATION: TYPE 2
HYPERVISOR
Guest
Guest OS
OS
VM
VM
Hypervisor
Hypervisor
Host
Host Apps
Apps
Host
Host OS
OS
Hardware
Hardware
VIRTUALIZATION: TYPE 1
Directly runs on the host hardware (bare metal).
Faster, removed one layer of OS (the host OS).
Type 1 hypervisors:
Microsoft Hyper-V
VMware ESX
Citrixs Xen
VIRTUALIZATION
OS1
OS1
OS2
OS2
OS40
OS40
VM1
VM1
VM2
VM2
VM40
VM40
Hypervisor
Hypervisor
Hardware
Hardware
VIRTUALIZATION ADVANTAGES
Cost-effective
Less
hardware and require less space.
Reduce power consumption.
Reduced server maintenance.
Maximum resource utilization
Flexibility
VMs
are independent of each other.
Reconfigured, removed and restored easily.
Highly available.
CLOUD COMPUTING
CLOUD COMPUTING
Computing technology and infrastructure offered by
vendors on demand.
Based on virtualization techniques, hence offers the
benefits of virtualization
Services consumed based on pay per use model
No
up-front cost
No commitment
CLOUD COMPUTING
Services offered as
Software
Web services, Google Apps
Platform
as a Service (SaaS)
as a Service (PaaS)
Microsoft Azure, Google App Engine
Infrastructure
as a Service (IaaS)
Amazons Elastic Compute Cloud, Microsoft Azure VM role instance
http://en.wikipedia.org/wiki/File:Cloud_computing.svg
WHY CLOUD COMPUTING?
Virtualization benefits
Cost-effective,
reliable, flexible and portable
No hardware requirements
Vendor worry about software upgrades and
hardware failures
Highly
available
Application installed in the cloud - data centers
Access via internet browser
Large-capacity storage and high performance
computing
Add resources on-demand, scalable
CLOUD VENDORS
Microsoft Azure Platform
Windows
Azure Compute and Storage
SQL Azure
Windows Azure AppFabric
https://windows.azure.com/default.aspx
Amazon
Elastic
Compute Cloud
Simple Storage Service
Relational Database Service
Elastic Load Balancing
https://console.aws.amazon.com/ec2/home?region=us-e
ast-1
CLOUD COMPUTING
http://www.windowsazure.com
http://aws.amazon.com/ec2/
http://www.ibm.com/cloud-computing
http://www.google.com/apps/intl/en/business/
Salesforce.com
www.rackspace.com/Cloud
MICROSOFT AZURE PLATFORM
MICROSOFT AZURE PLATFORM
Provides developers with on-demand compute,
storage, networking and content delivery capabilities
to host, scale and manage Web applications on the
Internet through Microsoft data centers
Hosted in Microsoft data centers
North
America, Europe, Asia, available in 40 countries
An operating system for the Web?
Supports .NET, Java, PHP, Ruby
3 Month Free:
http://www.windowsazure.com/en-us/pricing/free-trial/
MICROSOFT AZURE COMPONENTS
WINDOWS AZURE COMPUTE
Windows environment for running applications
Windows
Server 2008R2
Platform as a Service
Web Role
Front
end
Pre-configured IIS
Host applications
Worker Role
No
IIS
Background processing
Windows services
Host WCF or Web Services
WINDOWS AZURE STORAGE
Handles large data
10TB
Highly scalable
Replicated and maintains
multiple copies
Fault
tolerant
Highly available
Secure
Storage Types
Blobs
http://<account>.blob.core.windows.net/<container>/<blobname>
Tables http://<account>.table.core.windows.net
Queues http://<account>.queue.core.windows.net/<QueueName>
FABRIC CONTROLLER
Part of Windows Azure
Applications are designed to run on multiple
VMs
Controls and manages virtual machines
Creates
new instance by allocating resources
Monitors instances
Switches from one instance to another
Hardware failure
Software crashes
No downtime
SQL AZURE
Cloud based database service
Relational
database
Reporting capabilities
Data Sync services
Built on Microsoft SQL Server
Similar to SQL Server 2008
Web
interface to manage the database
Supported T-SQL features
Tables,
views, joins, constraints, indexes, triggers,
DDL, DML queries
Stored procedures, user defined function
Supports SQL server authentication
WINDOWS AZURE APPFABRIC
Provides middleware platform
Caching
Improves performance
Distributed in-memory application cache
Session state management
Access
Control
Identity and access control to applications
Simplifies authentication and authorization
Service
Bus
Secure messaging
Communicate between distributed applications
WEB APP ON THE CLOUD
Three-tier Architecture
(4->3, WebServer/WebClient combined)
Azure three-tier design
PhotoGallery Application
Deployment on Microsoft Azure
THREE-TIER SYSTEM ARCHITECTURE
CLOUD APPLICATION DESIGN
WEB ROLES
Hosts PhotoGallery Cloud Application
Pre-configured
IIS
Use http or https endpoints
Exposed to outside world
Processes http page requests
Can communicate with worker roles
Highly scalable and load balanced automatically
Configure
number of instances and VM size
IMAGES AND DATA STORAGE
Blob Storage
Stores
product images and thumbnails
SQL Azure
Stores
product and customer information
Has URL to product images
SUMMARY
Virtualization
VMs
on Host Hardware
Type 1: native
Type 2: hosted
Cloud Computing
IaaS
PaaS
SaaS
On-demand
Pay
per use