cloud, setting, computing-4828390.jpg

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

Spread the love

Delivery of services like compute, storage and networking over the internet is known as Cloud Computing, and the provider of such services is known as Cloud Provider. Cloud computing has revolutionized the way businesses operate, allowing them to achieve high levels of efficiency, scalability, and flexibility. Cloud computing provides businesses with access to a range of computing resources, including storage, processing power, and software applications, on-demand and through the internet. In this article, we will explore the core concepts of cloud computing that enable businesses to achieve these benefits, including high availability, scalability, elasticity, agility, fault tolerance, and disaster recovery.

officer, task, clouds-4334581.jpg

High Availability

High availability is a key concept in cloud computing that ensures that applications and services are always available to users. High availability is achieved through redundancy, which involves deploying multiple instances of an application or service across different servers or data centers. If one instance of an application or service fails, another instance takes over seamlessly, ensuring uninterrupted access to the service.

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

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

High availability is crucial for businesses that rely on cloud computing to deliver mission-critical services, such as e-commerce websites, financial systems, and healthcare applications. Downtime can result in lost revenue, decreased productivity, and reputational damage. With high availability, businesses can ensure that their applications and services remain available, even in the event of hardware failure, network outages, or other disruptions.

Scalability:

Scalability is another key concept in cloud computing that enables businesses to expand or contract their computing resources as demand fluctuates.
Scalability allows businesses to quickly add or remove computing resources, such as servers, storage, or bandwidth, in response to changes in demand. This means that businesses can easily scale up to handle spikes in demand, such as during holiday shopping seasons, or scale down during slower periods, saving costs on unused resources.

Scalability is achieved through the use of elastic resources, such as virtual machines or containers, that can be quickly provisioned or de-provisioned as needed. Cloud providers offer a range of scaling options, including vertical scaling, which involves adding more resources to a single server, and horizontal scaling, which involves adding more servers to distribute the workload.

Scaling is the process of of allocating (adding) and deallocating (removing) resources to support desired workload.

There are 2 types of scaling:

Vertical Scaling: In this type of scaling, compute capacity of an existing resource is increased by adding more compute power (RAM or CPU) to support increased workload. Later, the same can be reduced when the workload decreases. Adding more compute power is scaling-up, and reducing the same is scaling-down.

Horizontal Scaling: In this type of scaling, compute capacity can be increased by adding more instances to support increased workload. Similarly, we can reduce the active instances once the workload goes down. Adding more instances to scale is scaling-out, and reducing the number of instances is scaling-in.

cloud, monitor, cloud computing-3017392.jpg

Elasticity:

Elasticity is the ability of the system to scale automatically. Elasticity is basically auto-scaling. Elasticity is a related concept to scalability, but with a focus on automating the process of adding or removing computing resources. Elasticity allows businesses to set rules or thresholds that trigger automatic scaling, based on metrics such as CPU utilization, memory usage, or network traffic. This means that businesses can scale their computing resources automatically, without human intervention, in response to changes in demand.

Elasticity is particularly useful for businesses that experience unpredictable spikes in demand or seasonal fluctuations, as it allows them to maintain a consistent level of performance, without over-provisioning resources or incurring additional costs.

Agility:

Agility is the ability to react quickly. Agility is a key benefit of cloud computing that enables businesses to quickly respond to changing market conditions, customer needs, or technological innovations. Agility allows businesses to rapidly develop, test, and deploy new applications or services, without the need for large capital expenditures or long lead times.

Agility is enabled by the cloud’s pay-as-you-go model, which allows businesses to easily experiment with new ideas, scale up or down as needed, and avoid costly investments in hardware or software. Additionally, cloud providers offer a range of tools and services that support agile development, such as continuous integration and delivery, containerization, and serverless computing.

In the cloud, it takes a minute or two to create a Virtual Machine that is up and running. On the other hand, it takes days or weeks when we submit a request to purchase a physical server and by when it gets delivered.

Agility enables users to be able to allocate and deallocate resources very quickly, and that is a huge benefit of the cloud.

Fault Tolerance:

Fault Tolerance is the ability of a system to remain up and running during component and service failure.
Fault tolerance is a concept in cloud computing that ensures that systems can continue to operate in the event of a hardware or software failure. Fault tolerance is achieved through redundancy, which involves deploying multiple instances of an application or service across different servers or data centers, as well as through monitoring and automated failover processes.

Fault tolerance is particularly important for businesses that require high levels of uptime, such as e-commerce websites, financial systems, and healthcare.

cloud computing, arithmetic in the cloud, saving data-626252.jpg

Disaster Recovery:

Disaster Recovery refers to a system’s capability to bounce back from an unforeseen event, such as floods, thunderstorms, earthquakes, or other natural or human-caused disasters that have caused damage to the main data center.

Utilizing Azure Backups (GRS – Geo-redundant), deploying applications across multiple regions, and replicating data in an alternate region can instill confidence when building applications, as it ensures the safety of your data in the event of a disaster.

Below are 3 main application components, and respective DR methods.

  1. Web Applications – Deploy in multiple regions
  2. Database – Enable GRS backups and Geo-replication
  3. Storage – Enable Geo-replication

***End***


Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *