Download in PDF
  1. Abstract
  2. Introduction
  3. Background
  4. Deploying and Running MoodleAzure
  5. Packaging, Configuring and Deploying the Solution
  6. Implementation Details: What Changed
  7. Horizontally Scaling the Application
  8. Conclusion


The goal of Windows Azure is to provide a practical platform on which applications are inherently highly available, highly reliable, and highly scalable. Windows Azure reduces the total cost of ownership by taking the required infrastructure to a large server cluster called “the cloud”. Windows Azure is designed to be elastic. This means that if an application requires more CPU, RAM, bandwidth, or disk space, instead of focusing on scaling vertically (i.e. adding more RAM or upgrading the CPU in the server that runs the application), you deploy copies – called instances –  of that same application so that the load is evenly distributed, and a larger user base get incrementally supported.

If this is not the first article you read about deploying PHP applications on Windows Azure, you are probably wondering what is different about this one. Currently, most articles describing the process of deploying and running FastCGI applications on Windows Azure explain how to do such deployments in single-instance scenarios, and do not cover the architectural changes that are needed in order to tap into Azure’s full capabilities. In other words, it is easy to deploy single-instance web roles and worker roles. But when it comes to making applications highly available, scalable, reliable, we need to know what needs to change in the codebase in order get all of Azure’s benefits. Per the Windows Azure Compute SLA – or Service Level Agreement –  Microsoft guarantees that when you deploy two or more role instances in different fault and upgrade domains your Internet facing roles will have external connectivity at least 99.95% of the time. For you, it means that you need to have at least 2 instances of a web application to benefit from the above statement.

Last edited Oct 28, 2010 at 4:36 PM by unosquare, version 2


No comments yet.