300 likes | 466 Views
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.
E N D
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 • 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 VM1 OS1 VM2 OS2 … … VM40 OS40 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 • 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 • 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-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 • 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/
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
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