Fundamentos de la computación en la nube

La virtualización explicada

Cómo un hypervisor divide un servidor físico en varias máquinas virtuales aisladas, la diferencia entre hypervisors Type 1 y Type 2, y por qué la virtualización sola no convierte a un sistema en una nube.

Intermedio 15 minutos 4 Objetivos de aprendizaje
  1. Explicar cómo un hypervisor deja que un servidor físico corra varias máquinas virtuales independientes
  2. Distinguir los hypervisors Type 1 (bare metal) de los Type 2 (hosted)
  3. Conectar la virtualización con la característica de agrupación de recursos de la nube
  4. Reconocer por qué la virtualización sola no convierte a un sistema en una nube

Una sola caja, muchas computadoras

Entra al centro de datos de un proveedor de nube y vas a encontrar filas de servidores físicos, pero el número de máquinas físicas está lejos de acercarse al número de clientes que las usan. Un solo servidor físico puede hospedar docenas de máquinas virtuales completamente separadas a la vez, cada una corriendo su propio sistema operativo, cada una convencida de que tiene la computadora completa para sí sola, cada una invisible para las demás. Ese truco, una sola máquina física que parece ser muchas independientes, es la virtualización, y es la tecnología que hace físicamente posible el conjunto de recursos compartido de la nube.

El hypervisor: software que divide una computadora

El software que hace posible esto se llama hypervisor. Un hypervisor se coloca entre el hardware físico, CPU, memoria, almacenamiento, red, y las máquinas virtuales (VM) que corren encima, y su trabajo es dividir ese hardware y entregarle a cada VM su propia porción, algo de ciclos de CPU, algo de RAM, algo de espacio en disco, según un horario que el hypervisor controla.

Desde dentro de una VM, todo se ve normal. El sistema operativo invitado arranca, ve lo que parece memoria real y un disco real, y corre aplicaciones exactamente como lo haría sobre hardware físico. No tiene forma de saber que su "hardware" en realidad es una porción de una máquina mucho más grande compartida con varias otras VM. Esa ilusión es todo el punto: aislamiento. Si una VM falla o se compromete, las demás siguen corriendo sin interrupción, porque el hypervisor las mantiene separadas todo el tiempo.

Dos formas de correr un hypervisor

No todos los hypervisors se colocan en el mismo lugar. Hay 2 tipos, y la diferencia importa según dónde se use cada uno.

Un hypervisor Type 1, también llamado bare metal, se instala directamente sobre el hardware físico y toma el lugar de un sistema operativo tradicional. Habla con la CPU y la memoria directamente, sin nada de por medio. Como no hay un sistema operativo anfitrión compitiendo por recursos, los hypervisors Type 1 son rápidos y son el tipo que corre las cargas de trabajo de producción en centros de datos y plataformas de nube. VMware vSphere, Microsoft Hyper-V y KVM son ejemplos.

Un hypervisor Type 2, también llamado hosted, se instala como una aplicación ordinaria sobre un sistema operativo normal, de la misma forma en que instalarías un navegador. Tiene que pedirle CPU y memoria a ese sistema operativo anfitrión en vez de hablar directamente con el hardware, lo que agrega una capa de peso. Ese peso es un intercambio razonable por la comodidad: los hypervisors Type 2 son simples de instalar y usar, y por eso los desarrolladores los usan para probar software en varios sistemas operativos desde una sola laptop. VMware Workstation y Oracle VirtualBox son ejemplos.

Type 1 (Bare Metal)Type 2 (Hosted)
Corre sobreHardware físico directamenteUn sistema operativo anfitrión
RendimientoMás alto, sin peso de un sistema operativo anfitriónMás bajo, comparte recursos con el anfitrión
Uso típicoCentros de datos, plataformas de nube, producciónComputadoras personales, pruebas de desarrollo, escritorios virtuales
EjemplosVMware vSphere, Microsoft Hyper-V, KVMVMware Workstation, Oracle VirtualBox

Por qué esto hizo posible el conjunto de recursos de la nube

Vuelve a la definición del NIST de la lección anterior: "un conjunto compartido de recursos informáticos configurables". La virtualización es el mecanismo que hace que ese conjunto se pueda compartir de forma segura. Sin ella, un proveedor tendría que darle a cada cliente una máquina física dedicada, justo el modelo ineficiente de un cliente por caja que la nube reemplazó. Con ella, un proveedor puede dividir un solo servidor físico potente en docenas de VM, venderle cada una a un cliente distinto, y recuperar y reusar esa capacidad en el momento en que un cliente la libera. El aprovisionamiento rápido, levantar una VM nueva en minutos, y la agrupación de recursos, muchos clientes compartiendo hardware de forma segura, se remontan ambos a esta sola pieza de software.

El límite: virtualizado no es lo mismo que nube

Aquí es fácil pasarse de la raya. Una empresa que instala un hypervisor Type 1 en sus propios servidores y corre 10 VM en su propio centro de datos virtualizó su infraestructura, pero no necesariamente construyó una nube. Si un desarrollador todavía tiene que llenar un ticket de TI y esperar 2 días a que alguien cree manualmente una VM nueva, esa configuración falla las partes de "autoservicio bajo demanda" y "aprovisionado rápidamente" de la definición que aprendiste en la lección anterior, aunque la tecnología subyacente sea idéntica a la que usa un proveedor de nube.

La virtualización es necesaria para la computación en la nube a la escala que ves hoy, pero no es suficiente por sí sola. La nube agrega aprovisionamiento de autoservicio, medición y elasticidad sobre hardware virtualizado. Vas a ver esta misma distinción otra vez cuando llegues a los despliegues de nube privada más adelante en este dominio, porque una nube privada es justo lo que obtienes cuando una organización le agrega esas piezas faltantes a su propia infraestructura virtualizada.

Lo que sigue

Ya conoces el mecanismo detrás del conjunto compartido: un hypervisor que divide el hardware físico en máquinas virtuales aisladas. La próxima lección nombra los 5 rasgos específicos y comprobables, autoservicio bajo demanda, amplio acceso a la red, agrupación de recursos, rápida elasticidad y servicio medido, que separan a un sistema meramente virtualizado de una nube verdadera.