La Nube, virtualización y el juego por Streaming

virtualization-vs-cloud-computing

 

Hay palabras o conceptos que usamos de manera cotidiana sin pensar ni meditar que significan en realidad o que hay detrás de esos conceptos. Un no de esos conceptos que hace unos años ni siquiera habíamos escuchado y que actualmente nombramos con mucha frecuencia sin saber realmente que estamos diciendo en LA NUBE o el CLOUD.

Primeramente hay que decir que lo que esconde la NUBE, es tecnología que hace muchos años que existe, (en gran parte) pero que por diversos factores, no habían sido aceptados por la sociedad, para ser sinceros, el mayor logro de la NUBE ha sido a nivel de marketing consiguiendo darle un nombra unas tecnologías antes rechazadas pero que gracias a esta nueva nomenclatura están siendo usadas y promovidas por el común de los usuarios.

Una de las grandes reticencias a usar servicios cloud que había era el miedo a perder el control y la privacidad de los datos. Este no deja de ser un miedo natural y justificado, pero si lo aplicamos al miedo a lo desconocido. Si lo aplicamos al miedo a la tecnología es irracional, ya que cualquier servicio “SERIO” nos va a ofrecer más garantías de disponibilidad, seguridad y respaldo que lo que hagamos en nuestra casa o empresa.

Para ofrecer este tipo de servicios hay que poseer una estructura tecnológica detrás que apoye y soporte estas garantías. Esto se consigue como no, con una combinación de hardware, software y conexiones.

Un CPD o centro de procesamiento de datos que se precio ha de cumplir una serie de requisitos, incluso si se quiere se pueden pasar las certificaciones oportunas para calificar con un sello de calidad de NIVEL X. Que al igual que las ISO, aseguran un grado de cumplimiento. Las normas más aceptadas globalmente son la TIA-942 y las TIER (ambas procedentes de EEUU). Para el que tenga curiosidad sobre la historia de los CPD y las normativas o requerimientos actuales puede ver este enlace de la Wikipedia (en Ingles).

Todas estas estructuras requieres se un Software que sea capaz de gestionarlas y aprovecharlas para ofrecer esos servicios que pueden ir desde correo electrónico a almacenamiento de datos, música y video por streaming, redes sociales, plataformas de juegos, juegos por streaming o incluso puestos de trabajo completos virtualizados que incluyen todo el software necesario y teléfono en tu puesto de trabajo.

La estrutura de estos centros de datos se suelen comportar de Cabinas de almacenamiento, Servidores, electrónica de red (tarjetas, switches, routers, etc) y almacenamiento y Backup.

Clusteres%20Virtuales_2

Actualmente casi todo lo que se ejecuta en esta combinación de hardware esta virtualizado, dese los servidores hasta el almacenamiento pasando por las redes de datos. Esto implica que hay una capa de software muy importante que es la que virtualiza.

Centrándonos en los servidores, hay actualmente 3 soluciones que son las que predominan en el mercado, que son VmWare, Citrix XenServer y Microsoft Hyper-V. Existen otras soluciones pero son más minoritarias.

Actualmente podríamos decir que casi todo el hardware que se fabrica para CPD es compatible con estas soluciones y que prácticamente el 100% está certificado para Windows Server. Esto significa que todos los fabricantes se preocupan de que sus máquinas soporten Windows Server e Hyper-V y de desarrollar todos los driver necesarios para ser compatible en instalación física y virtual.

¿Por qué pasa esto? Pues porque los fabricantes de estos equipos ya sea Cisco, HP, Dell, Hitachi o quien sea, saben que su traget de clientes es casi seguro al 100% que demanden compatibilidad con Windows Server.

Vamos a explicar que usar Windows server no está reñido con el uso de los otros hypervisores. La parte de Windows Server que virtualiza es Hyper-V puede no usarse y montar los servidores Windows sobre Vmware o XenServer.

