sábado, 30 de abril de 2016

MySQL Fabric



      MySQL Fabric es un sistema para gestionar granjas de servidores MySQL para lograr una Alta Disponibilidad y la escalabilidad con la utilización de particionamiento de datos. Técnicamente es un middleware* para gestionar y monitorizar servidores MySQL.

*Middleware (lógica de intercambio de información entre aplicaciones):  es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, paquetes de programas, redes, hardware y/o sistemas operativos. Esté simplifica el trabajo de los programadores en el complejo trabajo de generar las conexiones y sincronizaciones que son necesarias entre los sistemas distribuidos. De esta forma, se provee una solución que mejora la calidad del servicio, así como la seguridad, la actualización del directorio del servicio, etc...

      MySQL es famosa por ser una base de datos muy sencilla de utilizar y con el motor de almacenamiento InnoDB que brinda gran desempeño, funcionalidad y confiabilidad. MySQL/InnoDB ahora escala muy bien pero tiene un límite donde el escalamiento no es suficiente.

      La introducción de MySQL Fabric hace que todo sea más simple. MySQL Fabric esta diseñada para administrar grupos de servidores MySQL, ya sea para pocos de alta disponibilidad o miles para lidiar con la escalabilidad de aplicaciones web.

      MySQL Fabric proporciona una opción simple y efectiva para la alta disponibilidad como así también la opción de escalabilidad y de incremento gradual. Realiza esto sin sacrificar la potencia de MySQL e InnoDB; lo que supondria cambios importantes para la aplicación o necesitaría equipos de desarrollo de operaciones para pasar a tecnologías desconocidas o abandonar estas herramientas.


      - Para la alta disponibilidad, MySQL Fabric administrará las relaciones de replicación, detectará la falla del maestro y promocionará automáticamente uno de los esclavos para que sea el nuevo maestro. Esto es completamente transparente para la aplicación.

      Para tener HA debe haber redundancia en la capa de aplicación, en sí mismo esto es muy facíl, simplemente debe equilibrar todas las solicitudes de servicio a través de un grupo de servidores de aplicaciones que se ejecutan todos con la misma lógica de la aplicación. Si el servicio fuera algo tan simple como un generador de números aleatorios entonces esto estaría bien, pero las aplicaciones más útiles necesitan acceder a los datos, y a medida que se mueven más allá de un único servidor de base de datos (por ejemplo, porque tiene que ser HA), entonces se requiere una forma para conectar el servidor de aplicaciones a la fuente de datos correcta.

      La duplicación MysQL se implementa al configurar una estancia como maestra, con una o más instancias adicionales configuradas como esclavas. El maestro registra los cambios en la base de datos que luego son enviados y aplicados a los esclavos de manera inmediata o después de un tiempo de intervalo.

      - Para la escalabilidad, MySQL Fabric automatiza el particionamiento con los requisitos de conectores de enrutamiento para el servidor (o servidores si también utiliza MySQL Fabric para alta disponibilidad) basado en una clave de particionamiento proporcionada por la aplicación. Si una partición incrementa de tamaño, MySQL Fabric puede dividir la partición a medida que garantiza que los requisitos continúan enviándose a la ubicación correcta.


      La manera más común de escalabilidad es el particionamiento de los datos entre múltiples servidores MySQL, esto puede realizarse verticalmente (cada servidor contiene un subconjunto discreto de tablas para un conjunto especifico de funciones) u horizontalmente donde cada servidor tiene un subconjunto de registros para una tabla dada. A pesar de ser efectivo, suele ser una tarea de lógica compleja, donde los desarrolladores tienen que poner muchos de sus esfuerzos. Pero para ello esta MySQL Fabric.

      Cuando se acerca el límite de capacidad o al rendimiento de operaciones de escritura de un único servidor MySQL (o grupo HA) se puede utilizar MySQL Fabric para escalar los servidores de base de datos con la partición de los datos a través de grupos múltiples de servidores MySQL. Hay que tener en cuenta que un grupo puede contener un único servidor MySQL o puede ser un grupo HA.


Tutorial donde se aplica a un ejemplo la alta disponibilidad y escalabilidad usando MySQL Fabric

1 comentario:

  1. Un consejo, cambia el color del enlace del tutorial, para diferenciarlo del texto

    ResponderEliminar