DEV Community

Cover image for Virtualization vs Cloud Computing: What You Need to Know
Wilfred Andrew Delamy
Wilfred Andrew Delamy

Posted on

Virtualization vs Cloud Computing: What You Need to Know

Every complex technology has underlying fundamentals that are crucial to know. An understanding of the fundamentals makes the seemingly complex tech simple.

Now, let’s delve into the fascinating world of cloud computing. At its core, it’s all about servers (essentially, supercharged computers) and virtualization over the internet.

Let’s start with a computer. A computer is an electronic device that has many parts, namely:

  • Central Processing Unit (CPU)
  • Random Access Memory (RAM)
  • Storage Drive
  • Motherboard

As a computer user (end-user), you cannot interact directly with the various hardware components. For example, compose an email. To enable the interaction, you will need an Operating System (OS).

An OS is software that enables interoperability between the end user and a computer’s hardware components. You may need additional software, such as Microsoft Outlook, to compose the email.

In an enterprise environment, servers (powerful computers) are used to deploy and provide various services to various end-users (staff and clients). Purchasing multiple servers can quickly become expensive. How, then, are companies able to keep down the cost of buying additional servers while providing all the services to staff and clients? Aha, virtualization.

Virtualization is a technology that allows a single physical server to act as multiple virtual servers. These virtual servers, also known as virtual machines (VMs), are like independent computers with their own operating system and application software. In this setup, the physical computer that hosts the virtualization software is the ‘Host’, and the VMs are the ‘Guests’.

Speaking of a hypervisor, there are two types: Type 1 and Type 2.

A Type 1 Hypervisor, also known as a bare-metal hypervisor, runs directly on the Host’s hardware to control the hardware and manage guest operating systems.

In contrast, a Type 2 Hypervisor, also known as a hosted hypervisor, runs on the Host’s operating system. After all, it runs on a host (physical computer) operating system as a software application.

Examples of Type 1 Hypervisors include Microsoft Hyper-V, VMware vSphere by Broadcom, Proxmox, Citrix Hypervisor, KVM, Nutanix AHV, and Xen Project.

Examples of Type 2 Hypervisors include Oracle VirtualBox, VMware Workstation by Broadcom, Parallel Desktop, and QEMU.

Cloud Computing, which utilizes Type 1 Hypervisor service to provide cloud services, is a cost-effective solution. It offers the on-demand delivery of Information Technology (IT) resources (compute, storage, database, networking) over the internet, making it a financially sound choice for businesses.

Like any domain, cloud computing has jargon that can easily become overwhelming. Below are a few terms used in cloud computing.

  • Scalability in cloud computing is the ability to quickly and easily increase (grow) or decrease (shrink) the size or power of a cloud resource based on demand.

There are two types of Scalability: Vertical Scaling and Horizontal Scaling.

Vertical Scaling allows you to increase the size of a resource (scaling up) or decrease its size (scaling down). An example, a VM that was created for a web server with 32GB of RAM, based on the high demand on the website, the size of the memory is scaled up to 64GB and when the demand drops, the size is decreased (scaled down) to 32GB.

Horizontal Scaling, on the other hand, allows either adding more resources (scaling out) to the existing resources or removing some of them (scaling in). Coming back to our web server example, scaling out will involve adding additional physical RAM: moving from a single 64GB RAM module to five 64GB modules. When demand for physical RAM decreases, scaling down means reducing the number from five to one.

In summary, Scalability is the ability of a system to scale, whether by allocating (adding) or deallocating (removing) resources.

  • Elasticity in cloud computing is the ability of a cloud system to automatically scale computing resources like processing power, memory, and storage up or down in real-time to meet fluctuating demands.

Elasticity allows businesses to precisely match resource allocation to demand, helping prevent both overpaying for unused capacity and under-resourcing during peak hours.

In summary, Elasticity is a dynamic, cost-effective way to handle unpredictable workloads for applications such as web services, data processing, and e-commerce.

  • Agility in cloud computing is the ability to quickly adapt and respond to changing business needs by rapidly allocating (provisioning) and deallocating (deprovisioning) cloud resources based on users’ demands.

  • High Availability in cloud computing is when services remain accessible and operational with minimal downtime, typically aiming for nearly 100% uptime. Uptime is achieved through redundancy, load balancing, and failover.

High Availability looks at the time a service was available (uptime) to users and other services, versus when it wasn’t (downtime). In this case, downtime refers to planned occurrences, such as system downtime for patching or updates, or unplanned occurrences, such as system failures.

You can calculate Availability by using the formula: Availability = Uptime/(Uptime + Downtime).

There are four availability percentages in cloud computing. These percentages show how long a service has downtime in a year, a month, or a day. For example,

  1. 99% means a service is unavailable for 3.65 days (per year), 7.2 hours (per month), or 14.4 minutes (per day)
  2. 99.9% means a service is unavailable for 8.76 hours (per year), 43.8 minutes (per month), or 1.44 minutes (per day)
  3. 99.99% means a service is unavailable for 52.6 minutes (per year), 4.38 minutes (per month) or 8.64 seconds (per day)
  4. 99.999% means a service is unavailable for 5.26 minutes (per year), 26.3 seconds (per month) or 0.86 seconds (per day)
  • Fault Tolerance in cloud computing is the ability of a system to continue to operate without interruption despite the failure of one or more of its components. Fault Tolerance is possible (achievable) through redundancy, replication, failover and backups. These technologies ensure the continuity of cloud resources even in the event of hardware failures, software bugs, or network outages.

In summary, Fault Tolerance in cloud computing is a key feature that ensures the continuous operation of systems. It is the ability of a system to remain operational despite component and service failures, providing users with a sense of security and reliability.

  • Disaster Recovery: What is a disaster? A disaster is a severe disruption of services caused by natural factors (earthquakes, storms, or power grid failures) or human-induced factors.

In cloud computing, disaster recovery is the technical plan that cloud service providers use to replicate, back up, and restore customers’ cloud resources (applications, data, and IT infrastructure) after a disruptive event.

In summary, disaster recovery is the ability to recover from an event that has disrupted service (a disaster).

  • Global Reach: In cloud computing, Global Reach is the ability to deploy applications and services worldwide, allowing businesses to serve a global customer base with low latency and high performance by leveraging a provider’s extensive network of data centres, availability zones, and edge locations.

As of the time of writing this post, the AWS Global Infrastructure says that the AWS Cloud spans 120 Availability Zones within 38 Geographic Regions, with announced plans for 10 more Availability Zones and three more AWS Regions in the Kingdom of Saudi Arabia, Chile, and the AWS European Sovereign Cloud.

Microsoft Azure currently spans 70 regions, 400+ data centers, 126 operational availability zones, and 37 more availability zones under development.

Google Cloud Platform (GCP) has 127 active availability zones, with 27 more under development, spread across 42 active regions worldwide, with 11 more planned or under development.

Conclusion
Cloud Computing is here to stay. It is a matter of time before there are more regions and availability zones globally. What a perfect time to learn about and get into cloud computing.

Are you working in cloud computing or thinking about learning it? Let me know in the comments down below.

Top comments (0)