¿Cómo se aseguran los sitios web con mucho tráfico de que no se bloqueen con demasiados usuarios a la vez? ¿Cómo puedo implementar esto en mis sitios web?

No puede garantizar que un sitio web no se bloquee, pero puede asegurarse de que la probabilidad sea casi nula.

Hay pocas áreas que debe poner en la pizarra para considerar cambiar / evaluar:

  1. hardware.
  2. Software
  3. Comportamiento humano del usuario

En Hardware, desea escalar horizontalmente agregando más niveles, ya sea a pedido (como espacio virtual en la nube que aumentará la memoria o el espacio en el disco duro).

En Software, puede volver a escribir su software para trabajar solo con datos nuevos cerca de la memoria e insertar datos antiguos en un sistema separado y usarlos solo bajo demanda. Puede eliminar las fugas, optimizar la velocidad, etc. También puede instalar algo llamado equilibrador de carga (opciones fijas y no fijas) que puede distribuir múltiples llamadas de usuarios entre servidores como cop gráfico.

Sobre el comportamiento humano: rediseñe su sistema para que solo los datos relacionados que se deben tener entren en juego.

Durante cada una de estas mejoras, puede probar con la prueba de esfuerzo, la prueba de carga, etc.

Descargo de responsabilidad: trabajo para una plataforma de software llamada Scale Campaign en Scale Campaign – We Delivery Software

Lo importante que hacen es mantener una infraestructura flexible para aceptar tráfico pesado como:

  • Número extra de servidores web
  • Equilibradores de carga
  • Tener diferentes bases de datos de bases de datos de lectura y escritura
  • Servidores web regionales y servidor de base de datos
  • Gestión de sesiones agrupadas

Básicamente mantienen recursos adicionales disponibles para escalar si es necesario.

En el extremo inferior, el almacenamiento en caché. Muchos servidores web le permiten configurar cachés del lado del servidor que ofrecen más eficiencia. Si está utilizando WordPress, también puede usar complementos para almacenar en caché las páginas renderizadas: se ejecutan más rápido y manejan más usuarios, ya que no necesita un viaje a la base de datos de WP. En el extremo superior, necesita un servidor en la nube que permita escalar: su contenido se replica en múltiples servidores y se escala por carga. AWS ofrece esto, al igual que muchos otros servicios en la nube.

La palabra clave, en términos de su aplicación, es el almacenamiento en caché.

Si tiene una aplicación que consume mucho tráfico, puede desarrollar algunas estrategias de caché, lo que significa que solo consultará bases de datos cuando sea necesario. Una opción popular es Redis que mantiene sus datos puramente en RAM y, por lo tanto, es muy rápido.

Como dicen los demás, poder agregar más recursos del servidor también es una gran cosa. Es por eso que la nube se hizo tan popular. Use un equilibrador de carga y agregue más servidores en las horas pico. El suyo requiere que su aplicación use “sesiones fijas” o que no tenga estado (pero puede compartir datos de sesión en redis, por ejemplo).

Hay varias formas de lograr esto dependiendo de la cantidad de tráfico, el tipo de audiencia que recibe el sitio web, el tiempo habitual de las cargas máximas, etc.

  1. Aumentar la capacidad de hardware de la única máquina que aloja el sitio web.
  2. Poner múltiples máquinas detrás de un equilibrador de carga
  3. Utilice servidores distribuidos geográficamente para atender a la audiencia local.

Solo tiene que asegurarse de tener suficientes recursos para el tráfico. Si usa el alojamiento en la nube, es bastante fácil escalar a sus necesidades sin exagerar y pagar más de lo que necesita.

Lo pones detrás de la nube de llamas.

Puede buscar herramientas en línea para probar el estrés de una URL como su sitio web y ver cuánta carga puede manejar.