¿De qué consideraciones técnicas debe preocuparse un administrador de sistema/red cuando un sitio ingresa a sitios de marcadores/compartidos sociales?

StackOverflow https://stackoverflow.com/questions/62403

  •  09-06-2019
  •  | 
  •  

Pregunta

La razón por la que pregunto es que Stack Overflow ha sido barra y puntos, y Reddit.

Primero, ¿qué tipo de efecto tiene esto en los servidores que alimentan un sitio web?En segundo lugar, ¿qué pueden hacer los administradores de sistemas para garantizar que sus sitios sigan funcionando lo mejor posible?

¿Fue útil?

Solución

Desafortunadamente, si no ha planeado esto antes de que suceda, probablemente sea demasiado tarde y sus usuarios tendrán una mala experiencia.

La escalabilidad es su primera preocupación inmediata.Es posible que empiece a recibir más visitas por segundo de las que recibía por mes.Su primera línea de defensa es una buena programación y diseño.Asegúrese de no hacer nada estúpido como recargar datos de una base de datos varias veces por solicitud en lugar de almacenarlos en caché.Antes de que se produzca el pico, es necesario realizar algunas pruebas de carga bastante realistas para ver dónde están los cuellos de botella.

Para un tráfico absurdamente alto, considere la posibilidad de cambiar algunas páginas dinámicas a páginas estáticas.

Tener una arquitectura de servidor que pueda escalarse también ayuda.Los hosts compartidos generalmente no escalan.Una sola máquina dedicada generalmente no escala.Usar algo como EC2 de Amazon para alojar puede ayudar, especialmente si planea un grupo de servidores desde el principio (incluso si su grupo es una sola computadora).

Su siguiente gran preocupación es la seguridad.De repente eres un objetivo mucho más grande para los malos.Asegúrese de contar con un buen plan de seguridad.Esto es algo que siempre deberías tener, pero se vuelve más importante con un uso elevado.

Otros consejos

En primer lugar, pregúntate si realmente quieres gastar semanas y miles de dólares en la planificación de algo que tal vez ni siquiera suceda y, si sucede, que dure unas 5 horas.

La solución más sencilla es tener una buena forma de cambiar a una página que simplemente permita registrarse.La gente se registrará y podrás enviarles un correo electrónico cuando haya pasado la tormenta.

Las soluciones más elaboradas dependen de poder escalar rápidamente.En primer lugar, se trata de un problema de software (¿puede conectarse a una base de datos en otro servidor? ¿Puede realizar el equilibrio de carga)?En segundo lugar, su solución de alojamiento debe admitir una rápida expansión.Me viene a la mente Amazon EC2, o tal vez slicehost.Con ambos servicios puede iniciar fácilmente nuevas instancias ("Movamos la base de datos a un servidor diferente") y expandir sus instancias ("Actualicemos el servidor de base de datos a 4 GB de RAM").

Si mantiene todos los datos en la base de datos (incluidas las sesiones), puede tener fácilmente varios servidores de aplicaciones para el usuario.Para la base de datos, normalmente probaría con un único servidor con los mayores recursos disponibles, pero sólo porque no he trabajado con la replicación de bases de datos y solía ser bastante difícil de hacer, al menos con MySQL.Las cosas podrían haber mejorado.

El diseñador de la aplicación debe pensar en la ampliación (máquinas más grandes con más núcleos y mayor rendimiento) y/o la ampliación (distribuir la carga de trabajo entre múltiples sistemas).El encargado de TI necesita encontrar la mejor manera de respaldar esto.Lo primero que miras es la red, porque obviamente todo se basa en ella.Comenzando en la frontera, eso generalmente significa balanceadores de carga de red y enrutadores redundantes atendidos por múltiples proveedores.También puede consultar aplicaciones y servicios de almacenamiento en caché geográfico como cachefly.

Quiere reducir sus cuellos de botella tanto como sea posible.También desea diseñar el entorno de modo que pueda ampliarse según sea necesario sin mucho trabajo.Haga el trabajo de diseño desde el principio y significará menos dolores de cabeza cuando lo investiguen.

Algunas ideas (de lo que usé en proyectos pasados ​​y actuales):Para aumentar el rendimiento (si es necesario), puede colocar un calamar de almacenamiento en caché con proxy inverso frente a su servidor.Por supuesto, eso solo funciona si no tienes claves de sesión y si las páginas son algo estáticas (significa:cambian sólo una vez cada hora aproximadamente) y no son personalizados.Con Squid puedes potenciar un CMS lento y abultado como typo3, teniendo así el rendimiento de sitios web estáticos con la comodidad de un CMS.

Puede subcontratar archivos grandes a servicios externos como Amazon S3, ahorrando ancho de banda de su servidor.

Y si puede gastar algo de dinero (tres cifras por mes), también puede utilizar una red de entrega de contenido.Una vez implementado esto, automáticamente tendrá escalabilidad, alta disponibilidad y bajas latencias para sus usuarios.Por supuesto, sus páginas deben poder almacenarse en caché, por lo que las claves de sesión y las páginas personalizadas son un no-no.Si se diseña cuidadosamente y teniendo en cuenta las CDN, al menos puede almacenar en caché ALGUNO contenido, como fotografías, vídeos y material estático.

La carga aumenta, como han mencionado otras respuestas.

También recibirás una afluencia de nuevos usuarios/comentarios de blogs/votos de gente aburrida que sólo está interesada en el vandalismo.Esto es principalmente un problema para los blogs que permiten comentarios completamente anónimos, donde se escriben cosas espantosas.La plataforma de blogs puede tener filtros de spam suficientes para bloquearla, pero con frecuencia se requiere intervención manual para limpiar las tonterías restantes.

Incluso una pequeña barrera de entrada, como exigir un nombre de usuario o una dirección de correo electrónico incluso si no se realiza ninguna verificación, reducirá drásticamente el volumen del vandalismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top