Key Concepts of Cloud Computing
Published: 2024-05-10 21:02:10

__**Cloud computing is the on-demand delivery of computing services - such as servers, storage, databases, networking, software, analytics and intelligence - over the internet. Computer system resources especially data storage and computing power are available on-demand, without direct management by the user. Users, rather than acquiring and managing physical systems, as is with the case on premises, can rent these system resources from cloud service providers, paying for only what is used and hereby saving cost. Cloud service models can be broadly divided into infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS). Based on deployment model, cloud can also be classified as public, private, and hybrid.**__

_Now let's take a look at some key concepts in cloud computing._


## Virtualization

Virtualization is a process that allows a computer to share its hardware resources with multiple digitally separated environments. It is a technology used to create virtual representations of servers, storage, networks and other physical machines.

Virtualization uses software to create an abstraction layer over computer hardware(server), enabling the division of a single computer's hardware components—such as processors, memory and storage—into multiple virtual machines (VMs). Each VM runs its own operating system (OS) and behaves like an independent computer, even though it is running on just a portion of the actual underlying computer hardware.


## Scalability

Scalability in cloud computing refers to the ability of a system, application, or service to handle increasing workload demands by dynamically allocating and deallocating computing resources such as processing power, storage, and bandwidth.  

Cloud scalability offers a number of key benefits, including improved flexibility, better cost control, increased performance, and enhanced reliability. It allows you to scale your IT resources up or down quickly in response to changing business needs, which can help you optimize your operations, minimize downtime, and improve the overall performance of your IT infrastructure. It enables organizations to efficiently accommodate growth, handle spikes in user traffic, and maintain performance and availability as demand fluctuates.

Scalability could be vertical or horizontal. Vertical scaling (scaling up) involves increasing the capacity of individual resources, such as upgrading to a more powerful server with higher CPU, memory, or storage capacity. Vertical scalability can be achieved more easily through instance resizing or upgrading virtual machine configurations without service interruption. On the other hand, horizontal scaling (or "scaling out") focuses on adding more identical resources in parallel to handle increased demand. Horizontal scalability is commonly achieved through load balancing and auto-scaling mechanisms that distribute incoming traffic across multiple servers or instances and dynamically provision additional resources as needed.


## Agility

Agility in cloud computing is the rapid provisioning of computer resources. It is frequently used to describe the capacity to create, test, and launch software applications quickly. Agility provides users with faster access to computing resources. Users are able to rapidly scale up or down resources, add or remove services and make adjustments to configurations without significant delay or disruptions

Agility allows organizations to respond quickly to changing business needs, improve efficiency, enables faster innovation and deployment.


## High Availability

High Availability in cloud computing is the ability of a system or application to remain accessible and operational for a long period of time. It specifies a design that aims to minimize the downtime of a system or service. So, the main objective of high availability is to keep these systems and services continuously available.

In a high availability system, critical applications are often distributed across multiple servers, data centers, or even geographical regions.

Availability is expressed as a percentage of uptime in a year. What we generally see is availability measured between 99% to 100%. This means service with 100% uptime will work 24/7 throughout the year and the system will never fail. Now, that is pretty rare. On the other side, anything less than 99% should be a red flag and you should check what is restricting the provider to reach industry standards.


## Fault tolerance

Fault tolerance refers to the ability of a system to continue operating without interruption when one or more of its components fail. It involves designing systems with built-in resilience mechanisms to detect, isolate, and recover from failures, ensuring continuous availability and reliability of services.

Fault tolerance is essential for ensuring the reliability, availability, and resilience of cloud-based systems and services. By implementing redundancy, automatic failover, data replication, health monitoring, self-healing mechanisms, and geographic redundancy, organizations can mitigate the impact of failures and maintain uninterrupted operation of critical services.


## Global Reach

Global reach in cloud computing refers to the ability of cloud services and resources to be accessible from multiple geographic locations worldwide. This capability is essential for businesses and organizations that operate on a global scale or have users, customers, or offices distributed across different regions.

Major cloud providers like Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) maintain a network of data centers spread across various regions worldwide. These data centers are strategically located in different geographic locations to ensure proximity to users and compliance with local regulations.



## Elasticity

Elasticity refers to the ability of a cloud to automatically expand or compress the infrastructural resources on a sudden up and down in the requirement so that the workload can be managed efficiently. This helps to minimize infrastructural costs. It addresses those scenarios where the resource requirements fluctuate up and down suddenly for a specific time interval.


## Cloud Scalability vs. Cloud Elasticity

Scalability and elasticity in cloud computing are similar and often work together, though they have different definitions.

Simply put, scalability is the ability to add or subtract computing resources as needed. Elasticity is how fast you can adjust to and use those resources.

Scalability usually refers to the steady, planned addition of resources such as networking, processing power, or data storage capacity, that are needed for steady, sustained growth. On the other hand, elasticity tends to refer to how automatic the process is for adding or removing resources, often to respond to variable demand. For example, adding more processing power or storage capacity automatically to compensate for a spike in traffic, then decreasing it automatically when the spike is over.