Microsoft está ganando cuota de mercado con sus versiones de servidor de Windows por un motivo de eficiencia, ahorro de costes y tecnológico. Las versiones de Windows Server están mejorando a pasos agigantados y ya ofrecen tecnologías y posibilidades que antes recaían en el fabricante de Hardware como puede ser la deduplicacion (que ahora es nativa y programable en Windows server R2). Por otro lado Microsoft está ofreciendo la tecnología Hyper-V gratis al licenciar un Windows server y de este modo un ahorro significativo sobre otras opciones.

Tanto Vmware como XenServer son Hypervisores que necesitan de un sistema operativo por encima, y si al final vas a pagar la licencia de Windows Server sobre un VmWare pues te ahorras las licencia de VmWare y usar Hyper-V.

Hay que comentar que Vmware es un Hypervisor de capa 0 y posiblemente la solución más avanzada del mercado, pero no es barata. Es cierto que al ser capa 0 ‘permite una instalación y control directos sobre hardware y montar servidores sin discos, con solo un memoria SD y derivar toda la VM (Máquina Virtual) en la cabina de datos a diferencia de Windows Server que requiere una instancia física instalada sobre el propio servidor requiriendo discos (muy recomendable en RAID) y luego sobre este Server se levantan las máquinas virtuales, pero es una solución más compleja y que obliga a pagar igualmente las licencias Windows Server. Por lo que mucha gente está optando ya por usar directamente Windows Server con Hyper-V.

Todo este taco sobre CPD, virtualización, infraestructura e hypervisores solo es para poner en antecedentes de lo que está por detrás de los servicios que tan sencillamente nombramos y usamos de manera cotidiana sin comprenderlos.

Según el uso que se pretenda dar a un CPD o un SITE (conjunto de hardware completo y funcional) dentro de este CPD se podrán optar por unas u otra opciones de combinar tecnologías hardware y software. Una de las tendencias más marcadas actualmente es la de virtualizar escritorios y aplicaciones. Esto consiste de manera resumida en ejecutar la instancio de escritorio o de aplicación en los CPDs y trasmitir por red al puesto final el estado de la pantalla para que este usuario final vea ese escritorio o esa aplicación ejecutarse como si estuviera en su equipo. Al mismo tiempo el usuario trasmite su interacción con los elementos de entrada y saluda de datos I/O como pueden ser teclado, ratón o pantalla táctil. Actualmente esto se puede hacer con Vmware, con Microsoft Windows Server, o con otras soluciones, pero las dos compañías más avanzadas en estos sistemas son Citrix y 2x ofreciendo capacidades muy similares pero con diferente gestión y precio, siendo 2x mucho más sencilla y económica y ambas basadas protocolos de comunicación RDP (antiguo TS) de Microsoft.

Para poder usar este tipo de soluciones necesitaremos una conexión a internet, como para todo lo que es Cloud, pero a diferencia de lo que muchos se piensan, lo importante no es el ancho de banda es la latencia y la calidad de esa conexión. Para que se hagan una idea, Citrix solo necesita 64 Kb por sesión para funcionar y 2x la mitad 32 Kb. El ancho de banda solo limita el número de puestos simultáneos que podrán trabajar, pero lo que hará que estos servicios funcione bien será la latencia o PING y que en la línea no haya perdida de paquetes frecuentes que obliguen a reenvíos y penalicen la velocidad.

Por tanto, podemos decir que este tipo de servicios pueden funcionar de manera excelente con una línea de poco ancho de banda pero no muy lejos del CPD.

Bien. Llegado este punto es cuando hay que atacar un concepto algo complejo y que a muchos se les atraganta, sobre todo al que tiene que explicarlo. Nos referimos a como se ejecuta el software sobre hardware virtualizado con su granuralidad, su asignación de recursos, sus comunicaciones y demás.

x86_virtualization_layer

Cuando se virtualizan servidores, básicamente lo que se hace es disponer de los recursos hardware reales a petición para enseñárselos y asignárselos o no al software. Si témenos 3 servidores (mínimo recomendable en un entorno de HA) y cada uno de ellos tiene 2 procesadores y cada procesador 4 cores, lo que tenemos la final son 27 cores a disposición. En un modelo antiguo cada servidor recibiría un sistema operativo que tendria 8 cores a disposición para usar. Y ese servidor soportaría los procesos que estuvieran instalados en so sistema operativo. Si en momentos puntuales necesita más de 8 cores no puede hacer más que aguantarse y trabajar con lo que hay, y si en mucha parte del tiempo no está usándolos pues tenemos recursos inutilizados.

