Ever wondered how Windows Azure works?

WindowsazuresmallDavid Lemphers has a post here that digs into a few of the details, and is worth a look.  And thanks to Steve Clayton for pointing it out.  

See David’s post for pretty pictures and more details on how the VMs are apportioned, how much effective compute capacity each Guest VM has, etc.  For more details on how to running apps against roles, see the Windows Azure site here

Set Up:

  • New machines boot to network, and get a maintenance OS
  • Maintenance OS talks to Fabric Controller
  • Fabric Controller tells the Maintenance OS to create a Host Virtual Machine
  • Host VM talks to Fabric Controller
  • Fabric Controller tells Host VM to create a guest VM.  There can be many Guest VMs
  • Once a Guest VM is set up, a Role can can be added.  A Role is the virtual server that executes a customers’ application logic.

VM Coordination and Isolation:

  • All application logic exists within Guest VMs, with the Guest VMs keeping applications isolated from each other
  • To ensure one customer VM doesn’t overwhelm another, all VMs are balanced to keep network, CPU, etc., evenly apportioned
  • All Guest VMs communicate with the outside world through a VMBus on the Host VM, as only the Host VM can talk to the outside world. 

Running an App:

  • Guest VMs host Roles
  • Roles today can be a Web Role or a Worker Role.  Additional roles are likely to be available in the future
  • Web Roles are essentially like IIS
  • Worker Roles do other computational tasks, as instructed by the Web Role, but do not communicate with outside world
  • Web Role hands tasks off for Worker Role to execute by adding them to a Queue