Esta nota es una continuación de dos anteriores. Antes que nada, te informamos que los datos son demasiado técnicos en este artículo. Su haz tomado un curso de MySQL, no debes tener problema en entenderlo. Adicionalmente, también te sugerimos un curso de C# y un curso de Visual Basic para tu dominio de lenguajes de programación.
Orchestrator, que también es un proyecto de código abierto de ingeniería de GitHub, es responsable de la detección de fallas maestras y del proceso de conmutación por error. Utiliza el conocimiento colectivo extraído de todos los nodos de MySQL, incluida la réplica, para llegar a una decisión informada sobre el estado del maestro.
Cuando un maestro de escritura falla, el nodo líder del orquestador detecta el fallo e inicia el proceso de conmutación por error para elegir un nuevo maestro de MySQL. El resto de los nodos del clúster de Orchestrator notan este cambio y actualizan su Cónsul local con los nuevos detalles maestros.
Consul, que es una herramienta de descubrimiento de servicios de HashiCorp, realiza un seguimiento de los nodos maestros almacenándolos como pares clave-valor. Consul puede ejecutarse en un modo distribuido entre centros de datos, pero en el caso de GitHub, cada grupo de Consul es independiente a nivel de centro de datos. El GLB recibe notificaciones de cambios en el estado del maestro en un evento de conmutación por error utilizando la plantilla de consulta, que consulta a los grupos de cónsules y actualiza el estado del GLB, que a su vez enruta el tráfico al nuevo maestro.
Respecto a este tema, un ingeniero de infraestructura en GitHub, menciona que aunque la nueva configuración proporciona "entre 10 y 13 segundos" de tiempo máximo de interrupción en la mayoría de los casos, hay algunos escenarios que necesitan más trabajo, como el aislamiento del centro de datos que conduce a una interrupción del cerebro dividido o del cónsul en el momento de la conmutación por error.
La nueva configuración de GitHub es un alejamiento de las técnicas tradicionales basadas en redes, a las basadas en proxy y descubrimiento de servicios. Reemplaza completamente al basado en VIP, pero hay un debate sobre si hubiera sido más fácil adoptar un enfoque diferente utilizando el Protocolo de Gateway Fronterizo (BGP).
|