lunes, 19 de marzo de 2007

Opinión: ¿Sueñan las aplicaciones con servidores virtuales?

Sobre el comentario de Sauron a "Virtualizar: ¿Qué, Cómo, Cuándo y Dónde?". Siempre hay algo que no se puede virtualizar, al igual que siempre hay algo que requiere 4 procesadores y no funciona con dos. En un mundo perfecto, las aplicaciones .NET están bien diseñadas y los query SQL perfectamente estructurados, lo que nos permitiría - en ese mundo perfecto - virtualizar prácticamente todo. Pero el mundo en que vivimos está lleno de código .NET ineficiente, de querys SQL que hacen que nuestras 230 tablas de esa base de datos de 8 Gb se muevan todas al unísono en el mejor estilo lambada. En este mundo, muchas veces el código está como está, y no se puede cambiar (problemas insalvables de coste, tiempos o de simple ego del jefe del proyecto del desarrollo). En esos casos, virtualizar, como mínimo, sólo nos servirá para darle una excusa más al desarrollador para tachar nuestros sistemas de poco potentes. Recordad que, salvo honrosas excepciones, el dogma de muchos desarrolladores dice algo así como que la capacidad de proceso es infinita y la memoria también. Tened en cuenta que si algo vá lento en un flamante servidor físico, irá igual (o peor) en uno virtual. Si el servidor que aloja vuestro exchange tiene una cola de peticiones a disco de aquí a finisterre, virtualizarno tal cual está no va a arreglarlo. Si vuestro pontetísimo servidor de dos vías las tiene ambas al 100%, así seguirán cuando lo hayáis virtualizado. Si vuestro SQL server se come los 4 Gb de RAM del servidor donde se encuentra ahora, se los seguirá comiendo. Virtualizar reduce costes y mantenimiento... los milagros, para la wish list de ESX 10.0

Yo he visto cosas que vosotros no creeríais. Aplicaciones multiusuario con bases de datos multigiga puestas en Access más allá de Orión. He visto a desarrolladores .NET afirmar que un doble opteron con 8 GB de RAM es poca máquina para una base de datos SQL de más de 4 Gb cerca de la puerta de Tannhäuser. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia. Hay que pensarse tranquilamente lo de virtualizar. Nada como una buena evaluación de rendimiento de las aplicaciones a virtualizar antes de virtualizarlas. Herramientas no faltan: Analizadores de queries para SQL, profilers .NET, optimizadores para Exchange, etc.

Un saludo.