Al virtualizar lo que hacemos es meter todos los cores en un mismo saco e ir asignándolos a todos los procesos software según los vayan demandando. Los Hypervisores (por lo menos los que hemos nombrado en este artículo) son capaces de comunicar todo el hardware para que trabaje en lo que se le asigne en cada momento. Con esto podemos tener 6 cores tomando 2 de cada server en un proceso solicitado por una aplicación de uno de los sistemas operativos que hemos virtualizado. Esto lo que hace es un uso muchísimo más eficiente de los recursos, permitiendo tener varios Sistemas operativos al mismo tiempo sin importar en que maquina o maquinas se ejecuta y la capacidad de atender picos e trabajo de un proceso en concreto además de no tener tiempo de inactividad de los recursos. Esto último lo explico algo más. Cuando se pasa una infraestructura de físico a virtual se suele calcular con una tasa de 5:1 es decir, cada 5 elementos de hardware viejo son uno en el nuevo (algunos calculan 4:1). Esto se hace porque es de sobra conocido que los sistemas actuales sufren un excesivo tiempo de inactividad (idle) dado que se han dimensionado para poder responder a picos de trabajo, por lo que están digamos sobredimensionados. Al ir a una estructura virtual sabemos que en momentos de mucha demanda de computo, podemos recurrir a más capacidad de trabajo del cluster o técnicas de thin provisioning y es por eso que se dimensiona con mucho menos hardware.

Esto es lo que se llama eficiencia de trabajo, con mucho menos hardware se consigue dar respuesta muchas más servicios que antes porque los recursos de asignan de manera dinámica. Esto se aplica también a las memorias, al almacenamiento o a las comunicaciones.

En la parte de almacenamiento incluso hay más temas de los que hablar, las tecnologías actuales que aporten casas como EMC2, Hitachi o NetApp en sus cabinas de almacenamiento llegan a convertir las cabinas en la piedra angular de los CPD. Las tendencias actuales son las de mezclar distintos tipos de discos en una sola maquina permitiendo así usar cada tipo de disco según sus características y precios para cada cosa.

Los discos más económicos y grandes como los NL-SAS los más grandes y baratos que usan para el almacenamiento bruto de datos y en ellos se coloca la información que tiene un acceso menos frecuente o incluso se usan para realizar snapshots de la máquina y ser un primer nivel de backup. Luego están los discos SAS algo más caros rápidos (15000 RPM) y pequeños que se usan también para datos pero se tiende a usar solo los necesarios para alojar los datos de mayor frecuencia de lectura y escritura. Para terminar, se están usando los discos SSD los mas rápidos caros y pequeños para los datos más críticos de acceso, pero incluso ya no se unas para eso por lo caros que son. Se están usando a modo de Fast Cache para servir de memoria de rápido acceso para los procesadores de las cabinas. Está demostrado que al usar una memoria intermedia de mucho rendimiento (las memorias cache de verdad son prohibitivas) se consiguen rendimientos increíbles llegando a subir de 4.000 iops que ofrece una cabina sin Fast Cache a 20.000 iops usando esta tecnología. No toméis estos datos como verdad absoluta de una conversión, todo depende del modelo y fabricante, de los discos, de su distribución, del tipo de archivo accedido, etc.

image_png

 

Todo esto que nos está diciendo. Pues que estos nuevos paradigmas priman la eficiencia por encima de cualquier otra cosa. Como el todo en la vida, la computación de alto nivel y el bigdata se dieron cuenta de que el uso actual de los recursos hardware es ineficiente por demás y que se necesitaba un nuevo sistema que aprovechara el hardware disponible. Es por esto que necio la virtualización y con ella sistemas complejos de computación controlados y optimizados por una capa de Software. Fijaros que se está hablando de conversiones físico a virtual de 5:1 lo que nos indica que con una quinta parte del hardware existente se puede dar mejor respuesta si se hace con un software eficiente capaz de gestionar y acceder a todo el hardware de modo libere y aprovechándose de la granularidad.

Por supuesto esto no es idílico, tiene sus limitaciones, la primera es que el hardware (hablamos principalmente de procesadores) han de ser compatible son la virtualización, es decir, que cuando se fabricaron se hizo pensando en poder ser usados por ese tipo de software, y que este software sea capaz de aprovechar de verdad las capacidades del hardware, esto se hace mediante los drivers. Y aquí nos topamos con la potencia gráfica y los videojuegos.

Por desgracia a día de hoy las tecnologías capaces de virtualizar y distribuir de manera eficiente la potencia grafica no están demasiado avanzadas y además requieren de unos modelos específicos de tarjetas de video para servidores y para estos usos que tanto AMD como Nvidia ofrecen a los módicos precios de 8.000€ la unidad y se recomiendan poner de 2 en 2 amén de que con cada instancia de estas se dice poder dar cobertura a 10 terminales. En resumen una ruina.

Por la parte software la tecnología que actualmente mejor y casi únicamente aprovecha esta potencia gráfica y la distribuye en entornos virtuales es Remote FX, una tecnología de Microsoft y que solo es compatible al 100% con Windows Server Hyper-V y Citrix XenServer. Esta tecnología está más centrada en ofrecer na experiencia 3D completa en los gráficos de los escritorios remotos o virtuales Windows. Pero en el fondo lo que está haciendo es aprovechar potencia gráfica y distribuirla lo que la hace extrapolable a otros modelos.

Por tanto cuando hablamos de plataformas para juego en estreaming o más correctamente dicho virtualizados, lo que tenemos son los problemas que se encontraron gente como Onlive pionera en el juego virtualizado o Gaikai que ahora fue comprada por Sony. Pero en este mundo de los videojuegos hay más problemas que resolver, y es la compresión de la información, es decir, el protocolo de envío y recepción entre los servidores y la aplicación cliente. Ya que en el caso de una solución de trabajo u ofimática, mucha de la información de la pantalla es continua, no varía. Al trabajar en un Word por ejemplo, el 95% de la información pantalla no cambia y al no tener que enviar más que las modificaciones de pixel en pantalla se ahorran el envío de mucha información. En los juegos esto no pasa, la información continua de la pantalla varia, y además se exige una tasa de refresco mínima, normalmente 30 FPS, lo que empieza a engordar los paquetes que hay que enviar y hacer que empiecen los verdaderos dolores de cabeza. Esto claro esta se arregla viviendo en la acera de enfrente del nodo de computación al que enganchas y teniendo 100 MB de fibra, pero como todos sabemos no es el caso. Hay que tener una solución para que con una conexión normal y a distancia considerable la experiencia sea satisfactoria.

 

Lo malo es que la experiencia no es placentera por el retardo que hay entre la ejecución de una instrucción en el mando con la respuesta en pantalla. Es algo molesto como cuando el audio y video de una película no están sincronizados. Primero se mueve y luego suena. Esto en un videojuego lo convierte en una sensación tan indeseada que hace que no se disfrute y se abandone.

Sony está en fase de pruebas en EEUU para decidir si lanza este servicio de modo definitivo y por el momento no se animan, lo que indica que hay retos que no están consiguiendo solventar. Por su parte Microsoft parce estar preparando su propia plataforma con el nombre de Arcadia. Está por ver si logran un resultado mejor que los conocidos hasta la fecha. Pero de esto y como se usa toda la tecnología comentada en Xbox One ya hablaremos mas en profundidad en su momento.

 

Si recapitulamos un poco lo comentado tenemos CPDs interconectados con sistemas hardware pensados para trabajar en modelos virtualizados, tenemos la tecnología de virtualización que permite flexibilidad y optimización sacando mucho más provecho de menos hardware gracias al software correcto, tenemos tecnologías para distribuir soluciones desde puestos de trabajo hasta juegos que requieren de menos conexión de lo esperado, tenemos tecnologías para aprovechar potencia gráfica y tenemos fabricantes trabajando en estos sistemas. Pero hay un punto que no hemos tocado, que es el de los clientes.

Para usar este tipo de tecnologías se necesita que quien está en el extremo final tenga un software y hardware adaptados para trabajar de la mano con lo entregado por la nube. En la gran mayoría de los casos lo que demandamos son servicios que cubrimos con un navegador web, redes sociales, correo, almacenamiento, música o video por streaming, etc. En otros casos ya en entornos de producción se demandan aplicaciones de empresa que se ejecutan con los clientes del software que este ofreciendo el virtualización. Pero en todos estos casos el cliente es prácticamente un Zero Client o terminal tonto. No ejecuta nada, solo muestra video y emite controles. Hay otro modelo que es más complejo y se basa en un tipo Mixto. Digamos que es hacer el hardware usado por el cliente en parte del Cluster. Recordar que al virtualizar se puede usar el conjunto del hardware como un todo, y que con la granularidad podemos trocear los procesos y enviarlos a ejecutarse donde prefiramos para luego montar los resultados. En este modelo lo que hacemos es dejar que el hardware local trabaje en lo que puede y derive el resto a la NUBE. Este es un modelo más adecuado a día de hoy, pero requiere 3 cosas importantes. Un hardware pensado para ello, un software capaz de unir el hardware local a la nube como un elemento más del clúster y programas o juegos creados para usar esta arquitectura.

3348_azuregraphic_lg

Si nos ceñimos a todo esto, hay una empresa que está más cerca que el resto de lograr este nuevo paradigma en el que se haga trabajar al hardware local como parte de una mega estructura de nube, y es Micosoft. Amazon es líder actualmente en servicios cloud, pero no posee el resto de elementos. Microsoft tiene Azure, una mega estructura en la que se ha ido invirtiendo durante años para cubrir muchos servicios de la casa, algunos esenciales como Office 365 y que también ofrece una infraestructura de nube fácil de usar para las empresas y administraciones. Al trabajar con todos los fabricantes de hardware para los procesos de certificación y colaboración en los desarrollos, es conocedor de todos los avances y se garantiza que el hardware de soporte a su software, posee las tecnologías de trasmisión en cuanto protocolos RDP y eficiencia grafica Remote FX, posee el cliente software (Windows 10) que en su kernel ya está preparado ( o eso tenemos entendido) para trabajar con el futuro hardware y con este modelo sincronizado con sus plataformas Cloud, y en el caso de los juegos posee Xbox ONE, un hardware propio que ha sido lanzado para trabajar de este modo a la espera de DirectX 12 y Windows 10. Para rematar tiene estudios propios y relaciones con los desarrolladores de software y juegos para Windows y Xbox con los que trabaja estrechamente y a quienes les entrega los kits de desarrollo mas avanzados.

Esto no quiere decir que lo logren, pero sí que al estar presente y poseer tecnología en todos los ámbitos tienen más cartas que nadie en la mano para conseguir que funcione este nuevo sistema de computación y hacer real la llegada de tecnologías como el juego virtual a la masa de usuarios. Seguramente en este 2015 veremos si lo logran o si seguimos con los mismos modelos de trabajo.

 

Espero que ahora sepamos algo más de lo que se esconde tras términos como NUBE, DropBox, MEGA, iCloud, Spotify, 2x, OnLive, PSN o Xbox Live.

 

 

  • http://www.programagestioncomercial.es Fran

    En todo esto creo que hay un “ingrediente” fundamental que creo que no has nombrado, los profesionales que deben estar detrás de todo esto. Todo este tinglado no es para aficionados.
    Saludos.

    • http://www.universowindows.com/ Vx2war

      por descontado Fran. Todas estas cosas sin profesionales capacitados no funciona. Y tu sabes muy bien lo ingrato que es el trabajo de los responsables TIC. Que te voy a contar. Tampoco ayuda a reconocer vuestro valor anuncios como el de ONO donde un “Profesional” de redes va al CPD, mira una pegatina y hace dos rayas en un tablet. Con estos estereotipos mal va la cosa. Las visitas a los CPDs y los KVM son cosas del pasado.