Mostrando entradas con la etiqueta virtualización. Mostrar todas las entradas
Mostrando entradas con la etiqueta virtualización. Mostrar todas las entradas

martes, febrero 19, 2008

Sun se prepara para competir con Amazon

martes, febrero 19, 2008 por Martín


Leo en DataCenterKnowledge que Sun Microsystems va a presentar en la JavaOne de este año su proyecto Caroline, lo que parece ser una nueva línea de negocio orientada al cloud computing. El artículo de DCN enlaza a otro artículo en The Register con mucha más información.

Para propocionar la infraestructura que competirá con Amazon utilizarán la virtualización disponible por defecto en Solaris 10, junto con Solaris ZFS, lo que debería garantizar un rendimiento superior a los sistemas ofrecidos por Amazon, basados en Xen.

El hosting se haría en Sun pero también se insinua que los usuarios podrán alojar sus propios grids. El almacenamiento parece que podrá realizarse vía MySQL (especulo aquí que probablemente después de la compra este sería el sistema que soportarían comercialmente) , PostgreSQL o Apache Derby. La autenticación parece que sería vía liberty.

En este enlace hay una presentación de la JavaOne 2007 con más detalles sobre el proyecto Caroline.

Wow, esto realmente promete mucho. La verdad es que no deja de ser realmente paradójico que tenga que ser una compañía que empezó vendiendo libros la que esté guiando el camino de otras compañías que llevan sufriendo muchos años para tener beneficios económicos. ¿Habrá encontrado Sun por fin otro filón?

jueves, enero 24, 2008

Saas, innovación o seguridad... o quizás ambos

jueves, enero 24, 2008 por Martín

En OnStartups publicaron ayer un post bastante interesante sobre multitenancy. Multitenancy es un término que denomina a la capacidad de alojar diferentes clientes dentro de tu centro de datos. En el artículo definen cinco niveles diferentes:


  • Nivel 0: Caos. Cada cliente en su propio servidor. Las actualizaciones se aplican a cada cliente y cada uno puede correr sobre una versión diferente.

  • Nivel 1: Caos controlado. Todos los clientes se ejecutan en diferentes servidores físicos, sobre la misma versión del software.

  • Nivel 2: Multi-tenant (vertical). El sistema es capaz de alojar múltiples clientes con la misma versión de software en el mismo servidor. Nuevos clientes se alojan en el mismo servidor. Tiene el problema de que sólo escala hacia arriba.

  • Nivel 3: Multi-tenant (horizontal). Se consigue la escalabilidad horizontal y múltiples clientes pueden compartir múltiples servidores utilizando la misma versión del software.

  • Nivel 5: Utopía. Es igual que el nivel 3 pero ahora además se consigue la forma de ejecutar diferentes versiones del software para el mismo cliente.



Dejando un poco al lado el tema de multitenancy que ya lo he tratado otras veces junto al de virtualización. A mi lo que me ha interesado realmente en el artículo, y con lo que he charlado ampliamente con mi jefe, es el nivel 5.

La idea de tener una versión de tu software para poder mostrársela a los clientes es muy, pero que muy interesante. Aquí, no me estoy refiriendo a una versión demo de la versión estable de tu producto, sino a una versión demo quizás de la última snapshot o de la última semana. ¿Cuán es la razón? Time-to-market (TTM).

El TTM de un producto puede ser bastante grande, especialmente si hay bastantes funcionalidades. Las metodologías ágiles solucionan esto en cierto grado promoviendo las releases frecuentes en intervalos cortos de tiempo, pero aún así la realidad es que ciertas funcionalidades pueden tardar varios meses en ver la luz. Pero, aunque el TTM de un producto sea grande, eso no quiere decir que lo tenga que ser el TTS (Time to Sell, ojo que este término me lo he inventado). Siempre pasa que hay ciertas funcionalidades que están en el roadmap, y que ya se han implementado pero todavía no están en una versión estable, que pueden ganar una venta; y los comerciales se encuentran sin la posibilidad de demostrar dichas funcionalidades y teniendo que conformarse con un "eso lo tenemos para la próxima versión" (bueno en realidad dirán éso, y 100 cosas más :D).

