Highly Scalable and Available Architecture — Differences and Solutions — Part I

vinoth rao
3 min readSep 9, 2022

--

Photo by Clément Hélardot on Unsplash

Lets start with some trivial questions.

Is Available and Scalable architecture are similar? If your application is highly available does that mean it is also scalable ?

I know everybody's answer will be no.

Then what’s the difference between these two? What are the building blocks you need to have in the architecture which will make your system highly available and scalable?

Lets look into it.

First lets differentiate between scalable and available.

Available — your application is up and running all the time, 24*7 without any downtime or failure

Scalable — your application is able to respond to as many requests by increasing its throughput.(automatically- thanks to cloud)

Lets dive a bit deep with an example.

You have an application which is deployed in one of the azure region “South India”. For some reason(data center caught fire) the “South India” region went down. That means your application also not available to service any requests.

You have another application which is deployed in a VM with capacity of 2 gb RAM,40 GB ROM. For example, lets consider it can process up to 100 requests per second. Due to a black Friday sale , people are going crazy and more people are trying to access your application. The request rate is going above 200 per second. Unfortunately your system will not be able to handle that many request. eventually will fail and go down.

You see the difference?

Not yet. Its ok. Lets see how we can resolve this and it might give an idea.

How to solve availability issue?

Simple. By having a backup and navigate to backup when the original fails. (We will see how to have backups in later parts)

In the above scenario you can have another VM running in another region like “Central India” with the same configuration as like “South India”. So when “South India” is down, the traffic can be automatically routed to “Central India”, which makes your application always available.

But this is not the scalable architecture. Why because the configurations are similar in another region. So, In case of second scenario the application will still fail, since it will not be able to process that many requests, even though it is available in another region up and running.

How to make applications scalable? By adding more resources like CPU/Storage or adding VMs to the same region depending on the demand. In this example on a Black Friday day event.

Hopefully now the differences are clear.

Lets see with a diagram.

Highly Available Architecture
Highly Scalable architecture

We can combine both to make the applications highly available and scalable.

Why it is so important that your application should be highly available and scalable?

It really boils down to the point how much of a loss you are going to incur, may be data or money , if your application goes down.

Lets take an example of Amazon. Can you imagine how much money/data it will lose if it is not accessible in India for a minute? How many customers it will lose? How many orders it will lose? That’s huge right.

That’s why you need to have application that’s downright scalable and available.

In the next part we will discuss what are the options available in Azure cloud to make your applications highly available/scalable and how you can leverage it.

--

--