building multi-tier web applications in virtual environments

30
BUILDING MULTI-TIER WEB APPLICATIONS IN VIRTUAL ENVIRONMENTS

Upload: arlais

Post on 25-Feb-2016

71 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Building Multi-tier Web Applications in Virtual Environments

BUILDING MULTI-TIER WEB APPLICATIONS IN VIRTUAL ENVIRONMENTS

Page 2: 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

Page 3: Building Multi-tier Web Applications in Virtual Environments

VIRTUALIZATION

Page 4: Building Multi-tier Web Applications in Virtual Environments

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

Page 5: Building Multi-tier Web Applications in Virtual Environments

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

Page 6: Building Multi-tier Web Applications in Virtual Environments

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.

Page 7: Building Multi-tier Web Applications in Virtual Environments

VIRTUALIZATION: TYPE 2 HYPERVISOR

Host OS

Hardware

Hypervisor Host AppsVM

Guest OS

Page 8: Building Multi-tier Web Applications in Virtual Environments

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

Page 9: Building Multi-tier Web Applications in Virtual Environments

VIRTUALIZATION

Hypervisor

Hardware

V M1 V M2 … V M 4 0

O S 1 O S 2 … O S 4 0

Page 10: Building Multi-tier Web Applications in Virtual Environments

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.

Page 11: Building Multi-tier Web Applications in Virtual Environments

CLOUD COMPUTING

Page 12: Building Multi-tier Web Applications in Virtual Environments

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

Page 13: Building Multi-tier Web Applications in Virtual Environments

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

Page 14: Building Multi-tier Web Applications in Virtual Environments

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

Page 15: Building Multi-tier Web Applications in Virtual Environments

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

Page 17: Building Multi-tier Web Applications in Virtual Environments

MICROSOFT AZURE PLATFORM

Page 18: Building Multi-tier Web Applications in Virtual Environments

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/

Page 19: Building Multi-tier Web Applications in Virtual Environments

MICROSOFT AZURE COMPONENTS

Windows Azure

Storage (Data)

Fabric Controller

SQL Azure

Windows Azure AppFabric

Windows Azure Marketplace

Compute (Applications)

Page 20: Building Multi-tier Web Applications in Virtual Environments

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

Page 21: Building Multi-tier Web Applications in Virtual Environments

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

Page 22: Building Multi-tier Web Applications in Virtual Environments

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

Page 23: Building Multi-tier Web Applications in Virtual Environments

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

Page 24: Building Multi-tier Web Applications in Virtual Environments

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

Page 25: Building Multi-tier Web Applications in Virtual Environments

WEB APP ON THE CLOUD Three-tier Architecture

(4->3, WebServer/WebClient combined) Azure three-tier design PhotoGallery Application Deployment on Microsoft Azure

Page 26: Building Multi-tier Web Applications in Virtual Environments

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

Page 27: Building Multi-tier Web Applications in Virtual Environments

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

Page 28: Building Multi-tier Web Applications in Virtual Environments

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

Page 29: Building Multi-tier Web Applications in Virtual Environments

IMAGES AND DATA STORAGE Blob Storage

Stores product images and thumbnails SQL Azure

Stores product and customer information Has URL to product images

Page 30: Building Multi-tier Web Applications in Virtual Environments

SUMMARY Virtualization

VMs on Host Hardware Type 1: native Type 2: hosted

Cloud Computing IaaS PaaS SaaS On-demand Pay per use