Tener un sistema demo, con lo "último de lo último" puede valer una venta. Ahora bien, ¿vale la pena el riesgo? Porque evidentemente, lo "último de lo último" no habrá pasado unos controles de calidad tan minuciosos como puedan haber pasado las versiones estables de nuestro sistema. ¿Cómo puede reaccionar un cliente a un fallo en este tipo de demo? A un cliente razonable, probablemetne no le importará mucho, pero otros clientes pueden llevarse una muy mala impresión de nuestro producto. Una solución obvia es disponer de un sistema de demo con la última versión estable de nuestro sistema, esa que nunca falla, y utilizarla para las presentaciones. En el momento en que pregunten por algo "especial" que sabemos que les sorprenderá, siempre se puede sacar un "mmm... bueno, sé que no debería enseñarte esto, pero lo haré". El cliente probablemente se muestre complacido, ya que a fin de cuentas le estamos enseñando algo "especial", "sólo para él", y en caso de fallo bueno, la impresión no será tan mala :-)

¿Qué opináis? ¿Vale la pena apostar por una demo con lo último o mejor apostar por lo seguro?

lunes, enero 21, 2008

Larry Ellison a VMWare: Su software lo podría haber escrito mi gato

lunes, enero 21, 2008 por Martín

Parece que a Larry Ellison no le gusta VMWare. Al menos eso es lo que se puede entrever atendiendo al artículo que publicaban hace un par de días en el Financial Times.

Según Larry Ellison, VMWare está condenada al fracaso, incluso a pesar de haber sido la compañía de moda el año pasado en Wall Street y haber protagonizado el éxito tecnológico más importante en los mercados después de la salida a bolsa de Google. Según Larry Ellison no pasará mucho hasta que Microsoft eclipse a esta compañía igual que hizo en el pasado con Netscape una vez que su software de virtualización se incluya en sus servidores.

Y es que el CEO de Oracle no ve nada especial en VMWare, de hecho se atreve a afirmar: "that the base layer of software on which virtualisation depends, called a hypervisor, was so simple that his cat could write it.". Es decir, que incluso su gato podría haber escrito la capa de virtualización de VMWare.

Bueno, pero no sólo Microsoft y el gato de Larry Ellison son las amenazas de VMWare. Ellison también comentó que el negocio de la virtualización pronto será "commoditized" y destacó a Xen como inmediata amenaza con un mercado que va creciendo cada vez más.

Por cierto, ¿Cómo respondió la CEO de VMWare?

“If his very smart cat could write it, my very smart tortoise could write his database.”

Parece que estas dos personas no se llevan demasiado bien :-)

miércoles, noviembre 28, 2007

Multi-tenancy: diseñando con la escalabilidad en mente

miércoles, noviembre 28, 2007 por Martín

Me ha gustado mucho un artículo que un compañero me ha pasado sobre el concepto de multi-tenancy. Se podría definir como la habilidad para ubicar varios clientes dentro de la infrastructura de una aplicación. Por otra parte, también me ha gustado una entrada de Jose Manuel Suarez en su blog en la que habla de optimización vs. hardware. Pensándolo esta tarde, me he dado cuenta de que, aunque no lo parezca a simple vista, existe bastante relación entre ambas entradas.

Como Fred Chong comenta en su blog, conseguir multi-tenancy es un trabajo duro. Por ejemplo, supongamos que tenemos una aplicación empresarial relativamente típica con un par de servidores web, un par de servidores de aplicaciones y un par de bases de datos, y que decidimos hacer nosotros el hosting de la aplicación. Realizar el hosting de la aplicación es mucho más práctico para la empresa proveedora de software ya que evita muchos problemas como el despliegue o la gestión de parches de cliente, al tiempo que hace más fácil la automatización; sin embargo, al mismo tiempo añade mucho coste en cuanto a infraestructura.

Por ejemplo el caso anterior está bien para un único cliente, ¿pero qué pasa cuando tenemos 5 clientes? En ese caso ya empezamos a hablar de 10 servidores web, 10 servidores de aplicaciones y 10 bases de datos a gestionar, y eso siempre que algún cliente no exija sistemas de demostración en cuyo caso las cifras pueden crecer todavía más. Excluyendo la administración, esto plantea dos problemas principales: el coste del hardware y el coste de las licencias de todo el software que estemos utilizando (servidores de aplicaciones, sistemas de monitorización, motores especiales como por ej. sistemas de comunicación para entornos financieros, sistemas de mensajería, etc.). ¿Qué pasa si estos 5 clientes son pequeños y no compensa el mantener esta infraestructura para ellos?

