2011-05-24

Tech-Ed 2011 Day 4 - Windows Azure

COS301 Inside Windows Azure, the Cloud Operating System with Mark Russinovich

Clearly this session was for IT Pros and for me really helped to de-mystify what Windows Azure is and is not. Mark Russinovich has moved from the consumer Windows platforms to the Windows Azure team and at least to the audience is the evangelist for Windows Azure (and avoids the Cloud buzzword).

Context was set at the start of this session, to outline the types of offerings for services:

  • IaaS Infrastucture as a Service – hardware and devices are managed, and the OS and up are up to you
  • PaaS Platform as a Service – up to the OS is managed, applications are up to you.
  • SaaS Software as a Service – everything including the application are managed.
Windows Azure is positioned as PaaS and an OS for the data center, providing a shared pool of compute, disk, and network.

The design philosophy of Windows Azure is to design for failure. Scaled out for capacity and redundancy, it uses short timeouts with retries, idempotent operations, stateless applications, and durable extended storage.

The Azure building blocks:
  • Compute – atomatically provisioned virtual machines
  • Storage – BLOBs, tables, and queues
  • SQL Azure – database functionality
  • AppFabric – middleware for caching and service bus
  • Service – this is the application you load as a Role, comprised of a service definition and configuration information.
Compute has a 99.95% connectivity SLA. This can only be achieved by requiring a minimum of 2 instances of each role. It was noted that Amazon does provide a similar SLA but the small print is that you must have at least 2 instances though they allow you to purchase only 1.

Compute resources (aka virtual servers running Windows Azure) are spread out between 2 to 5 update domains, which allows both rolling updates of roles (services) and regular patching; this is monthly based on Patch Tuesday.

In addition there are 2 or more fault domains per role (service). Each fault domain is essentially a server rack of 40 virtual server hosts on the same load balancer. This ensures virtual servers are not impacted by a single virtual host or entire rack outage.

There are 3 available roles that can be used in Windows Azure. Each must be stateless so that the loss of anything hosting one of these roles will not impact the service provided.
  • Web role – IIS7 and ASP.NET on Windows Azure
  • Worker role – arbitrary code on Windows Azure
  • VM role – uploaded VHD with customer configured operating system.
A service in a role is comprised of assigning a service (ServiceDefinition.csdef and ServiceConfiguration.csfg in a service.cscfg file) to the RDFE Service (Red Dog Front End a remnant of the Azure code name Red Dog which was named after the Pink Poodle) to the Fabric Controller (equivalent to the kernel of the cloud operating system).

A note on the Fabric Controller (which is now Mark’s focus), this handles all resource allocation, provisioning, lifecycle management, and health management of the roles. To provision a compute resource behind the scenes a virtual machine is created. A D: drive with a differencing VHD is created for the operating system, a C: drive with a differencing VHD is created for temporary storage, and an F: drive VHD for the application. The VM is brought up to PXE boot, boots to WinPE and does an automated installation of Windows Azure OS.  A virtual IP (for the OS) and dynamic IP (public facing IP for the role) are also provisioned. So long as you have your instance running at a location (and not deleted) you keep the same public IP. The load balancer probes the VM for health every 15 seconds, and is considered failed after two consecutive probe failures at which time a new VM is brought up to replace it.

This presentation is a must for any IT Professional as it relates the vague idea of the Microsoft “cloud” to terms we are familiar with.

0 comments: