La creciente popularidad del proyecto se asocia con un aumento del tráfico, comienzan a entrar en juego diversas herramientas analíticas, el propio Google visita el sitio web con más frecuencia y, en el peor de los casos, puede convertirse en el objetivo de un ataque DDoS. En ese momento surge la necesidad de gestionar y escalar bases de datos de forma eficaz.
Sabemos por experiencia propia que la base de datos es muchas veces el eslabón débil que ralentiza el sitio web y puede provocar una disminución de la disponibilidad de la aplicación. Y esto es especialmente cierto si necesita realizar cálculos complejos en el sitio web, mostrar información de muchas fuentes (por ejemplo, un producto con parámetros, varios precios, etiquetas, etc.).
Para que esto no afecte también a su sitio web, los expertos en marketing digital Farmacom ha probado operaciones de lectura en varias bases de datos, cuyos resultados prácticos y su comparación te mostraremos a continuación. ¡Aquí vamos!
Al principio de cada sitio web se suele utilizar una infraestructura menos potente, porque no es económicamente rentable pagar por costosos servicios de alojamiento con poco tráfico. En esta etapa, simplemente no es necesario invertir en una solución de gran tamaño.
Sin embargo, con el paso del tiempo la situación cambia. A medida que el sitio web gana conciencia, gana clientes y crece el tráfico, es necesario cambiar no sólo el servidor en sí, sino también las tecnologías en las que opera el sitio web. Esto se aplica especialmente al sistema de base de datos, que debe manejar operaciones cada vez más complejas y procesar cantidades cada vez mayores de datos sin perder rendimiento.
¿Vertical u horizontalmente? ¡De eso se trata!
Empecemos por decir qué pasa cuando la base de datos ya no es suficiente. Esto puede ocurrir tanto durante un aumento prolongado del tráfico como de repente, por ejemplo durante eventos de marketing, cuando el tráfico es alto sólo durante unos días.
En tales casos, es necesario ampliarlo. Sin embargo, cada base de datos permite diferentes formas, dependiendo de sus capacidades. En resumen, puedes escalar vertical u horizontalmente.
El escalado vertical aumenta los recursos (por ejemplo, CPU, RAM) de un único servidor para manejar una carga mayor. Este enfoque es relativamente sencillo de implementar, pero tiene sus limitaciones, ya que está limitado por las capacidades físicas del servidor. Una vez que haya agotado los recursos disponibles en el servidor, no es posible fortalecerlo más. No hay ninguna parte.
El escalado horizontal, por otro lado, implica agregar servidores adicionales que manejan la carga juntos. Este enfoque permite un escalamiento teóricamente ilimitado, ya que se pueden agregar nuevos servidores según sea necesario. También garantizará una mejor disponibilidad y resistencia a las interrupciones. En caso de falla de un servidor, otros servidores pueden hacerse cargo de su carga.
No debemos olvidar otra gran opción: ¡la redundancia geográfica! Simplemente significa que el sitio web se ejecuta en múltiples servidores ubicados en múltiples ubicaciones. Entonces, en teoría, si una gran inundación arrasa su sala de servidores «debajo de la colina», todavía tendrá otros servidores en la colina a 300 km de distancia. Y la web resopla alegremente.
Clásico probado: base de datos SQL
¿Qué bases de datos para desarrollo web, especialmente en PHP, se utilizan con mayor frecuencia? Claro, son bases de datos SQL MySQL y PostgreSQL. Estas bases de datos forman la base de la mayoría de las aplicaciones web y tiendas electrónicas debido a su confiabilidad y amplio soporte. Detallar lo que puede hacer no es el tema de este artículo, así que echemos un vistazo al soplo de aire fresco en la mohosa sala de bases de datos.
Nuevas opciones: base de datos NewSQL
Para saber qué posibilidades abundan las bases de datos NewSQL, se elige, por ejemplo, una web con compatibilidad con PostgreSQL.
Comparación con bases de datos SQL
Escalada
Admite el escalamiento horizontal, por lo que se pueden agregar servidores adicionales al sistema sobre la marcha sin tiempo de inactividad. Esto proporciona una escala teóricamente ilimitada. Por el contrario, las bases de datos SQL como MySQL y PostgreSQL suelen escalarse verticalmente, es decir, aumentando los recursos (CPU, RAM) de un servidor. El escalado horizontal es más beneficioso porque elimina los límites del servidor físico y reduce el riesgo de fallas.
Disponibilidad
Cuando un servidor falla, puede redirigir automáticamente las solicitudes a otro nodo. Esto lo hace altamente disponible. A diferencia de las bases de datos SQL tradicionales, donde una falla del servidor puede provocar una interrupción total del servicio, ofrece una mayor tolerancia a fallas.
Compatibilidad
La ventaja es su compatibilidad con PostgreSQL. Aunque también trae ciertas complicaciones. Un ejemplo sobre todo es la falta de soporte para funciones como AUTO_INCREMENT en la clave principal, lo que requiere cambios en la aplicación. Las bases de datos SQL, por otro lado, son totalmente compatibles sin estas modificaciones. Entonces, cambiar la web requiere más trabajo.
Gestión
Administrar la web es un poco más complicado. Las bases de datos SQL tradicionales, como MySQL y PostgreSQL, tienen herramientas y soporte ampliamente disponibles. Esto hace que su manejo sea más fácil y en general más familiar. La transición a la web supondría cambios importantes en los procedimientos existentes debido al diferente funcionamiento y a la necesidad de herramientas específicas.
Reflexiones sobre la transición a NewSQL
Aunque la web ha demostrado un mejor rendimiento bajo una mayor carga en las pruebas y el escalado horizontal aporta ventajas innegables, es necesario pensar si la transición a las bases de datos NewSQL es económicamente beneficiosa.
En la práctica, esta transición puede resultar difícil porque los desarrolladores de bases de datos NewSQL generalmente no están familiarizados con ella y no cuentan con el amplio soporte y ecosistema disponibles para las bases de datos SQL tradicionales. Para el mantenimiento y desarrollo a largo plazo de proyectos escritos en PHP, NewSQL aún no es una opción ideal.
Desde el punto de vista de la experimentación y las posibilidades de escalamiento, NewSQL es una solución interesante, pero en el funcionamiento real, donde la estabilidad y la disponibilidad de las herramientas de soporte son importantes, resulta bastante poco práctico en este momento. Afortunadamente, los expertos cuentas con herramientas que pueden cumplir con las expectativas de alto rendimiento y disponibilidad al trabajar con datos.