Linux
es un sistema operativo multiusuario, lo que significa que muchos usuarios
diferentes pueden trabajar en el mismo sistema al mismo tiempo y en su mayor
parte no pueden hacer cosas para dañar a otros usuarios. Sin embargo, esto
tiene limitaciones: los usuarios pueden acaparar el espacio en disco o tomar
demasiada memoria o recursos de la CPU y causar que el sistema sea lento para
todos. Compartir el sistema en modo multiusuario también requiere que cada uno
ejecute en modo de usuarios sin privilegios, por lo que permitir que cada
usuario ejecuta su propio servidor web es muy difícil.
La
virtualización es un proceso donde un equipo físico, llamado host, ejecuta
múltiples copias de un sistema operativo, cada una llamada invitado. El host
ejecuta un software llamado hipervisor que cambia el control entre los
diferentes invitados, tal como el kernel de Linux funciona para los procesos
individuales.
La
virtualización funciona porque los servidores pasan la mayor parte de su tiempo
inactivo y no necesitan recursos físicos tales como un monitor y un teclado.
Ahora puedes tomar una potente CPU y difundirla alrededor de varias máquinas
virtuales y mantener una distribución más equitativa entre los invitados de lo
que es posible en un sistema de Linux de puro. La principal limitación es por
lo general la memoria, con los avances en la tecnología de hipervisor y la CPU
es posible poner más máquinas virtuales en un host que nunca.
En
un entorno virtualizado un host puede ejecutar docenas de sistemas operativos
invitados, y con el apoyo de la CPU, los invitados no saben que se están
ejecutando en una máquina virtual. Cada invitado obtiene su propia CPU, RAM y
disco virtual y se comunica con la red. Ni siquiera es necesario ejecutar el
mismo sistema operativo en todos los invitados, lo que reduce aún más el número
de servidores físicos necesarios.
La
virtualización ofrece una manera para que una empresa reduzca su consumo de
energía y espacio de centro de datos frente a una flota equivalente de
servidores físicos. Los invitados ahora sólo son configuraciones de software,
así que es fácil proporcionar una nueva máquina para una prueba y destruirla
cuando haya pasado su utilidad.
Si
es posible ejecutar varias instancias de un sistema operativo en una máquina
física y conectarse en la red, entonces la ubicación de la máquina no importa.
El Cloud Computing (Cómputo o Informática en la Nube) toma este enfoque y te
permite tener una máquina virtual en un centro de datos remoto que no posees y
sólo pagas por los recursos que utilizas. Los proveedores de Cloud Computing pueden
tomar ventaja de las economías de escala para ofrecer recursos de computación a
mejores precios de lo que costaría adquirir tu propio hardware, espacio y
enfriamiento.
Los
servidores virtuales sólo son una faceta de Cloud Computing. También puedes obtener
almacenamiento de archivos, bases de datos o incluso software. La clave en la
mayoría de estos productos es que pagas por lo que usas, por ejemplo una cierta
cantidad por giga bytes de datos por mes, en lugar de comprar el hardware y el
software para darle hospedaje tu mismo. Algunas situaciones son más adecuadas
para la nube que otros. Preocupaciones de seguridad y el rendimiento son
generalmente los primeros elementos que surgen seguidos por el costo y la
funcionalidad.
Linux
juega un papel fundamental en el Cloud Computing. La mayoría de los servidores
virtuales se basa en algún tipo de kernel de Linux, y Linux se suele utilizar
para alojar las aplicaciones detrás de los servicios del Cloud Computing.