A virtual machine (VM) lets you rent a portion of a larger server rather than the whole computer. A cloud provider provisions it with the operating system and compute capacity you choose. You can then use it as a remote server for an application. section 3.1.1
Provision a server for an application
Create a Linode VM with Ubuntu 22.04 LTS, a nearby region, and a shared-CPU plan of at least 2 GB. Set a root password and, preferably, add an SSH key. Once provisioning finishes, the console displays the VM’s IP address. You now have a remote machine on which to install software and deploy code. section 3.1.1
Treat the VM as replaceable, even though its files normally remain between sessions. Destroying it also destroys data kept only on it. Keep code in Git rather than relying on files copied onto the server, and plan separately for data that must survive. Python and Node.js applications can be recreated from their code and dependency files, such as requirements.txt and package.json. section 3.2.1 section 5.1.4
A VM can also host containers: provision a fresh VM, install Docker, then run a container image. In Kubernetes, a group of VMs can form a cluster, with each member VM called a node. The VM remains the compute resource underneath these later deployment approaches. section 7.1 section 8.1.3















