Desktops en Cloud Computing

El término Cloud Computing es el "hype" del momento en sistemas de información, todo va a ser "nubizado" en el más inmediato futuro y quien no tenga sus sistemas en la nube tendrá que cerrar en pocos meses porque no podrá ser competitivo. Posiblemente las cosas no vayan a ser tan rápidas ni radicales como algunos fabricantes predicen, pero ello no significa que el concepto no sea interesante y valga la pena considerarlo para ciertas aplicaciones. Precisamente poner el escritorio en la nube es una de las transformaciones que pueden aportar más ventajas a una empresa.

Vamos a ver en este artículo qué debemos entender por "Cloud Computing", qué podemos obtener de aplicar el concepto a los escritorios de nuestros usuarios y cómo podemos hacerlo de forma económica con software libre.

El término "Cloud Computing" es más un concepto de marketing que la referencia a una tecnología concreta, pues cada uno define "Cloud Compuitng" como más le conviene. Por ello un primer paso debería ser definir lo más precisamente posible qué se entiende cuando hablamos de "Cloud" o "Nube".

¿Qué es el Cloud Computing?

La definición de Cloud Computing no es sencilla, porque no todo el mundo se pone de acuerdo en qué significa el término. Una definición bastante precisa es la de la consultora Gartner, que considera que el Cloud Computing es "un conjunto abstracto de infraestructura de computación altamente escalable y gestionable capaz de albergar aplicaciones de usuario y facturar por consumo".

En términos prácticos lo que la mayoría entendemos es que el Cloud Computing es una infraestructura de computación, es decir, unos servidores con ciertas aplicaciones, a los que se puede acceder por Internet. Como eso es muy abierto lo restringimos un poco más añadiendo que esos recursos compartidos en la red se proporcionarán bajo demanda de los usuarios y que el acceso a las aplicaciones se realiza en la inmensa mayoría de casos desde un navegador web, de forma que las aplicaciones se comportan como si se ejecutaran localmente.

En esencia el proveedor del Cloud Computing suministra aplicaciones online accesibles desde un servicio web (típicamente un navegador), con el software y datos almacenados en servidores remotos. En un principio esa arquitectura puede descomponerse en varios componentes, en un principio todos accedidos en red, comunicándose entre ellos con web services.  Muchas veces, sin embargo, sólo se utilizan los dos componentes principales: el frontend y el backend.

El frontend es la parte que hace de interfaz con el usuario, el dispositivo de acceso más el software que ejecuta. El backend es simplemente la propia nube, que puede teóricamente estar formada por varios servicios o servidores interconectados en una red local o de nuevo en la nube. En la práctica en la mayoría de implementaciones actuales el backend está centralizado en un único punto de servicio, aunque podría estar formado por puntos de servicio residentes en distintos puntos de la nube e incluso suministrados por varios proveedores.

Tipos de nubes

En general clasificamos las nubes según el tipo de proveedor que proporciona los servicios. Habitualmente se habla de cuatro tipos de nubes distintas:

  • Nube Pública o Nube Externa: el proveedor de los servicios es una empresa externa
  • Nube Comunitaria: varias organizaciones comparten una infraestructura común, para compartir “gastos”
  • Nube privada o Nube interna: la infraestructura de los servicios es interna y privada
  • Nube híbrida: se utilizan varios proveedores, contratando distintos servicios a cada uno.

Las nubes híbridas también pueden ser una combinación de nube pública y nube privada si algunos servicios son contratados externamente y otros servicios se proporcionan internamente.

Como vemos, el "Cloud Computing" no es más que la evolución empezada hace muchos años de llevar las aplicaciones a la red y proveerlas como si fueran un servicio de red más.

En el ámbito del Cloud Computing los servicios se estructuran en niveles o capas. Así también se habla de distintos niveles de "Cloud" en función del servicio que proporcionan:

  • IaaS: Infraestructure as a Service
  • PaaS: Platfom as a Service
  • SaaS: Software as a Service
  • DaaS: Desktop as a Service

La capa de infraestructura suministra sólo la infraestructura de computación. Típicamente el proveedor tiene servidores muy potentes en los que con algún tipo de hipervisor configura servidores virtuales que son los que comercializa. El proveedor acostumbra a facturar un tanto por servidor disponible o por tiempo de uso.

La capa de plataforma se construye sobre la anterior e incluye algún tipo de solución, como por ejemplo la preinstalación de sistemas operativos, bases de datos o servicios web. Facilita el despliegue de aplicaciones ya que la plataforma se convierte en un commodity que contratamos a nuestro proveedor. Un caso típico sería un proveedor que nos suministra una plataforma LAMP con acceso remoto, sobre la que instalamos nuestras propias aplicaciones.

En el caso de SaaS, se incluye también la capa de software o aplicación como servicio. En este tipo de Cloud contratamos la utilización de una aplicación completa, como puede ser un ERP, un CRM o una aplicación ofimática. Acostumbra a facturarse por una combinación del número de usuarios que pueden acceder y capacidad disponible o utilizada. Mucha gente se refiere sólo a esta situación cuando habla de Cloud Computing.

