Servicios clusters para la distribución de carga.

Cualquier web debe prepararse para crecer en visitas si no quiere morir en el intento al crecer. Explicamos la pautas esenciales a tener en cuenta…

Fuente:  http://www.flickr.com/photos/infocux/
Fuente: http://www.flickr.com/photos/infocux/

No es la primera vez que hablamos de la importancia de hacer una buena programación para evitar que nuestra web deje de responder de forma correcta al crecer en visitas. Sin embargo en este caso vamos a analizar las diferentes formas para distribuir la carga de cualquier proyecto.

Pero antes de entrar en contenido debemos tener en cuenta que no es lo mismo realizar una distribución de carga de contenido “dínamico” (que se modifica según consultas bases de datos por ejemplo)  que de contenido “estático”.

El caso de contenido estático se puede distribuir en diferentes maquinas de forma sencilla de varias formas: Una de ellas mediante DNS, distribuyendo un subdominio en varias maquinas haciendo que la URL desde dónde se obtienen los datos disponga de varias IPS que vayan cambiando según carga de los servidores. (MRTG)

También se puede hacer con una única IP balanceada mediante un router load-balancing Cisco ACE que distribuye el tráfico entrante entre varios servidores o máquinas virtuales, una solución de hardware que garantiza la accesibilidad y simplifica el aumento de carga de sus sitios web o aplicaciones.

Fuente: http://www.flickr.com/photos/beraldoleal/
Fuente: http://www.flickr.com/photos/beraldoleal/

En el caso de querer distribuir el contenido “dinámico” en varias maquinas la tarea  sera +/- complicada según se haya programado y requerirá de analizar los recursos empleados en cada una de las maquina y de compartir un NAS en red de alta disponibilidad.

Para la gestión de la base de datos, que todos los clusters tengan los mismos datos es esencial y por supuesto se deberá replicar el contenido de forma eficiente: “Ante el usuario, un sistema distribuido debe lucir exactamente igual que un sistema que no es distribuido”.

La replicación en MySql se puede dar de forma síncrona (clustering) o asíncrona, para el primero se utiliza MySql clúster mientras que para el segundo, un gestor de base de datos Mysql común.

La replicación copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan un sistema distribuido. La replicación puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, por que alterna opciones de acceso de los datos existentes.

En AGENCIA LA NAVE estudiaremos su caso con total profesionalidad para analizar  las ventajas y desventajas de poseer una base de datos distribuida con mysql de una forma u otra y asegurar la mayor disponibilidad con garantía de servicio.

Una última consideración a tener en cuenta es que según se realice la programación se necesitarán más o menos maquinas en un cluster y por ello, a menudo vale la pena invertir más en hacer un buen proyecto para evitar luego que el gasto mensual de mantenimiento de nuestra web se incremente de forma absurda.

En nuestra experiencia profesional páginas bien programadas con muchas visitas al día y optimizadas para la navegación reducen los recursos necesarios (y sus costes mensuales de hospedaje) para estar en Internet y evitan dolores de cabeza en un futuro.

Estudiar una buena distribución de carga y los elementos esenciales para montar un cluster no es una tarea fácil por lo que os recomendamos hacerlo con profesionales acostumbrados en el mantenimientos de dichas infraestructuras.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *