How to setup availability sets on Windows Azure and deploy an MVP that will be….available….

A few weeks ago we wrote a post about “How to launch your MVP in a budget with BizSpark” at the Apirise blog. The post briefly explains how someone can build an early MVP with BizSpark and Azure without binding to the Microsoft technologies stack! This post is a sequel of the original post but a bit more technical this time.

What we’ll try to do in this post, is to demonstrate how we can deal with the “availability” of our application (or MVP in the current context) when we build it on a cloud platform like Azure. For this reason we’ll discuss concepts like the “Availability Sets” of the Azure cloud platform and what technologies we can use in order to utilize the availability that the cloud service offers to us. We’ll mess a bit with replication but having the availability in mind and not the scalability of our application, although the same principles more or less apply also when we want to scale our application.

So we’ll proceed by building an environment consisting of an Ubuntu server + Nginx (or apache) web server + MySQL + ElasticSearch on Microsoft Azure. I assume that this stack is quite common for many application and at the end we’ll also be able to identify what difference makes when a piece of software is written from the beginning with replication and in mind (yep I’m refering to the difference between ES and MySQL, in setup terms).

Let’s start…

Continue reading

How to Setup availability sets on Windows Azure together with a load-balanced set of endpoints

Availability Sets on Windows Azure

If you wonder why we care about availability sets you better read here

One VM == availability not guaranteed

We will need to setup availability sets and redundant Virtual Machines (VMs) and services for apparent reasons. We are going to implement an Availability set where problems on the datacenter where you host your application or scheduled maintenance tasks may not bring down your precious service.

According to Microsoft and by reading closely their Windows Azure SLA (until today) we see that Microsoft ensures a 99.95% availability if and only if you have availability sets deployed.

The way to setup availability sets and whatever is contained in them, depends heavily on the nature of your application.

Continue reading