Esta es una de las razones por las que en aplicaciones complejas la aproximación "slashdot" o "youtube" de añadir servidores no funciona demasiado bien, ya que el escenario es más complejo.



El diagrama de aquí arriba muestra las diferentes técnicas que pueden aliviar el problema de multi-tenancy. Las técnicas están ordenadas por densidad, siendo las de más arriba las que permiten compartir más clientes dentro de nuestra infrastructura, y las de más abajo las que menos clientes permiten compartir.

No voy a entrar demasiado en detalle en las diferentes técnicas, porque eso es otra historia, pero básicamente cada una de esas técnicas tiene un coste asociado. Ya sea en cuanto a necesitar soluciones propietarias, o ser complejo de mantener, o ser funcionalidades específicas de un sistema operativo. Por ejemplo, la virtualización es una solución excelente para solucionar el problema de multi-tenancy pero tiene el problema de que el número de máquinas virtuales que podremos alojar en un servidor físico es limitado y a mayores tenemos el coste de las licencias (o del mantenimiento) del sistema de virtualización que utilicemos.

Y bueno, entonces, ¿cómo se puede arreglar todo este embrollo?

La solución ideal es crear aplicaciones que puedan utilizar varios clientes a la vez. Si la aplicación es muy grande, entonces se debería dividir en diferentes módulos independientes entre sí y que pudiesen ser compartidos por diferentes clientes. Por ejemplo, un sistema de trading financiero podría tener por una parte en un servidor la gestión de las carteras de los diferentes traders, en otro servidor la gestión de las órdenes de compra y venta de todos estos traders, y en otro servidor la gestión de informes para los clientes y los bancos.

Esto es lo que Fred Chong llama "Shared Application Instance", el compartir porciones de una aplicación con diferentes clientes. Esta es la aproximación que permite la mayor densidad de tenancy en un sistema, y la que ofrece la mejor escalabilidad. En estos sistemas, denominados comúnmente no-homogéneos, es mucho más sencillo gestionar los recursos del sistema. Por ejemplo, si sabemos que la gestión de órdenes necesita más recursos que la generación de informes, podemos dedicar servidores más potentes a alojar el cluster del sistema de órdenes mientras que reservaremos servidores más modestos para el reporting.

El problema, y ahora es cuando vuelvo a enlazar con el post de Jose Manuel, es que migrar una aplicación existente para que pueda dividirse y servir a diferentes clientes es algo muy complejo y muy costoso si la aplicación no se ha diseñado desde un principio para ello. En muchos casos estaríamos ante un reto casi tan complejo como el tener que reimplementar la aplicación. Ahí está la importancia de diseñar y crear una arquitectura desde un principio pensando en la escalabilidad. La optimización prematura siempre es algo malo, pero no lo es sin embargo el diseño en busca de la escalabilidad y el rendimiento. El diseño en busca de escalabilidad puede que no de frutos en los primeros meses, puede que añada complejidad lógica en el sistema (por ejemplo con desacoplamiento de APIs y módulos, uso de sistemas de mensajería, etc.), pero a largo plazo, cuando el sistema crece, y cuando hay más clientes a los que servir, es cuando se ven realmente los beneficios.

Vaya ladrillo que me ha quedado. Felicidades si has sido capaz de llegar hasta aquí :-)

viernes, noviembre 02, 2007

Los sin sentidos de VMWare respecto al Open Source

viernes, noviembre 02, 2007 por Martín

O quizás debiera haber titulado este post "Los sin sentidos de Diane Greene...". Dian Greene es la CEO de VMWare y que durante estos dos últimos días ha recibido feroces críticas de The Register a raiz de una entrevista que mantuvieron con ella recientemente.

En la entrevista la dejan fina. Pero, en una entrada de hoy mismo, tampoco se quedan cortos. VMWare es ya la quinta empresa de software más valiosa del mundo, (se excluye IBM y Google) al menos siguiendo las valoraciones de la bolsa de Nueva York, y tras dos meses en la bolsa ha roto toda las expectativas y su capitalización en mercado ya es de 38 mil millones de dólares.

Pero parece ser que el éxito lleva a la extravagancia (tener una cascada en la sala de reuniones parece suficientemente extravagante) y que los medios dudan de la capacidad de Diane para dirigir la compañía por su falta de diplomacia y de saber estar ante los medios.

