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 OS VM Hypervisor Host Apps Host OS 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 Citrix’s Xen VIRTUALIZATION OS 1 OS 2 … OS 4 0 VM 1 VM 2 … VM 4 0 Hypervisor 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 as a Service (SaaS) Platform as a Service (PaaS) Microsoft Azure, Google App Engine Infrastructure as a Service (IaaS) Web services, Google Apps Amazon’s 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=useast-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 Compute (Applications) Storage (Data) SQL Azure Windows Azure AppFabric Fabric Controller Windows Azure Marketplace Windows Azure 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 Web Role Instance Load Balancer Worker Role Instance VM Role Instance Azure Compute WINDOWS AZURE STORAGE Handles large data 10TB Highly scalable Replicated and maintains multiple copies Fault tolerant Highly available Blobs Tables Queues Azure Storage 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 Presentation/Client Tier Application/ Business Logic Tier Database Traditional three-tier architecture Presentation/Client Tier Web Role (At least two instances) / Worker Role Azure SQL Database Three-tier architecture (Azure Cloud) Azure Storage CLOUD APPLICATION DESIGN Web Role Instance 1 Load Balancer Web Role Instance 2 Azure Blob Storage for storing images Azure SQL Database for storing customer and product data PhotoGallery Application 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