Escoger una plataforma de despliegue (parte I)

diciembre 13, 2011 | In: Arquitectura, Cloud Computing, Despliegue, Servicios web

Una de las características del proyecto trazaME es que debido al tipo de demanda a la que se someterá, debe garantizar una gran disponibilidad y escalabilidad. Para lograrlo hay que emplearse en la elección y diseño de dos arquitecturas, la del software que conforma trazaME, y la de la infraestructura que lo soporta.

En este artículo hablaremos sobre la segunda: acerca de las distintas plataformas en las que podría desplegarse una plataforma de servicios con estas características, evaluando las características principales de cada una (Servidores Privados, Servidores Virtuales y Cloud Computing), siguiendo el orden de incorporación a empresas situadas en el rango de adopción tardía según el Diagrama de Rogers de difusión de la innovación.

Diagrama de Rogers

Diagrama de Rogers de adopción de la innovación

Las plataformas de despliegue de servicios más tradicionales y frecuentes a lo largo de los años han sido los servidores privados. Un servidor privado es aquel en el que la Empresa adquiere los equipos que actuarán como servidores, comprando el hardware y el software necesario en función del uso que se vaya a hacer de ellos. Del mismo modo, al trabajar con servidores privados es la Empresa quien se encarga de su administración y mantenimiento (costes de licenciamiento, hotfixes y parches de seguridad, actualizaciones y configuración del software implicado, etc.).

Los problemas de esta elección son evidentes: el equipo adquirido debe ser suficiente como para asegurar su rentabilidad a largo plazo, por lo que con frecuencia son extremadamente grandes para el consumo que se va a hacer de ellos en el instante inicial, y probablemente  resulten demasiado pequeños en el futuro. Además, la detección de errores, costes de reparación y mantenimiento (desde refrigeración hasta consumo eléctrico) y redes de comunicación, también son responsabilidad de la empresa, por lo que gran parte de sus esfuerzos irán encaminados a la conservación y gestión de la infraestructura en lugar de a los servicios que realmente desea ofrecer a sus clientes (que a menudo serán muy distintos). Al ser un entorno “local”, la entrega de contenido en redes de otras regiones geográficas es a menudo complicada de llevar a cabo, o muy lenta.

La razón por la que pese a esto algunas Empresas eligen un Servidor Privado es que permite el control absoluto sobre los recursos (ya que les pertenecen y pueden alojarse en sus propias instalaciones), sobre las aplicaciones hospedadas y los datos vinculados.

Para que una plataforma tan rígida resulte rentable, por lo general debe conocerse de antemano el grupo de usuarios que la utilizarán, las aplicaciones alojadas, desde que localización se accederá a sus servicios, etc., de modo que la estimación del hardware necesario resulte precisa. Considerar que se dispone de este conocimiento, unido al control sobre sus datos, hace que aún hoy se utilice como alternativa, especialmente en intranets.

Conforme aumenta el número de equipos y la heterogeneidad en las características de estos, su gestión se hace más compleja y se multiplican los costes (en un servidor privado el hardware debe ser siempre superior a las necesidades iniciales).

En este contexto, en el que es necesario reducir costes y administrar numerosos equipos de distinto tipo, aparece una alternativa al servidor privado: los servidores virtuales.

Denominamos Servidor Virtual a una máquina virtual alojada en un gran equipo que puede compartir con otras máquinas virtuales empleando tecnologías avanzadas. Con frecuencia estos servidores se alquilan a proveedores que proporcionan el servicio a través de un portal de acceso y credenciales de acceso a distintos perfiles de usuario; de este modo el entorno podría dejar de ser local para la empresa.

Servidor virtual

Servidor virtual

En este contexto se debilita el control que la empresa tiene sobre los datos y las máquinas, pero se adquieren notables ventajas:

  • Es eficiente y económica: una sola infraestructura puede hospedar máquinas independientes que convivan durante las primeras fases de la vida de las aplicaciones.
  • Podemos abstraernos en cierta medida de las características del hardware concreto del servidor.
  • Levantar nuevas máquinas virtuales y migrar las existentes resulta bastante sencillo.
  • Cada máquina virtual puede alojar tantas aplicaciones como se desee, siendo éstas de cualquier tipo o tecnología.

No obstante existen algunas desventajas de un servidor virtual frente a otras alternativas. Pongámonos en situación: una aplicación de carácter social se pone en marcha en un entorno de este tipo; los usuarios comienzan a utilizarla y se observan buenos rendimientos en el servidor virtual. La propagación de la aplicación no se detiene aquí, sino que continua extendiéndose de manera acelerada (impulsada por el número creciente de usuarios y las relaciones sociales de los mismos) hasta alcanzar rápidamente el límite tecnológico del servidor virtual.

Llegar a una situación de este tipo compromete el éxito de la aplicación: los usuarios observarán retrasos en su trabajo con ella, errores, caídas… y rara vez darán una segunda oportunidad.

La solución puede consistir en proporcionar más recursos a la máquina, migrando la máquina virtual a un nuevo servidor que proporcione mejor rendimiento; esta tarea puede llevar varias horas o incluso días, en función de la complejidad de la tarea. Si el límite que se alcanza no está determinado por el rendimiento de la máquina sino por la capacidad de la misma para manejar los accesos (por ejemplo debido al límite de conexiones que puede abrir el servidor web) la solución será levantar más servidores y balancear la carga entre ellos. Este trabajo es frecuente en portales y servicios de gran tamaño, pero sigue siendo tedioso y complicado en la mayoría de los casos, e implica tiempos de implementación y aumento de costes (algunos proveedores de hosting virtual proporcionan herramientas que facilitan esta tarea de balanceo de carga, aunque el nivel de abstracción no suele ser suficiente).

Una solución más flexible y potente cuando surgen estas necesidades es desplegar la aplicación en un entorno de Cloud Computing, del cual hablaremos en detalle en las siguientes publicaciones.

Comments are closed.

Latest comments

  • None found