Y es que la CEO de VMWare no se corta a la hora de atacar a sus competidores y en especial de despreciar al Open Source con sus últimas declaraciones:

"What we want to do is fund ourselves to be able to build new stuff. If you're purely open source, there is no way you can do new stuff."

Parece que a pesar de ser la niña bonita de Wall Street, VMWare tiene miedo de Xen, compañía que arrasa en el mundo de los servidores virtuales y que poco a poco, y sin hacer tanto ruido se está haciendo con parte del mercado. Como resaltan en la columna de opinión que destacaba anteriormente, lo cierto es que VMWare está actualmente en una posición en la que no tiene que hacerle guiños a nadie, pero ¿es realmente necesario embarcarse en este tipo de luchas?

miércoles, octubre 10, 2007

Alto rendimiento en Wall Street

miércoles, octubre 10, 2007 por Martín

Bueno, aunque no he avisado algunos os habréis dado cuenta de la inusual inactividad de este blog. Se debe a que durante esta semana pasada he estado de mini-vacaciones, que han venido muy bien para cargar las pilas.

Una de las cosas que estuve haciendo antes de salir de vacaciones fue revisar unas presentaciones del evento High Performance on Wall Street. Las presentaciones las podéis descargar desde este enlace. Están en formato PDF, pero algunas se pueden escuchar que es lo realmente interesante.

En ellas se habla de las últimas tendencias en cuanto a rendimiento en Wall Street, que probablemente sea uno de esos lugares que marquen tendencias en para el futuro al menos en cuanto a temas de rendimiento, procesado de cantidades masivas de datos y latencia.

Escuchando las presentaciones se sacan varias conclusiones. Una es que ahora mismo no hay capacidad eléctrica para computar la cantidad de datos disponibles. No se trata ya de un problema de poder de computación de las CPUs si no más bien de cantidad de datos procesables por watio de energía. Comentan en alguna de las charlas que hoy por hoy es imposible procesar más datos sin dejar sin luz a todo Nueva York.

Al hilo del punto anterior, uno de los ponentes, que casualmente está muy familiarizado con el mundo Java, Cameron Purdy, apostaba por la orientación de las aplicaciones en Wall Street hacia los datos en lugar de hacia la CPU como una solución al problema del consumo de energía, al menos mientras que los green datacenters no estén todavía más extendidos. Este tipo de centros de datos en los que se apuesta por el bajo consumo fue otro de los temas de moda en la conferencia.

La virtualización y la computación en grid se plantean también como apuestas claras de futuro. Hay un par de ponencias disponibles sobre estos temas que resultan también interesantes.

Espero que os resulten interesantes.

lunes, julio 16, 2007

Tipos de virtualización

lunes, julio 16, 2007 por Martín

Me he topado con un post de John Rath en el que se explican los diferentes tipos de virtualización disponibles hoy por hoy en el mercado.

Permitiendo el resumirlo un poco, lo divide en:
  • Virtualización de Data Centers: Encapsular todos tus data center a nivel mundial via grids de modo que se pueda virtualizar el uso de sus recursos.
  • Virtualización de servidores o sistemas operativos: Lo que ya todos conocemos, Xen, VMWare, etc.
  • Virtualización de almacenamiento: Encapsular el acceso a dispositivos de almacenamiento físico.
  • Virtualización de ficheros: Capa de abstracción sobre sistemas de ficheros.
  • Virtualización de aplicaciones: Ofrecer acceso a aplicaciones sin ni siquiera tener que instalarlas.
  • Virtualización del escritorio: Citrix, VMWare player, ...

El añade también un par de opciones más (Virtual Networks, Virtual World) pero que ya se salen un poco del tema en mi opinión. Para ver más referencias, pues a su blog. Y mientras tanto pues ya sabéis, si alguien os pregunta qué es la virtualización ya podemos contestar a la gallega. ¿Qué tipo de virtualización?

martes, junio 26, 2007

Google se desmarca de la virtualización

martes, junio 26, 2007 por Martín

Hoy va de DataCenters. En un artículo muy interesante en TheRegister, Luiz André Barroso de Google realiza diferentes afirmaciones en las que prácticamente desprecia todo lo relacionado con la virtualización, siéndo el siguiente probablemente el párrafo más llamativo:


"I think it will be very sad if we need to use virtualization," he said. "It is hard to claim we will never use it, but we don't really use it today."


