Cloud Computing & 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
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
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 OS1 OS2 … OS40 VM1 VM2 … VM40 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. Disaster recovery, server crashes and software upgrades by copying image files to another machines
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.svg
Why Cloud Computing? Virtualization benefits No hardware requirements 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 Amazon 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-east-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
Professional Web Service Examples Microsoft Azure: https://azure.microsoft.com Education: https://azure.microsoft.com/en-us/community/education/ Students: https://azure.microsoft.com/en-us/free/ Free Courses: https://mva.microsoft.com/product-training/microsoft-azure
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 Handles administrative tasks – installing software updates, applying patches, Scalable – add or remove VMs to handle traffic Handles load balancing and resource management when more than two instances is used
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 Compute service is built on one or more roles Depending on number of CPUs, CPU frequency, memory size and storage capacity instances could be Extra small, small, medium, large, extra large
Windows Azure Storage Handles large data Highly scalable 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> Blobs data objects can be as large as 50GB. Storage account have multiple Containers, which are referred to a set of blobs Tables store data in structured manner and has partition key and row key Data stored in tables and tables have multiple entities or rows to store set of properties.
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 Built on Microsoft SQL Server 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 Cloud version of ssrs SQL Azure does not support distributed queries, transactions, global temp tables, system tables and configuration options, replication, mirroring, SSIS, SQL agent and jobs
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 Cloud Computing VMs on Host Hardware Type 1: native Type 2: hosted Cloud Computing IaaS PaaS SaaS On-demand Pay per use