Hoy decimos

Resolvemos tus problemas - Conversá con nosotros

miércoles, 2 de octubre de 2013

Hipervisores múltiples

Hace algún tiempo - tres a cuatro años - es posible construir un sistema con prestaciones de nivel empresarial que permite correr aplicaciones de un modo mucho más eficiente que un hipervisor estándar como ESXi, Hyper-V o KVM. No tiene todavía un nombre formal en la Wikipedia, pero en Libres lo llamamos "hipervisor múltiple".

El hipervisor múltiple corre aplicaciones en tres niveles:
  • Sobre el host, directamente sobre el hardware físico: El sistema operativo del hipervisor múltiple ejecuta las aplicaciones normalmente, sin capa de virtualización, con performance nativa del hardware sobre el que corre el sistema operativo.

  • En contenedores lógicos: El sistema operativo del hipervisor múltiple permite crear contenedores lógicos (o particiones lógicas),donde se puede instalar y correr aplicaciones compatibles con el sistema operativo del host físico.  La performance de las aplicaciones en los contenedores es casi la misma que la performance real sobre el hardware físico.

  • En máquinas virtuales: El sistema operativo del hipervisor múltiple tiene la posibilidad de crear una capa de virtualización completa estándar, permitiendo crear máquinas virtuales en las que se puede instalar sistemas operativos completos, compatibles o no con el sistema operativo del host físico.


Performance Nativa en el hardware
Un hipervisor múltiple va a permitir correr aplicaciones simultáneamente - o no - en los 3 niveles de ejecución explicados arriba.

Ello acarrea el beneficio único de poder explotar las capacidades completas del host físico, gracias a la flexibilidad de poder implementar aplicaciones en cualquiera de los tres niveles (con una gestión apropiada).


Contenedores Lógicos

Son un modo de virtualización a nivel de sistema operativo diferente a la virtualización completa de hardware (KVM, etc. ), y a la paravirtualización (XEN, KVM para sistemas operativos compatibles con este modo, etc.).

De la definición: "Es un método de virtualizacion donde el kernel de un sistema operativo permite correr varias instancias espacio de usuario aisladas, en vez de solo una.."

Similar en nombre a las particiones lógicas (LPARs), sin embargo éstas últimas son un metodo diferente de virtualización: "LPAR es un subconjunto de recursos de hardware, virtualizados como una computadora separada. En efecto, un host físico puede ser particionado en múltiples particiones lógicas, cada una alojando un sistema operativo diferente".


Construyendo un hipervisor múltiple
Hay varias combinaciones de software posibles para construir un hipervisor múltiple usando Linux como base.

En principio necesitamos un kernel de Linux, o mejor aún una distribución con buen soporte de contenedores. El software de contenedores nativo de Linux es hoy LXC, sin embargo el soft de contenedores para Linux con mejores capacidades, es OpenVZ. 

En este mismo momento, los desarrolladores de OpenVZ están trabajando para integrar el código y capacidades de OpenVZ en LXC, unificando así los dos software de contenedores más evolucionados en Linux.

En una 2da. instancia necesitaremos software para implementar la capa de virtualización. Las opciones de base en Linux, de performance y capacidades de nivel empresarial son KVM y Xen.

Y así tendríamos las dos capas de virtualización y la capa base del sistema operativo corriendo sobre el host físico:

  • Capa 1 - Kernel de Linux, incluyendo una distribución de Linux (Debian, CentOS, Ubuntu LTS, etc.), capaz de correr aplicaciones con performance nativa del hardware del host físico.

  • Capa 2 - LXC u OpenVZ (las más recomendadas), capaz de correr aplicaciones con una performance del 2% al 5% menor que la disponible en el hardware del host físico.

  • Capa 3 - KVM o Xen, brindando capacidad de virtualización completa para máquinas virtuales reales.
 
Link

Comparación entre diferentes plataformas de virtualización (incluye descripción del método de virtualización usado)

Cero Administración y economía de recursos

El artículo de Wired de abajo es muy bueno, la charla del tipo debe haber estado mejor aún. Veamos:

"Twitter Founder Reveals Secret Formula for Getting Rich Online"
http://www.wired.com/business/2013/09/ev-williams-xoxo/

Básicamente te explica que las empresas y productos exitosos relacionados con Internet - y con tecnología informática en gral. - son aquellos que le facilitan la vida a las personas ("usuarios" en Internet). Si podés eliminar pasos para realizar un trabajo, o facilitar el cómo se hace algo hoy mediante tus productos y servicios, vas a tener éxito.

Otro consejo - repetido - es "mejorar una idea que ya haya tenido éxito".

Hacele muy fácil la vida a tus usuarios, cuanto menos tienen que interactuar con tu producto / servicios (le sacás botones, automatizás pasos para quitarlos de los procesos, etc.), más chances de éxito tiene éste.

Por ejemplo:

Los ingenieros de Etsy manejan un principio de arquitectura de soluciones de tecnología informática llamado "One Button Deploy Principle" (Principio de implementación de un solo botón). Básicamente cualquier puesta en producción de cualquier producto o servicio de tecnología informática de Etsy, interno o público, debería poder hacerse presionando un solo botón.

Cero Administración
Algo parecido al "Principio de implementación de un solo botón" es una prerrogativa básica de los productos de Libres Consultores, le decimos.. 

Cero Administración: El usuario del producto tiene que poder "usar" el producto, sin necesidad de tener que "configurarlo" primero.

¿Cómo un usuario va a "usar" un producto que brinda soluciones simples a problemas y requerimientos complejos?
 

Esa es la parte de la que nos encargamos nosotros en LC, sin reinventar la rueda, sin necesidad de "construir pirámides", sin grandes proyectos de desarrollo de productos.

Gracias al principio de Cero Administración, detrás de los productos de LC hay ideas y principios simples, la complejidad está minimizada, por ende la magnitud de la ejecución y desarrollo del proyecto queda minimizada también, en grado sumo. 

LC es un proyecto que puede ser llevado adelante por una o dos personas, en muy poco tiempo, muy pocas horas. Lo que es clave para no tener que dedicar 12 hs. por día (que no se podría), ni tener que disponer de muchas personas para realizar todo el trabajo.

Lo bueno de tener (más) tiempo libre gracias a la simplificación y automatización, es que se puede expandir el ámbito del emprendimiento, no  solo porque sí, sino porque hay suficientes recursos y tiempo (sin necesidad de costos adicionales ni personal adicional).

No hace falta trabajar más, sino mejor, de modo más inteligente. Hacer más cosas, de mayor calidad, en menor tiempo, con menos esfuerzo y gastando menos recursos.