A menudo escucho a personas que hacen declaraciones como "nuestra máquina del servidor MySQL falló", lo que me da la impresión de que dedican una sola máquina como su servidor MySQL (supongo que solo instalan el sistema operativo y solo MySQL en él). Como desarrollador, no como administrador de sistemas, estoy acostumbrado a que MySQL se instale como parte de una pila LAMP junto con el servidor web y PHP.
Alguien me puede explicar:
- ¿Cuál es el punto de instalar MySQL en un servidor separado? Suena como una pérdida de recursos cuando puedo agregar toda la pila de lámparas allí y servidores adicionales también.
- si la base de datos está en una máquina separada, ¿cómo se conectan las aplicaciones que necesitan usar?
Un servidor de base de datos separado es solo parte de un buen diseño escalable. Esto no importa si su tráfico no es muy alto y un solo servidor realmente es suficiente.
Pero en los servicios más ocupados, aislar los servicios entre sí es una buena cosa. Si alguien hace DDoS a su servidor web y hace que consuma todos los recursos, eso no molesta en absoluto al servidor de la base de datos. En entornos compartidos, es probable que más de un servidor web esté utilizando el servidor de la base de datos, por lo que si el servidor de la base de datos contiene datos de 50 sitios web diferentes, entonces solo un sitio web que está cayendo debido a que el DDoS es mejor que eliminar todo.
También desde el punto de vista de sysadmin, es más claro si hay servidores dedicados nombrados con sensatez, como "mysql-01.yourcompany.com" y "webserver-01.yourcompany.com". Cuando reciben alertas, inmediatamente ven lo que está sucediendo, al menos en el sentido de "OK, hay algo mal con la base de datos". Sé que este es un argumento débil ya que varios nombres DNS podrían apuntar a un solo servidor pero aún así.
Sus aplicaciones se conectarían a un servidor de base de datos remoto sin problemas a través de la red. Aeeeeeeee! ¿Cómo se conecta su navegador web a un servidor remoto? ¡Es magia! Erm ... más en serio, en lugar de 'localhost' solo proporciona la dirección del servidor en $ programación_language_of_your_choice y ya está todo listo.
fuente
fuente
LAMP es la pila de aplicaciones, pero no es necesario que todas estén instaladas en el mismo host. Como otros han señalado por motivos de rendimiento, seguridad o escalabilidad, a menudo no se instalan en el mismo host. También puede encontrar que el hardware que es óptimo para una parte de la arquitectura puede no serlo para otra.
Por ejemplo, las bases de datos tienen que ver con la gestión del almacenamiento. Cuanto más rápido pueda obtener información del disco, más rápido puedo llevarla al solicitante. Si estoy compartiendo un subsistema de disco con varios otros miembros de la pila de aplicaciones, como un servidor web, la contención que enfrento sobre el recurso compartido de las unidades de lectura y escritura de las unidades de disco puede en realidad obstaculizar mi rendimiento. Además, dividir la RAM entre el servidor web y el servidor de la base de datos en un host determinado puede no proporcionar un grupo de recursos lo suficientemente grande como para que se ejecute de la manera más eficiente, capaz de almacenar en caché tanta información en la RAM sin tener que ir al disco. una imagen, una página o un conjunto de resultados de consulta.
Administrativamente, también se pueden obtener eficiencias. Imagínese si ejecuta su empresa en aplicaciones de código abierto que aprovechan MySQL como un back-end común. ¿Realmente querría tener una proliferación de servidores de bases de datos con cada aplicación? Esto podría ser una pesadilla de DBA, "OK, ¿qué aplicación usa este DB?" Tendría múltiples versiones, múltiples configuraciones de hardware / software, múltiples estrategias de retención de datos. También es probable que tenga habilidades administrativas muy difusas. En su lugar, combine las instancias en una pieza física de hardware optimizada para el rol y asigne recursos dedicados para administrar el servidor y sus datos.
fuente
Las consultas MySQL tienen el potencial de consumir muchos recursos, lo que puede ralentizar su servidor LAMP.
Cuando está ejecutando un sitio web grande, complicado y con muchos recursos, es aconsejable considerar mover la base de datos a otro servidor dedicado. De esta forma, tiene dos servidores, uno dedicado a la web y otro dedicado al procesamiento de bases de datos. Esto tiene el potencial de liberar recursos y acelerar tanto el sitio web como las consultas de la base de datos.
El servidor web simplemente necesita conectarse a la dirección del servidor de la base de datos en lugar de
localhost
realizar sus consultas a la base de datos.fuente