Como se puede leer en el artículo, Google, ha seguido y planea continuar con la estrategia de apliar miles de máquinas baratas montando DataCenters descomunales (ha anunciado 4 de estos DataCenters de más de 600 millones de dólares en los últimos meses). Esta estrategia choca frontalmente con la de comprar pocas máquinas pero muy potentes (y caras) y desplegar virtualizar ahí todo tu software.

Pero claro, esta estrategia se sienta sobre la base de decenas de ingenieros trabajando full-time para optimizar todo el código de multi-threading, multi-core y clustering, en lugar de delegar esta tarea en algún proveedor de hierro, algo que no todas las compañías se pueden permitir.

Ahora bien... ¿sobrevirán al consumo de energía? Lectura muy interesante.

martes, junio 19, 2007

WebLogic y virtualización

martes, junio 19, 2007 por Martín

Virtualización es, sin duda alguna, una de las palabras que más sonará en los próximos años.

Una de las compañías que está apostando más abierta y claramente por este concepto es BEA que no se oculta en afirmar que la virtualización será una de las bases de su futuro negocio.

En la pasada JavaONE ya coprotagonizaron con Intel una de las keynotes en las que presentaron una demo de su WebLogic Virtual Server Edition. El video está aquí y en el se puede ver como arrancan máquinas virtuales directamente sobre Vmware ESX, como asocian servicios a esas máquinas virtuales o como las máquinas virtuales se rearrancan y rearrancan WebLogic en caso de que se produzca algún error.

La idea desde luego es muy prometedora. La principal ventaja de todo esto, a mayores de todas las asociadas a la administración de sistemas, es que este servidor de aplicaciones virtual es capaz de traducir el bytecode en instrucciones de virtualización. En sistemas de virtualización de última generación que no requieren un sistema operativo para funcionar esto significa que tu aplicación se evita las capas de máquina virtual y de sistema operativo, lo que en teoría debería multiplicar el rendimiento de la misma. Todo esto está explicado en este white paper.

Este pasado Miércoles BEA ha realizado dos webminars que pueden resultar también interesantes para mantenerse actualizado respecto a su stack de virtualización:

Webinar: Virtualisation and BEA Liquid VM: Performance and Flexibility
Webinar: BEA Redefines Virtualized Software Appliances for Java with WebLogic Server Virtual Edition

Esos webinars se pueden ver en diferido (bueno realmente yo sólo he podido ver la presentación porque su sistema de video-streaming no me funcionaba) aunque el contenido del segundo webinar todavía no está disponible para ver, pero se supone que pronto lo estará.

A virtualizarse tocan...

jueves, mayo 10, 2007

Artículo sobre las soluciones de virtualización de BEA

jueves, mayo 10, 2007 por Martín

Dentro del portal Arch2Arch de BEA hay un interesante artículo de hace unos días en el que explica la base de la solución de virtualización de BEA.

La idea que propone su Liquid IBM es, si no he leido mal, básicamente el ejecutar las instrucciones Java directamente sobre los nuevos hypervisors que a su vez se ejecutan directamente sobre el hardware, por lo que no se necesita un sistema operativo. Con esta solución, un programa Java se saltaría dos capas de indirección y conseguiría el suficiente rendimiento como para que las soluciones de virtualización tengan realmente sentido. En el camino se pierden bastantes funcionalidades, básicamente todas las que requieran un sistema operativo (por ejemplo el interfaz de usuario), pero parece una solución muy atractiva para aplicaciones de servidor.

Sea como sea, el artículo lo explica mejor que yo.

lunes, marzo 26, 2007

Emulador x86 en Java

lunes, marzo 26, 2007 por Martín

Investigadores de Oxford han creado un emulador x86 en Java. El sistema además es capaz de emular otros sistemas como Commodore 64, Atari ST, Nintendo o ZX Spectrum. Hay demo online. La utilidad más reseñable que apuntan los investigadores es la de experimentar con programas maliciosos en sistemas virtuales controlados.

Lo interesante aquí es ver DOS ejecutándose en un applet, es decir en un navegador web remoto. Evidentemente, sería mucho más interesante ejecutar Windows o Linux, por ejemplo. Seguramente, con los avances que se están haciendo en virtualización, en unos años podremos ejecutar imágenes de nuestros sistemas operativos en la web. Será cuestión de tiempo.

Por ahora, nos podemos conformar con jugar a los lemmings con el emulador. :-)