Pensemos en virtual
Hola amigos, soy Florián Murillo y aquí estoy, como cada viernes.
Hemos virtualizado nuestros servidores, pero no su ecosistema de procesos y cultura TIC. Seguimos resolviendo muchos problemas diarios con soluciones del mundo físico. Esto no solo nos ocurre a nosotros puesto que atendemos a usuarios con demandas físicas en un mundo virtual y, a veces, no fácilmente traducibles. Me explicaré:
El negocio demanda un nivel de servicio de las aplicaciones. Y, el nivel de servicio de una aplicación depende de varios factores según el tipo de aplicación. Por lo general pueden depender de:
La latencia transaccional extremo a extremo
Las necesidades de IOPS
Los tamaños máximos de colas de proceso pendientes de ejecución
El ancho de banda de red y la latencia en red
Y algún que otro parámetro más…
Pero nunca de la cantidad de RAM y CPU que tiene un servidor aún siendo los elementos que ayudan a obtener las métricas anteriores.
Este es un discurso del mundo físico que, con la llegada de la virtualización, ha quedado obsoleto. El negocio necesita un tiempo de respuesta y no CPUs y RAM. La prueba está en que muchos casos de más demanda de recursos se resuelven utilizando sabiamente los shares de computación y I/O.
Por tanto, cuando virtualizamos un servidor, simplemente cambiamos la plataforma hardware que entregará el mismo nivel de servicio que antes, independientemente de las CPUs y la RAM que tenga.
El problema viene cuando nadie se compromete con unas métricas que definan el buen funcionamiento de un servicio. Es un problema de falta de hábito y probablemente de escasez de recursos de gestión de aplicaciones. Es un lenguaje nuevo en muchos casos.
Sin embargo, es el único lenguaje que sirve cuando queremos resolver un problema de rendimiento. Probablemente venga acompañado de un incumplimiento en una métrica de rendimiento, así no solo las reglas del juego están claras sino que además se resuelve antes el problema.
No olvidemos que los servicios tienen alma, se llama programación. Si la infraestructura virtual no limita las métricas de rendimiento pero la aplicación no llega a entregar el rendimiento esperado, recordar que los programadores también participan en la ecuación de responsabilidades. En un entorno físico se ocultan mejor los defectos de programación, bajo el paraguas de discos muy rápidos, mucha RAM y CPU dedicada. En un entorno virtual salen a la luz rápidamente.
Por tanto, la virtualización pasa por: virtualizar los servidores pero garantizando las métricas de servicio, acompañado de una sustitución de los procedimientos manuales por procesos automáticos. Y, lo más importante de todo, educando acerca del nuevo entorno a administradores de redes, seguridad, sistemas y almacenamiento por el lado más fácil… pero sin olvidar a los responsables de las aplicaciones, programadores y responsables de negocio. Este aspecto, no deseable pero muy habitual, queda muchas veces fuera de presupuesto por limitación de recursos o desconocimiento.
Tras leer este post, me encantaría saber tu opinión e iniciar un debate que sin duda nos dará mas perspectivas y nos hará ser un poco mejores que ayer.
¿Crees que este post le puede interesar a alguien a quien conoces? Compártelo clicando los botones de Twitter, Facebook o Google+ de abajo. Gracias por tu apoyo.