Cloud Computing Concepts - High Availability, Scalability, Elasticity, Agility, Fault Tolerance and Disaster Recovery

Compute Power & Storage are the two most basic services provided by all cloud providers.

  • Compute Power - Compute Power is how much processing your computer can do. i.e. RAM, Processor
  • Storage - Storage is the volume of data that you can store on your computer. i.e. Hard Drive

What is Cloud Computing

Delivery of computing services and storage over the internet is known as Cloud Computing, and the provider of such services is known as Cloud Provider.

Cloud Concepts

Below are major cloud concepts in Azure or any other cloud platform.

  • High Availability
  • Scalability
  • Elasticity
  • Agility
  • Fault Tolerance
  • Disaster Recovery

Scalability

  • Scalability is the ability to scale. Scaling is a process of allocating (adding) and deallocate (removing) resources to support the desired workload.
  • Scaling methods: Auto-scaling and Manual-scaling
  • Scaling can be done in two ways:
    • Vertically: Compute capacity can be increased by adding more compute power (RAM or CPU) to a machine to support the desired workload. This is known as Vertical Scaling. Adding more compute is scaling-up, and reducing compute is scaling-down.
    • Horizontally: Compute capacity can be also be increased by adding more instances to support workload. This is known as Horizontal Scaling. Adding more instances to scale is scaling-out, and reducing the number of instances is scaling-in.

Elasticity

Elasticity is the ability of the system to scale dynamically/automatically. Elasticity is basically auto-scaling.

Agility

Agility is the ability to react quickly. In the cloud, Agility is the ability to be able to allocate and deallocate your resources in a very short time. As it takes days or weeks when we submit a request for resources and by when it gets delivered.

Fault Tolerance

Fault Tolerance is the ability of a system to remain up and running during component and service failure. For example, your application running on a Web App or VM should remain up and running even if underlying server hardware fails. A fault-tolerant cloud system will be able to manage to quickly shift to another copy of the server in the data-center.

Disaster Recovery

Disaster Recovery is the ability of a system to recover from a disaster such as floods, thunder-storm, earth-quake, or any other natural or human-induced disaster that has destroyed the primary data-center.

By taking advantage of azure backups (GRS - Geo-redundant), deploying your applications in multiple regions, and data-replication in another region, you can confidently build apps knowing that your data is safe in case of any disaster occurs.

High Availability

High Availability can be calculated by a simple formula: HA = Up Time / Life Time

High Availability is the ability of the system to up and running with very little (planned or unplanned) downtime. Azure offers SLA (Service Level Agreement) for every azure resource for High Availability.