2011-09-22 9 views
6

Hola soy un nuevo programador y he estado trabajando en mi primera aplicación real que voy a lanzar en las próximas semanas. La aplicación utiliza algunas ideas claras sobre cómo compartir fotos, pero básicamente es solo una aplicación web para compartir fotos. Me gustaría encontrar información sobre qué tipo de cargas puede manejar una pequeña aplicación de rieles 3, pero no estoy seguro de por dónde empezar. ¿Tengo que ejecutar pruebas de evaluación comparativa para encontrar cuántas solicitudes puede manejar y qué tan rápido lo hace? ¿Cómo puede uno encontrar estadísticas como esta para su aplicación?aplicación Rails 3, cómo medir la estabilidad bajo altas cargas

En definitiva, me gustaría tener una idea de la cantidad máxima de tráfico que el sitio podría manejar, o podría manejar algún día, para hacer que mis averiguaciones caigan con lo que estoy trabajando. No me gustaría poner en marcha una campaña de marketing viral si el sitio no puede manejar más de cientos de solicitudes simultáneas. No estoy tratando de saltar la pistola y prepararme para un montón de tráfico que aún no tengo, pero realmente me gustaría tener un poco de comprensión y una idea de a dónde ir después en términos de cómo la usabilidad y la escalabilidad de mi solicitud.

¡Muchas gracias!

Respuesta

4

La gran pregunta aquí es donde se le Distribución de aplicaciones:

que reciban a algunas de las minas en una instancia linode, usando nginx/unicornio. Es mucho más trabajo pero me gusta. No me molesto en cargar mucho las pruebas, pero a veces llego a las páginas principales con Siege (puede instalarlo con homebrew, brew install siege) para tener una idea de con qué estoy trabajando.

Mientras que en el tema de la implementación, yo pensaría que recibir hosting pago desde Heroku eliminaría algunas de sus preocupaciones sobre la estabilidad, actualizando la configuración de la aplicación para sobrevivir a cargas más grandes.

¿Puede darnos más información sobre sus opciones de alojamiento?

+0

Hola gracias por la ayuda. Estoy alojado usando heroku pero no estoy seguro de qué tipo de configuración necesito para manejar el tráfico moderado. –

1

"qué tipo de cargas de una aplicación puede manejar xxxx"

Estás en lo correcto. Para responder esto, ¡probamos!

Sin pruebas, no podemos simplemente decir algo tan amplio como nuestra aplicación de ruby, que se ejecuta en 2 dyno's de heroku, puede manejar 100 solicitudes/seg., O 100 usuarios concurrentes. Necesitamos probar. Escalar también puede ser un asunto complicado. Sin pruebas, no sabremos qué componentes escalan bien y cuáles no.

Para comenzar, tenemos nuestra aplicación, el sistema bajo prueba. Ya estamos corriendo en Heroku, lo que nos da acceso inmediato al complemento New Relic. Podríamos tratar de activar la versión gratuita de New Relic para ver qué información nos brinda. Hay una versión de pago que también podríamos probar durante nuestras 'sesiones de ajuste' si tenemos que profundizar más.

Entonces nos falta el "controlador", el proceso que impulsará la carga contra la aplicación, utilizando los flujos de proceso más comunes (carga de imágenes, exploración de imágenes, inicio de sesión, etc.).

Para empezar, solo necesitamos 1-N de nuestros amigos más cercanos dispuestos a actuar como usuarios en nuestro sitio mientras supervisamos toda la actividad de New Relic. Medir los tiempos de respuesta para las experiencias del usuario, identificar las consultas de ejecución lenta, ver dónde está gastando su tiempo nuestra aplicación.

Cuando nos cansamos de comprar a nuestros amigos toda la cerveza por ayudarnos, podemos ver la automatización de algunos de esos flujos comerciales comunes utilizando una herramienta de prueba de carga.Hay comerciales: Mercury LoadRunner, Borland SilkPerformer y Microsoft Team Test.

También podríamos ser creativos usando herramientas de pruebas funcionales como Watir o Selenium, o incluso wget de confianza, o curl, para impulsar la carga.

Podemos usar nuestras computadoras portátiles o Amazon EC2 como agentes de carga, lo que generaría tráfico de usuarios en el sitio al ejecutar nuestros scripts.

No tiene por qué ser tan difícil como todo esto, aunque las pruebas generalmente se vuelven espirales en un atolladero si no tenemos cuidado de asegurarnos de que estamos probando los flujos correctos y tal vez tan importante, medir nuestra aplicación. Sin mediciones, no sabremos si los cambios en el código o la configuración mejoraron o empeoraron las cosas.

descargo de responsabilidad: Nunca he tenido una aplicación Rails de producción, pero si lo hiciera, usaría New Relic para controlarla. Al menos para empezar, especialmente porque ya estamos en Heroku.

1

no he probado todavía pero he oído acerca de:

http://blitz.io/

Se ve bien y es apoyado por Heroku a través de add-on

Cuestiones relacionadas