1 votos

cómo escalar una aplicación web - patrones comunes

Considere iis y mssql por un lado y apache y mysql por otro. ¿es la misma táctica al escalar iis y apache?

Tengo lo básico del escalamiento - nivel web y nivel de base de datos separados, y luego redundancia de base de datos, etc...

PERO, ¿cómo escalar una aplicación que se ejecuta en iis?

por ejemplo, antes se ejecutaba en una máquina, ¿ahora lo queremos en varias máquinas? la misma pregunta para algo alojado en apache? veamos wordpress (ejemplo común) - ¿cómo hacer para que las solicitudes de un blog puedan ser procesadas en más de una máquina (virtual) en la nube?

espero que mi pregunta sea al menos algo clara, si no es así pregunte por favor.

básicamente estoy buscando un patrón a la hora de escalar aplicaciones web. ¿algún? ¿algún enlace a información quizás?

Especialmente en la nube.

gracias

1voto

goose1 Puntos 13

Por lo general, tendrías una granja web:

  • El navegador envía una solicitud a un sitio web
  • El DNS del sitio web se resuelve en un equilibrador de carga (LB)
  • LB reenvía la solicitud a uno de los varios servidores web

El LB también supervisará los servidores web para que un servidor fallido sea ignorado.

Hay algunos problemas sobre la sesión, etc. si no se comparte en una base de datos, pero en general esto funciona bien. Usted desacopla su sitio web de una sola máquina y obtiene la funcionalidad básica de DR

0voto

Paul Puntos 1066

Bueno, probablemente no desplegarás Wordpress de esta manera (aunque django y web2py son posibilidades) ... pero aquí hay una idea

Se supone que Google App Engine ayuda a los desarrolladores a desplegar aplicaciones escalables, y uno esperaría que parte de la experiencia de Google en esta área se cristalice en la estructura de GAE. Estas son las características más destacadas que obtuve de mi breve experiencia:

  • servlets java (o python) independientes que pueden iniciarse o terminarse en hosts individuales en una colección de hosts idénticos no especializados, bajo demanda - en lugar de aplicaciones voluminosas que requieren varios procesos y entornos especiales preparados
  • en una aplicación ocupada que está activa en múltiples servidores, el navegador web puede no coincidir con el mismo host cada vez... y el servlet necesita ser escrito para lidiar con eso
  • para una aplicación escalable, los desarrolladores deben probar y asegurarse de que la mayoría de las peticiones tardarán menos de 1 segundo en procesarse (GAE permite 30 segundos, pero marcará las peticiones que tarden más de 1 segundo, y explican que el objetivo de rendimiento de menos de un segundo se tiene en cuenta a la hora de decidir cómo tratará su aplicación GAE)
  • utilizar la memoria RAM volátil (servicio de memcache) para ayudar a evitar la búsqueda en el disco (servicio de almacenamiento) cuando sea posible para las solicitudes de datos populares [en un enfoque tradicional esto también evitaría la creación de bloqueos de lectura que atan a los escritores... siempre y cuando servir algunos datos obsoletos sea aceptable].

También debo señalar que sólo recientemente GAE ha soportado mySQL como parte de la clase GAE Business ... el servicio DB original es algo diferente y más como una gran matriz asociativa.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: