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:
Fix errors in your Python code before your users see them by monitoring with Rollbar.
Deploy web apps with the Ansible configuration management tool.
Build microservices with Docker, Flask & React in this great course.