KEY CONCEPTS IN CLOUD COMPUTING

Afeez Adeyemo - Sep 11 - - Dev Community

This article explains basic key concepts in cloud computing.

1.Virtualization
It is a technology that makes it possible to create multiple simulated environments or dedicated resources from a single, physical hardware system. It uses software to create an abstraction layer over the hardware, enabling the division of a single computer’s resources—such as processors, memory, and storage—into multiple virtual machines (VMs). Each VM can run independently with its own operating system and applications, acting like an independent computer.

This enables key benefits such as Resource efficiency, cost savings, flexibilty/scalability and improved disaster recovery.

2. Scalabilty
Scalability is a concept that refers to the ability to efficiently expand or decrease resources as required. It ensures that resources are avaialable as required.

Scalabailty can be horizontal or vertical. Horizontal involves assing more virtual machines (VMs) to handle increased load. It is like increasing the width of a drainage channel to handle more water during heavy rains. scaling.

Vertical scaling involves adding more resources e.g CPU, memory and storage etc. to an existing virtual machine. Its like upgrading power generator to make it more powerful.

Scalability gives a system the ability to handle growth and changing work loads without sacrificing efficiency, which is crutial in a rapidly changing business environment.

*3. Agility *
Agility refers to the ability to quickly and efficiently adapt to changing demands and conditions. Below are some key aspects of agility in virtualization:

Rapid Provisioning: Virtualization allows for the quick creation and deployment of virtual machines (VMs) and resources. This means that new environments can be set up in minutes rather than days or weeks1.

  • Dynamic Resource Allocation: Resources such as CPU, memory, and storage can be dynamically allocated and reallocated as required. This ensures optimal performance and efficient use of resources.

  • Flexibility: Virtualization provides the flexibility to run multiple operating systems and applications on a single physical machine. This allows for better utilization of hardware and easier management of different workloads.

  • Scalability: Virtual environments can be easily scaled up or down to meet demand. This is particularly useful in cloud computing, where resources can be adjusted in real-time to handle varying workloads.

  • Improved Disaster Recovery: Virtualization simplifies backup and recovery processes, allowing for quicker restoration of services in case of a failure.

*4. High availability (HA) *
HA refers to the ability of systems to remain operational with little or no downtime, even in the event of hardware or software failures. Here are some key area of HA:

  • Redundancy and Failover Systems: This entails having secondary resources, such as additional virtual machines (VMs) and duplicated critical infastructure (e.g., power supplies, network connections). Thes failover systems automatically switch to these secondary systems when a failure is detected, minimizing downtime

  • Network Partitions: In case of network failures, HA systems can detect and manage network partitions, ensuring that a subset of the cluster’s hosts can still communicate and function.

  • VM and Application Monitoring: Monitoring tools can restart individual VMs or applications if they become unresponsive, ensuring no downtime.

  • Load Balancing and Resource Allocation: Effective load balancing distributes network or application traffic across multiple servers, optimizing performance and ensuring that no server is overloaded.

  • Clustered Virtualization Hosts: By grouping servers into a cluster, interuptions are avoided even when one server within a cluster is down. This setup allows for real-time replication of data and applications across the cluster.

5. Fault Tolerance
This attribute ensures that systems remain in operation even when there are failures with either hardware or software. Fault tolerance is insured by putting in place the following;

  • Redundant systems which are basically identical secondary VM's, which comes up immediately the primary is downn thereby ensuring continous operation.

  • The primary system is continously replicated/backed up into the secondary system.

  • The primary system automatically switching to the secondary in the event of failure ensuring continous smooth operation.

  • The primary and secondary VMs have seperate host to ensure a single failure does not affect the both.

  • The systems continously monitors the both systems to ensure faults are detected promptly.

6. Global reach
This is a fundamental advantage in cloud computing, refering to the ability of cloud services to be accessed and used anywhere in the globe. Other advantages include Geographic distribution, Scalabilty, Disaster recovery, Cost efficiency and Data Compliance and sovereignty.

7. Difference between Elasticity and Scalabilty.

Scalabilty is basically the ability to upgrade/downgrade a system to manage workload, while Elasticity is the ability of a system to dynamically adjust its resource allocation in respond to changing demand.

A good example is when 4 lane bridge divided into 2 lanes each on both sides. Elasticity is when the divide can change one side to 3 lanes when the side is busier, while scalabilty is when the bridge can be easily expanded to 6 lanes (with 3 lanes on both sides) to cater to for population growth and increased traffic flow.

. . . . . . . . . .