PDC 2008: Ray Ozzie and company present the cloud

Later, Corporate Vice President Amitabh Srivastava -- one of the senior executives who worked on Azure secretly, and who spoke at length Monday with BetaNews' Nate Mook -- added some more concrete insights. Specifically, he introduced developers to the categories of services that perform tasks and communicate with one another in the Azure service cloud:
What we have built is the kernel of Microsoft's cloud platform. Kernels don't demo well. They don't have the glitz or the glitter, but a good one allows others to create killer apps. And that's exactly what we have done: We have built a platform to allow you to build your killer apps.
Windows Azure is a scalable hosting environment for you to deploy your apps in our cloud, whether your app needs us for a fraction of the server or many servers, Windows Azure will scale outwardly. Each processor is virtualized with a very efficient hypervisor. Our hypervisor has been optimized for the cloud design point using the latest hardware virtualization support.
Unlike traditional OSes that manage just a single machine, Windows Azure as an operating system for the cloud manages the entire global data center infrastructure. The global data center infrastructure is vast and complex. It ranges from processors to motherboards to racks to containers to data centers, distributed across the globe. Windows Azure manages all of this complexity for you. In addition, it provides a layer of abstraction, like the device driver model in a traditional OS, to ease your programming burden.
Managing apps in this complex environment is challenging. For example, how do you you upgrade your app without bringing it down or degrading its performance; or, how do you upgrade an underlying OS without degrading your app's performance or bringing it down? Windows Azure can handle both of these scenarios. Windows Azure separates the app from the underlying OS, so both the app and the OS are managed separately. In fact, at the heart of Windows Azure is our fabric controller, which manages the lifecycle of your service from deployment to upgrade and configuration changes. The fabric controller views all the data centers as a fabric of shared resources that can be managed and shared with all the services that run there. The fabric controller maintains the health of your service.
When you want to change your service, you specify the design and state, and the fabric controller very carefully makes the necessary changes. The fabric controller manages services, not just servers. This is a crucial point, because this allows us to automate the lifecycle of a service. To guide the fabric controller, you specify a service model which defines the architecture of the service. The service model contains few high-level abstractions: For example, a service consists of roles...Roles talk to each other through channels, which are switches and load balancers; services talk to each other through interfaces, and the service model also contains the configuration settings, like the number of instances for a particular role.
Using these simple constructs, you can compose complex service models to model certain enterprise apps.