Virtual private servers (VPSs) are sandboxed slices of hardware run with a hypervisor running on top of a physical server. Virtualization software such as Xen and VMWare allow a providers' customers to use fractions of a full server that appear as their own independent instances. For example, a server with an 8-core processor and 16 gigabytes of memory can be roughly virtualized into 8 pieces with the equivalent of 1-core and 2 gigabytes of memory.
The primary disadvantage of virtualized servers is that there is resource overhead in the virtualization process. But for our web application deployment, a single well-configured virtual private server provides more than enough performance and represents a huge cost savings over purchasing dedicated hardware.
There are many VPS providers and their cost ranges dramatically based on reliability, support, security and uptime. Make sure to choose a provider that has a solid reputation unless you are willing to rebuild your server on another provider whenever issues hit your service.
A few providers I currently use to host my Python web applications:
Ready. Steady. Go! The speed of VM creation and SSH access on AWS, DigitalOcean, Linode, Vexxhost, Google Cloud, Rackspace and Microsoft Azure and Comparing the speed of VM creation and SSH access of cloud providers are one way to measure some of the infrastructure speed provided by several cloud vendors. The virtual machine and SSH access data points are taken in multiple regions. It's unclear how these metrics would change over time based on backend tweaks made by each provider.
VPS $5 Showdown - October 2018 - DigitalOcean vs. Lightsail vs. Linode vs. Vultr compares and contrasts the cheapest options for four popular virtual private server providers.
VPS comparisons uses Ansible to get some data around provisioning speed and system performance. The whole README file in that repository has a ton of useful information and summaries of the tested providers.