This is a machine-translated text that may contain errors!
Cloud services and virtualization
Virtualization enables multiple machines or isolated environments to share physical hardware. Cloud services provide resources as services over a network, typically with self-service capabilities and the ability to scale. You can virtualize hardware you own yourself, and a virtualized environment is not automatically a cloud.
Here, you will explain what a VM and a container share with the host, and distinguish between IaaS, PaaS, and SaaS using your own examples. You do not need to purchase a cloud service. Use a VM that already has access, or use the provided examples in the text.
Place in subject matter: This level explains virtualization within an operations architecture. [[Operating System Level 3 - The Operating System Kernel|The Operating System Kernel]] explains what a guest operating system has its own version of. [[Operations Architecture Level 0 - Operating Systems, VMs, and Containers|Overview Map]] shows part-whole relationships, technical relations, and paths to practical tasks.
What is virtualization?
Virtualization means running multiple “virtual” machines on the same physical machine. Instead of having a separate physical server for the web server, one for the database, and one for the file server, you can run all three as virtual machines on a single machine.
The software that makes this possible is called a hypervisor:
| Type | Description | Example |
|---|---|---|
| Type 1 (bare-metal) | The virtualization platform is installed directly on the server | Proxmox VE (KVM), VMware ESXi |
| Type 2 (hosted) | Runs on top of a regular operating system | VirtualBox, VMware Workstation |
Type 1 vs. Type 2
- Type 1 is what we use in production and in the server room. Proxmox runs directly on the server.
- Type 2 is what you use on your own PC for testing. VirtualBox runs on top of Windows or macOS.
What is a virtual machine (VM)?
A VM is a virtual machine with virtual CPU, memory, and disk. It runs a guest operating system with its own kernel, while the hypervisor provides access to the physical hardware. Proxmox VE uses Linux and KVM to run VMs; “directly on the server” does not mean that the platform lacks an operating system kernel.
Benefits of VMs:
- Isolation - A fault in one guest operating system usually does not need to stop the other VMs. However, they still share host, storage, and other resources and can be affected by common failures or resource shortages.
- Flexibility - You can run different operating systems on the same machine (e.g., Ubuntu and Windows Server).
- Snapshot/backup - You can take a snapshot of a VM and roll back if something goes wrong.
- Resource utilization - A physical machine with plenty of RAM and CPU can run many VMs.
What are containers?
A Linux container runs the application in an isolated environment and shares the kernel of the Linux system it is running on. A virtual machine has its own guest operating system with a separate kernel.
[[Containerization Level 1 - Containers and Virtual Machines|Containers and Virtual Machines]] owns the illustrated comparison and also shows how multiple containers can run inside one virtual machine. Use this to explain what shares the kernel and what happens if the virtual machine is shut down. [[Docker Level 0 - What Is Docker|Docker Level 0]] then introduces a specific tool for application containers.
In practice, we often use both: VMs hosting Docker containers.
Cloud Services
In a public cloud, a provider owns and operates the infrastructure, and you order resources over the network. A private cloud is dedicated to one organization and can be operated by the organization itself or by a provider. Self-service, shared resource pools, scalability, and usage metering are key characteristics of the cloud.
Service Models
There are three main models for cloud services:
| Model | Full name | What you get | What you control yourself | Example |
|---|---|---|---|---|
| IaaS | Infrastructure as a Service | Virtual machines, networks and storage | OS, applications, setup | Azure VM, AWS EC2 |
| PaaS | Platform as a Service | A ready-made platform to run your code on | Only the application | Azure App Service, Heroku |
| SaaS | Software as a Service | Ready-made applications that you use via browser or app | Users, access, data and available settings | Microsoft 365, Google Docs |
An easy way to remember it
- IaaS = You rent an empty machine. You install and configure everything yourself.
- PaaS = You rent a ready-made environment. You only need to add your code.
- SaaS = You rent a ready-made app. You only need to log in and use it.
Delivery models
Cloud services can be delivered in various ways:
| Model | Description | Example |
|---|---|---|
| Public cloud | Shared infrastructure available to everyone | Azure, AWS, Google Cloud |
| Private cloud | Cloud environment for a single organization | An internal environment with self-service, resource sharing, and scaling |
| Hybrid cloud | Combination of public and private | Some services locally, some in Azure |
VPS: A common cloud solution
A VPS (Virtual Private Server) is one of the most common IaaS solutions. You rent a virtual machine from a cloud provider and have full control over it, just as if you had your own dedicated server.
Typical use cases:
- Running a web server
- Setting up a VPN service
- Hosting an application (e.g., Flask + database)
- Testing things without risking your own hardware
Examples of providers that offer virtual servers:
- Akamai (Linode)
- DigitalOcean
- Hetzner
- Microsoft Azure
Cloud costs
Check prices and set up cost alerts before ordering resources. A stopped virtual machine may still incur costs for storage and reserved addresses among other things. Check what the provider charges for, and delete any resources you no longer need to use.
Local vs. Cloud
Many companies use a combination of local servers and cloud services. Here are some factors to consider:
| Factor | Local (on-premises) | Cloud |
|---|---|---|
| Control | Full control over hardware and data | Dependent on the provider |
| Cost | Large investment upfront | Ongoing monthly costs |
| Scalability | Limited by physical hardware | Can be scaled up and down as needed |
| Maintenance | You have to fix everything yourself | The provider handles the hardware |
| Privacy | You know where the data is | Data may be stored in other countries |
Task 1 - Investigate a Virtual Machine
Use a virtual machine (VM) you already have access to. If you are using Proxmox, refer to [[Serverinstallation Level 3 - Navigate in Proxmox VE|Navigate in Proxmox VE]] where you read the CPU, RAM, and disk details. To create a new VM, follow the instructions in [[Serverinstallation Level 2 - VM in Proxmox|the installation guide]]. You do not need to install an additional hypervisor on your own computer for this task.
- How much CPU, RAM, and storage is allocated to the VM?
- What resources are shared with other VMs on the physical host?
- What can happen if multiple VMs collectively require more memory than the host has available? Explain without changing any resource allocations.
If you do not have a VM available, use the suggested configurations from the installation guide as a hypothetical example. Clearly state that your answer describes such an example rather than documenting a completed setup.
Exercise 2 - Start a container with Docker
Use the Nginx container from [[Containerbruk Level 1 - Kjor og undersog en container|Run and inspect a container]] if you have already completed the exercise. If you removed it, recreate it as shown in the container exercise. If Docker is missing, start by following the installation. Explain which kernel the container uses, and compare its startup process to that of a virtual machine. If Docker is not available, use the containerization figures to explain the difference without pretending you performed a practical test.
Task 3 - Which cloud services are you already using?
Think about which services you use on a daily basis:
- Microsoft 365 (Word, Teams, OneDrive) is SaaS
- GitHub Pages for hosting a website is PaaS
- A VM in Proxmox demonstrates virtualization. It is not automatically IaaS; it depends on how the resources are provided and managed as a service.
Can you categorize other services that you use?
Task 4 - Where is your data located?
Go to Microsoft Privacy Dashboard and see what Microsoft stores about you. Also, check the terms of a cloud service you use:
- Where in the world is the data stored?
- What happens to the data if you delete your account?
- Do you own your data, or does the provider?
These questions are especially important in light of GDPR and privacy.
Check the explanation
Orally or in writing, explain why a virtual machine (VM) in Proxmex is not automatically a cloud service. Then choose one example of each of IaaS, PaaS, and SaaS, and describe what the customer and the provider manage in each case. If you merely list names, use the service model table to explain the division of responsibilities.
Summary
- Virtualization allows you to run multiple services on the same hardware, either as VMs or containers
- Cloud services provide resources over the network with features such as self-service and scaling
- IaaS, PaaS, and SaaS describe how much responsibility you have yourself
- In practice, many use a hybrid solution combining both local and cloud-based services
- The choice between local and cloud depends on control, cost, scalability, and privacy
Sources: NIST: definition of cloud computing and Proxmox VE: KVM and virtual machines.