Con la aparición de la virtualización, el mundo cambió, ahora podías dividir tu mega-servidor en pequeños servidores y así utilizar todo su potencial, sin duda, fue una gran mejora y quienes se opusieron a ello, acabaron cambiando de mentalidad.
Después de esto, apareció la Cloud, un timo en toda regla, donde pagas una barbaridad por un servicio que podrías tener en tu servidor físico por un precio claramente inferior, algo inaudito fue ver cómo la gente se movió hacia la Cloud creyendo que todo sería más barato, no lo fue, pero aun así su avance no ha parado (ni su precio).
No suficiente con ello, otro gran cambio apareció con los contenedores, ya no requieres virtualizar, puedes dividir el potenciar de tu servidor distribuyendo contenedores con los servicios que necesitas, y, además, estos se pueden replicar «fácilmente» entre otros servidores, lo que te permite tener pequeños servidores junto a grandes servidores (sí, ya existen cajas donde poner varios Raspberrys para crear un cluster realmente eficiente, aunque ojo que su CPU es ARM y no todos los contenedores son compatibles).
Hacia la cabeza de estos sistemas está Docker como creador y gestor de contenedores, y Kubernetes como gestor de despliegues. Existen otras opciones a Kubernetes (como Docker Swarm, que funciona perfectamente y es mucho más sencillo), pero no hay nada más extendido y libre que este.