building multi-tier web applications in virtual environments
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
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
HYPERVISORSHypervisors 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
Host OS
Hardware
Hypervisor Host AppsVM
Guest OS
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 Citrix’s Xen
VIRTUALIZATION
Hypervisor
Hardware
V M1 V M2 … V M 4 0
O S 1 O S 2 … O S 4 0
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 as a Service (SaaS) Web services, Google Apps
Platform as a Service (PaaS) Microsoft Azure, Google App Engine
Infrastructure as a Service (IaaS) Amazon’s Elastic Compute Cloud, Microsoft Azure VM role
instance http://en.wikipedia.org/wiki/File:Cloud_computing.s
vg
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?regio
n=us-east-1
CLOUD COMPUTING
http://www.windowsazure.comhttp://aws.amazon.com/ec2/http://www.ibm.com/cloud-computinghttp://www.google.com/apps/intl/en/business/
Salesforce.comwww.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
Storage (Data)
Fabric Controller
SQL Azure
Windows Azure AppFabric
Windows Azure Marketplace
Compute (Applications)
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
Azure Compute
Web Role Instance
Worker Role Instance
VM Role Instance
Load Balancer
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>
Azure Storage
Blobs
Tables
Queues
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
Presentation/Client Tier
Database
Application/ Business Logic Tier
Traditional three-tier architecture
Presentation/Client Tier
Azure SQL Database
Web Role (At least two instances) / Worker Role
Three-tier architecture (Azure Cloud)
Azure Storage
CLOUD APPLICATION DESIGN
Web Role Instance 2
PhotoGallery Application
Azure Blob Storage for storing images Web Role
Instance 1
Load Balancer
Azure SQL Database for storing customer and product data
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