730 likes | 909 Views
COS 497 – Cloud Computing. 8. Microsoft Windows Azure. Introducing Windows Azure • Windows Azure is Microsoft's public cloud platform. • You can use this platform in different ways.
E N D
COS 497 – Cloud Computing 8. Microsoft Windows Azure
Introducing Windows Azure • Windows Azure is Microsoft's public cloud platform. • You can use this platform in different ways. - For instance, you can use Windows Azure to build a web application that runs and stores its data in Microsoft datacenters. - You can use Windows Azure just to store data, with the applications that use this data running inside your computer (that is, outside Windows Azure). - You can use Windows Azure to create virtual machines for development and test. - You can use Windows Azure to build massively scalable applications. https://www.windowsazure.com/en-us/manage/services/fundamentals/intro-to-windows-azure/
Windows Azure is hosted by Microsoft’s “mega” data centers around the world.
Microsoft uses the term “Fabric” to denote their servers, with VMs running Windows Server or Linux. Windows Azure
Windows Azure • Windows Azure is an OS for the data center • Model: Treat the data center as a machine! • Handles resource management, provisioning, and monitoring • Manages application lifecycle • Allows developers to concentrate on business logic • Provides common building blocks for distributed applications • Reliable queuing, simple structured storage, SQL storage • Application services like access control and connectivity
Windows Azure Platform Building Blocks Fabric Controller FC • Compute • Web Role • Worker Role • VM Role • Storage • Tables • Blobs • Queues Virtual Network • Connect • Traffic Manager
Datacenter Architecture Datacenter Routers Aggregation Routers and Load Balancers Agg Agg Agg Agg Agg Agg LB LB LB LB LB LB LB LB LB LB LB LB Top of Rack Switches TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR TOR … … … … … … Racks Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU PDU Power Distribution Units
Server PCs live in an expensive data center Microsoft Data Center in Dublin, 27,000 m2, 22 MW, US$ 500 M
A Cluster of Machines in a Data Center Azure Fabric Controller (FC) “owns” this hardware. Fabric Controller is the kernel of the Azure OS. Highly-available Fabric Controller (FC)
The Fabric Controller (FC) • The “kernel” of the Windows Azure operating system • Manages data center hardware • Manages Windows Azure services • Four main responsibilities: • Data center resource allocation • Data center resource provisioning • Service lifecycle management • Service health management • Inputs: • Description of the hardware and network resources it will control • Service model and binaries for cloud applications Server Kernel Process Datacenter Fabric Controller Service Word SQL Server Exchange Online SQL Azure Windows Kernel Fabric Controller Server Datacenter Conventional Cloud
Windows Azure Compute Fabric Controller • “Own” all data center hardware. • Uses inventory to host services. • Deploys applications to free resources. • Maintains the health of those applications. • Maintains health of hardware. • Manages the service life cycle starting from “bare metal”.
Aside: Paxos Distributed Algorithm Paxos is a family of protocols (i.e. algorithms) for solving consensus in a network of unreliable processors– non-Microsoft proprietary. Consensusis the process of agreeing on one result among a group of participants. This problem becomes difficult when the participants or their communication medium may experience failures – This happens frequently in data centers! http://en.wikipedia.org/wiki/Paxos_%28computer_science%29 http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf
FC Installs An Optimized Hypervisor … Steps of Fabric Controller (FC) to initiate a task
Each VM Has… At Minimum CPU: 1.5-1.7 GHz x64 Memory: 1.7GB Network: 100+ Mbps Local Storage: 500GB Up to CPU: 8 Cores Memory: 14.2 GB Local Storage: 2+ TB
FC Then Installs the Azure Platform Compute Storage http://www.microsoft.com/en-us/download/details.aspx?id=35473
Windows Azure Compute Service A closer look Web Role Worker Role main() { … } HTTP ASP.NET, WCF, etc. IIS Load Balancer Agent Agent Fabric VM
• Notice many worker and web roles in many racks. • There are several instances of Fabric Controller instances running in various racks in data centers. • One FC is elected to act as the primary controller. - If it fails, another picks up the slack. - There are fabric controllers that are redundant.
Compute Execution Models Windows Azure provides different options for executing applications - Virtual Machines (aka IaaS) - Web Sites - Cloud Services (aka PaaS)
• Each of these approaches can be used separately. • • You can also combine them to create an application that uses two or more of these options together. • Next, look at three Azure services …
https://www.windowsazure.com/en-us/manage/services/fundamentals/compute/https://www.windowsazure.com/en-us/manage/services/fundamentals/compute/ 1. Virtual Machines • Windows Azure Virtual Machines (VM)gives you the ability to create virtual machines on demand, whether from a standard image or from one you supply. • This is Microsoft’s Infrastructure as a Service (IaaS). Note: VHD (Virtual Hard Disk) is a file format which represents a virtual hard disk drive (HDD). It may contain what is found on a physical HDD, such as disk partitions and a file system, which in turn can contain files and folders. It is typically used as the hard disk of a virtual machine. It contains the virtual machine’s image.
• As the figure shows, you can create virtual machines using either the Windows Azure Management Portal or the REST-based Windows Azure Service Management API. • The Management Portal can be accessed from any popular browser, including Internet Explorer, Mozilla, and Chrome. • For the REST API, Microsoft provides client scripting tools for Windows, Linux, and Macintosh systems.
• However you access the Azure platform, creating a new VM requires choosing a virtual hard disk (VHD) for the VM’s image. • These VHDs are stored in Windows Azure Blobs storage, and you have two choices: upload your own, or use VHDs provided by Microsoft in the Windows Azure Virtual Machines gallery. • The VHDs in the gallery include Windows Server 2008, Windows Server 2008 with SQL Server, and Windows Server 2012. The gallery also holds Linux images
• Once you choose the image that will be the basis for your new VM, you specify other details about it. • One important detail is its size - how many CPU cores, how much memory, and how much disk space it will have. - Essentially configuring the VM • You can choose the right VM size to suit your application’s compute and storage requirements.
Each VM Has … • At Minimum • CPU: 1.5-1.7 GHz x64 • Memory: 1.7GB • Network: 100+ Mbps • Local Storage: 500 GB • Up to • CPU: 8 Cores • Memory: 14.2 GB • Local Storage: 2+ TB
Available machine sizes and their characteristics are listed here.
• With Windows Azure Virtual Machines, you first create and configure the environment your application will run in, then you deployyour application into this environment. • You are responsible for managing much of this “world”, doing things such as deploying new patched versions of the operating system in each VM.
Example An application running in Windows Azure Virtual Machines can use SQL Server for storage.
2. Web Sites • One of the most common things that people do in the cloud is run web sites and web applications. • Windows Azure Web Sites provides a managed web environment using Internet Information Services (IIS), i.e. web hosting. • You can move an existing IIS web site into Windows Azure Web Sites unchanged, or you can create a new one directly in the cloud.
• Once a web site is running, you can add or • remove instances dynamically, relying • on Web Sites to load balance requests • across them. • • Windows Azure Web Sites offers both a • shared option, where your web site runs in • a virtual machine with other sites, and a way • for a site to run in its own VM. • • For development, Windows Azure Web Sites supports .NET, PHP, and Node.js, along with SQL Database and MySQL for relational storage. • • It also provides built-in support for several popular applications, including WordPress, Joomla, and Drupal.
Windows Azure Web Sites supports static web sites, popular web applications, and custom web applications built with various technologies.
Cloud Services • Windows Azure Cloud Services is Microsoft’s Platform as a Service (PaaS), providing a managed platform for developers.
• Like the other Windows Azure Compute options, Cloud Services relies on VMs – but here they are called roles. • There are two types of roles: - instances of web rolesrun a variant of Windows Server withIIS – web-based user interface - instances of worker rolesrun the same Windows Server variant withoutIIS– compute engine. • For example, a simple application might use just a web role, while a more complex application might use a web role to handle incoming requests from users, then pass the work those requests create to a worker role for processing.
• To use it, you create an application using a technology such as C#, Java, PHP, Python, Node.js. • • Your code then executes in virtual machines (referred to as instances) running a version of Windows Server or Linux. • • Butthese VMs are distinct from the ones created with Windows Azure Virtual Machines. • • For one thing, Windows Azure itself manages them, doing things like installing operating system patches and automatically rolling out new patched images. • • Windows Azure also monitors the VMs, restarting any that fail.
With Cloud Services, you do notcreate virtual machines. Instead, you provide a configuration file that tells Windows Azure how many of each you would like, such as three web role instances and two worker role instances, and the platform creates them for you. You still choose what size those VMs should be - the options are the same as with Windows Azure VMs - but you do not explicitly create them yourself. If your application needs to handle a greater load, you can ask for more VMs, and Windows Azure will create those instances. If the load decreases, you can shut those instances down and stop paying for them.
Windows Azure Compute Service A closer look