2011-10-12 13 views
5

Tengo una pregunta sobre el alojamiento para una aplicación de raíles de mucho tránsito. El caso es que tengo 3/4 años de experiencia con las aplicaciones de Ruby on Rails, pero nunca antes había tenido un sitio web con mucho tráfico. Estoy muy emocionado porque este es el "siguiente nivel" para mí y para mi compañero de trabajo. El problema es que no tenemos experiencia con una aplicación de rieles para manejar "alto tráfico", antes que nada permítame definir "alto tráfico" en este caso.Preguntas de alojamiento para una aplicación "alta" de raíles de tráfico

Estamos desarrollando una aplicación de rieles para uno de los principales proveedores holandeses de telecomunicaciones y la aprox. los visitantes por día serán alrededor de 400,000 usuarios. Estamos programando en ruby ​​1.9.2 y Rails 3.1. Estamos utilizando un dispositivo para el manejo de la autenticación. Pero estamos buscando una fiesta confiable para alojar esta aplicación. Estamos mirando a Heroku, pero no tengo ni idea de qué necesito y cuántos trabajadores, dinamo y/o base de datos dedicada necesito. Necesitamos transmitir películas, y estamos planeando alojarlas en un cubo amazon s3.

Así que estoy buscando consejos sobre Heroku y/u otras partes profesionales y confiables. ¿Hay cosas que debo tener en cuenta con respecto a la aplicación de rieles?

Gracias!

Respuesta

9

Es bastante fácil calcularlo en términos de dinamismo.

Un dyno tiene una sola rosca, por lo que si su página tarda 200ms en renderizar, puede procesar 5 páginas por segundo. Necesita averiguar cuántas páginas por segundo harán esos 400,000 usuarios. Entonces sabrá cuántas páginas por segundo se están solicitando y qué puede manejar un solo banco de pruebas. Así que simplemente aumentaría su cuenta de dyno hasta que cumpla con sus solicitudes de usuario por segunda cifra.

por ejemplo 1 dyno @ 200 ms = 5 páginas por segundo 2 dinamómetros @ 200 ms = 10 páginas por segundo

etc etc. Es sólo una figura parque de pelota, ya que van a ser otros factores como el rendimiento DB etc pero puede estar seguro de que Heroku es adecuado para este tipo de situaciones, ya que es muy fácil, así que agregue más dineros para aumentarlo.

Tendrá que utilizar trabajadores para cualquier evento de larga duración, por ejemplo, enviar un correo electrónico, etc. donde haya un tercero que puede tardar un tiempo en responder y manejar las colas si su aplicación las usa.

Una vez que se supera la base de datos de 20 Gb, debe estar utilizando una base de datos dedicada y parece que el DB inicial de $ 200 por mes no va a hacer que sumen los costos de alojamiento.

¿Extraño algo? Si volví a contactarme,

+0

con 1 díno ¿te refieres a un dyno de web o de trabajador? ¿Y qué hace un dyno de trabajador? ¿Puedo ver esto como procesos de carga de clips y manipulación de fotos rmagick/imagemagick? –

+1

Entonces, es un poco confuso. Solía ​​ser dynos (para web) y workers (para trabajos de fondo). En la nueva pila 'Cedar' solo tienes procesos. Un trabajador debe ser utilizado para cualquier cosa que se pueda realizar en segundo plano o que probablemente lleve mucho tiempo. Si no lo hace, entonces cambiar el tamaño de las imágenes en la misma solicitud que la página web significaría que el dyno (o proceso web) no puede procesar otras cosas mientras está ocupado. Por lo tanto, las solicitudes futuras se pondrán en cola y, en última instancia, se agotarán los tiempos de espera si no reciben una respuesta en 30 segundos. –

+0

¡Gracias por su ayuda! Tengo otra pregunta sobre seguridad. ¿Hay cosas en las que necesito pensar? ¿Debo hacer que la identificación sea aleatoria e impredecible? ¿Y cuál sería la mejor manera de hacerlo? –

Cuestiones relacionadas