Tecnología de la UOC

Infraestructura tecnológica

Infarestructura de aplicaciones

Codigo

Aplicaciones

En el entorno conviven las tecnologías más diversas. Si bien la arquitectura se focaliza en el desarrollo j2ee sobre Jboss AS, también mantenemos en catálogo otras arquitecturas tales como desarrollos Php, Oracle Application Server 10g, Oracle Forms 4 (FMX Runtime), Oracle Forms 10g, Oracle Web Server, MySql, Tomcat, Apache y otras.

La arquitectura se basa en el paradigma cliente-servidor multicapa. Focalizamos los esfuerzos en la redundancia de los servidores de aplicaciones, de manera que siempre sea un conjunto de servidores los que responden a un servicio concreto, aportando redundancia y escalabilidad. Esta distribución de carga entre servidores se realiza por medio de los balanceadores. Utilizamos para ello dos tipos de balanceo: uno vía hardware y otro a nivel de aplicación.

En las excepciones en las que existen funciones específicas de un solo servidor, disponemos siempre de los procedimientos para un rápido traspaso de la función específica de un servidor a otro para reducir al máximo el impacto de estos puntos únicos de fallo.

La configuración de todos los servidores de aplicaciones tendrá una parte común lo más avanzada posible, que nos facilitará el intercambio de servidores y nos potenciará la redundancia y la escalabilidad.

Con esta arquitectura, en la que un grupo de n de servidores puede estar asignado a un grupo n de servicios, el cuello de botella suele recaer en los backends (fundamentalmente servidores de bases de datos centralizadas). Por lo tanto, es en estos servidores donde marcamos los requisitos más altos en cuanto a SLA de disponibilidad y mantenimiento.


Haz clic en la imagen para acercarla.

La figura expresa el esquema básico de la arquitectura de aplicaciones de la UOC.

La monitorización de las aplicaciones se realiza con peticiones tanto vía balanceador como vía directa a cada frontend. Como ejemplo, la monitorización de una aplicación puede incluir:

  • monitorizar una aplicación vía balanceador.
  • monitorizar los balanceadores por software.
  • monitorizar una instancia jboss en 4 servidores físicos.
  • monitorizar 4 aplicaciones en 4 servidores físicos.

De este modo resulta sencillo hacer un seguimiento de una incidencia. En la mayoría de los casos, una incidencia no tendrá impacto en el servicio final debido a la redundancia de caminos que tiene un cliente final o una aplicación al acceder al servicio necesario.

Bases de datos

Dada la diversidad de aplicaciones y servicios que ofrece la UOC, no solo para sus clientes sino también para la gestión de la Universidad, se cuenta con un parque importante de bases de datos, donde dos de ellas se erigen como las principales de todo el conjunto: la que da servicio al Campus Virtual y la que centraliza los datos de gestión de la Universidad.

Cada una de estas bases de datos está conectada a una red de almacenamiento mediante canales de fibra, y así cuenta con accesos rápidos de escritura y lectura. Debido a la gran concurrencia de usuarios que interactúan con nuestras aplicaciones, estas bases de datos están habitualmente sometidas a un nivel de carga de unas 150 transacciones por segundo.

Por otro lado, contamos con un parque de bases de datos para data warehouse, encargadas de soportar las consultas asociadas a procesos de negocio.

Evidentemente, dada la criticidad de los servicios, existen réplicas prácticamente en tiempo real de estas bases de datos, lo que nos permitiría poder recuperar la producción sin tener prácticamente pérdida de datos en caso de contingencia. Estas réplicas están distribuidas en nuestras dos salas de máquinas, lo cual nos permitiría la recuperación de los servicios en caso de desastre.


Haz clic en la imagen para acercarla.