Using hardware directly to host our services and apps is not recommended, as it forces us to allocate full-blown machines for a specific role, greatly increasing the total cost and power consumption.
To solve this issue, it is nearly mandatory to virtualize hardware resources, enabling the creation of virtual versions or representations of various computing resources, including hardware, operating systems, storage devices, and networks, allowing multiple virtual instances or environments to run simultaneously on a single physical system, effectively maximizing resource utilization and improving flexibility.