The launch of Windows Azure has coincided with the launch of the entire cloud computing initiative from Microsoft, marks the traditional software giant’s biggest move into the Internet cloud and into the software-as-a-service business model.
Azure ties Microsoft’s existing software development tools into a platform for deploying applications in the cloud, competing with Amazon Web Services, Google App Engine and others. Given all the discussion of whether businesses can depend on the cloud, one of Azure’s big selling points will probably be its touted reliability. Microsoft says that Azure builds the management into the platform and the applications themselves.
The Windows Azure Fabric provides an Internet-scale hosting environment that lives on Microsoft’s data centers. The hosting environment provides a runtime execution environment for managed code, and might in the future include support for native code. The fabric handles load balancing and resource management and automatically manages the life cycle of a service based on requirements established by the owner of the service. The developer specifies the service topology, the number of instances to deploy, and any other necessary configuration settings. The fabric deploys the service and manages upgrades and failures.
A Windows Azure service is built from one or more roles which define a component to run in the execution environment; within the fabric, a service may run one or more instances of a role. This is the base platform that provides a generic cloud computing platform for developers to host applications on. Currently there are two types of compute services that can be deployed on Azure:
* Web Role: This currently is a WebForms ASP.Net application or another words its a web application accessible via an HTTP and/or an HTTPS endpoint. A web role is hosted in an environment designed to support a subset of ASP.NET and Windows Communication Foundation technologies.
* Worker Role: A worker role is a background processing service. This is more like a Windows Service that is deployed on the cloud. A worker role may communicate with storage services and with other Internet-based services. It does not expose any external endpoints. A worker role can read requests from a queue defined in the Queue storage service. It can make outgoing connections but incoming connections are disallowed. But again you get the benefits of load balancing and failover.