El Desktop como servicio o Desktop Cloud Computing es el caso más novedoso, y consiste en suminitrar como servicio no una aplicación concreta sino todo un escritorio de usuario. Los usuarios se conectan con un navegador u otro dispositivo a un sistema remoto sobre el que ejecutan su escritorio, con sus iconos de accesos a aplicaciones, barras de menús y demás funcionalidades propias de un escritorio.

Ventajas de disponer de un escritorio en la nube

Mover la aplicación de escritorio desde su ubicación tradicional, el PC de sobremesa o PC portátil, a la nube es una transformación que aporta unos beneficios importantes:

Facilidad de gestión

La aplicación de escritorio se virtualiza y se ejecuta de forma centralizada en servidores accesibles en red. Esto simplifica enormemente la gestión, ya que podemos crear imágenes de los escritorios de fácil administración. Centralizar la ejecución de los escritorios en un único punto elimina además una de las mayores dificultades de los escritorios tradicionales, la necesidad de acceder a cualquier punto de nuestra organización en donde necesitemos un usuario necesite utilizar un ordenador.

Cero administración

Los dispositivos físicos que los usuarios para acceder a su escritorio pueden ser extremadamente simples, sin necesidad de administración ninguna. Nunca mas es necesario realizar upgrades o instalar parches en los dispositivos de los usuarios.

Seguridad

Centralizar los escritorios los hace más seguros por el simple cambio de arquitectura. Los usuarios no tienen datos en sus equipos locales, al no disponer de sistema operativo no hay necesidad de instalar parches de seguridad o antivirus en cada equipo y al tratarse de equipos de muy bajo coste dejan de ser bienes apetecibles para sustracciones.

Ubicuidad

Proporcionar escritorios en nube, como DaaS, automáticamente elimina toda la complejidad que tenemos en una arquitectura tradicional para proporcionar movilidad a los usuarios. Un usuario puede conectarse siempre a su escritorio desde cualquier lugar y cualquier dispositivo, accediendo a una única copia de sus aplicaciones y datos. No existen problemas de sincronización de archivos o versiones distintas de aplicaciones.

Libertad de elección

Un escritorio virtual nos permite elegir la plataforma en la que se ejecutan las aplicaciones con total libertad. Podemos, por ejemplo, ejecutar algunas aplicaciones sobre sistemas Windows y otras sobre Linux, de tal modo que todas ellas aparecen en el escritorio del usuario perfectamente integradas.  También es muy sencillo acceso a varios escritorios a un mismo usuario, si nos interesa por algún motivo.

Estrategias de escritorios en nube

Para conseguir suministrar escritorio en la nube existen varias estrategias, que pueden resultarnos más o menos apropiadas en función de nuestra infraestructura actual y los objetivos que nos marquemos.

Acceso a aplicaciones de escritorio

Una primera estrategia es poner en la nube las aplicaciones típicas de un escritorio en lugar del escritorio propamente. Es la aproximación de Google Docs, Google Apps o Zoho. En realidad no se suministra un escritorio como servicio, sino que se suministran las aplicaciones propias de un escritorio como servicio. Las aplicaciones disponilbes son las que nos suministra el proveedor y siempre vamos a depender de una nube pública.

Acceso a escritorios especiales

Otra estrategia es desarrollar completamente un nuevo tipo de escritorio diseñado ex profeso para trabajar en la nube. Es la aproximación, por ejemplo,  del proyecto de software libre EyeOS. El problema de esta aproximación es que es necesario desarrollar todas las aplicaciones propias de un escritorio con la tecnología elegida. Como consecuencia el número de aplicaciones disponibles es limitado, dependemos también del proveedor.

Acceso a escritorios mediante mecanismos de acceso remoto

Una estrategia simple para proveer escritorios en la nube es proporcionar una capa de acceso remoto y acceso seguro a una infraestructura tradicional de escritorios virtuales. Es una opción barata y muy flexible, ya que permite aprovechar todas las tecnologías de virtualización y publicación de aplicaciones en software libre ya disponibles. Esta aproximación nos aporta todas las ventajas antes descritas con unos costes y complejidad de despliegue muy reducidos, por lo que es la que hemos adoptado en OPS Consulting para ofrecer a nuestros clientes.

Disponer de acceso a escritorios en la nube con esta última aproximación permite que los usuarios trabajen con sus escritorios Windows o Linux que ya conocen perfectamente, sin que noten ningún tipo de cambio en sus prestaciones o funcionalidades. La creación de la infraestructura necesaria para ello mediante software libre hace, además, que los costes sean muy reducidos, pudiendo a ser tan bajos como 25 EUR por usuario y mes, incluyendo en este coste el hardware para los servidores y para los dispositivos de acceso, el software de escritorio y aplicaciones básicas (con software libre) y los servicios de gestión y mantenimiento.