GitHub y MySQL
Son muchos los sitios web de relevancia que usan la base de datos de MySQL. Esto es en sí una buena razón para tomar un curso de MySQL. Con esto en mente, te mencionamos que GitHub.com utiliza MySQL como una red troncal para muchos de sus servicios críticos como la API, la autenticación y el sitio web de GitHub.com.
Recientemente, el equipo de ingeniería de GitHub reemplazó su configuración anterior basada en DNS y Virtual IP (VIP) con una basada en Orchestrator, Consul y GitHub Load Balancer para solucionar problemas de cerebro dividido y almacenamiento en caché de DNS.
GitHub ejecuta múltiples clústeres de MySQL para diferentes servicios y tareas, por lo que es imperativo tenerlos altamente disponibles (HA).
La infraestructura de GitHub se extiende a través de múltiples centros de datos, que consta de alrededor de 15 clústeres, cerca de 150 servidores de producción y 15 TB de tablas MySQL. Cada clúster de MySQL tiene un solo maestro, que responde a las solicitudes de escritura, y múltiples réplicas, que sirven solicitudes de lectura. El nodo maestro forma un único punto de falla, y sin él, las escrituras fallarían por completo.
Los requisitos de HA para esta configuración incluyen detección automática de fallas, promoción automática de un nodo de réplica a un maestro y anuncio automático del nuevo nodo maestro a las aplicaciones cliente.
El equipo de ingeniería de GitHub ha empleado varias estrategias para la HA a lo largo de los años, avanzando gradualmente hacia la uniformidad en toda la organización. Como esto no está restringido a MySQL, los requisitos para una solución de alta disponibilidad también incluyen la disponibilidad de centros de datos y la prevención del cerebro dividido. Existen diferentes enfoques posibles para el descubrimiento maestro de MySQL.
En la siguiente nota te seguiremos hablando de este tema. También te recomendamos que tomes un curso de C# y un curso de Visual Basic para que puedas desarrollar aplicaciones con MySQL junto con .NET Core.