rails ocean digitalocean deploy app ruby-on-rails deployment

ruby on rails - ocean - Grandes cosas que hacer al implementar una aplicación de rieles



nginx rails (3)

En la pregunta: ¿Qué cosas pequeñas necesito hacer antes de implementar una aplicación de rieles ? Estoy obteniendo muchas respuestas que son más grandes que "pequeñas cosas". Entonces esta pregunta es ligeramente diferente.

Qué pasos más importantes debo tomar antes de implementar una aplicación de rieles. En este caso, me refiero a cosas que van a durar más de 5 minutos, por lo que deben programarse. Para pequeños cambios de configuración en línea, usa la pregunta de cosas pequeñas.


Elija un servidor web / balanceador de carga

Mi servidor preferido es nginx, pero el patrón común es comenzar con apache + mod_proxy_http.


Use un poco de monitoreo del proceso

En ocasiones, sus procesos (mestizos en muchos casos) morirán u otras cosas malas les sucederán. Por ejemplo, una fuga de memoria puede causar que el consumo de memoria aumente indefinidamente o un proceso podría comenzar a usar toda su CPU.

Monit y Dios son buenas opciones para salvarte de este destino. También se pueden configurar para que accedan a una url en su sitio para buscar un código de respuesta de 200.

Configurar el monitoreo del servidor

Algunas sugerencias en este espacio: fiveruns , newrelic , scout

Estas herramientas registrarán las métricas detalladas en sus servidores y son invaluables cuando algo va mal y necesita ver lo que sucedió realmente. También le brindan información en tiempo real sobre la carga del servidor.

Si tiene un clúster, este tipo de informes es aún más crítico.

Apoyo

Escriba una secuencia de comandos para realizar periódicamente una copia de seguridad de su base de datos y cualquier otro activo que sus usuarios puedan cargar. S3 podría ser una buena opción para esto.


Configure Capistrano para su implementación. Usted querrá aprender capistrano si aún no lo sabe y usarlo para implementar su código de manera automática. Esto implicará configurar su directorio compartido y recursos compartidos como database.yml.

Instalar C MySQL gem Si no tiene todas las librerías requeridas, esto puede demorar un poco, pero menos de 20 minutos.

Asegúrate de no ser vulnerable a los ataques comunes a las aplicaciones web. Fijación de sesión, secuestro de sesión, creación de scripts entre sitios, inyección de SQL (probablemente no tengas que preocuparte demasiado por la inyección de SQL). Asegúrese de utilizar h () cuando envíe datos ingresados ​​por el usuario en una pantalla de visualización. Un montón de buen material en línea sobre esto.

Elija una arquitectura de servidor Nginx, Mongrel, FastCGI, CGI, Apache, Passenger: hay mucho para elegir. Piense en cómo se usará su aplicación y decida cuál es la mejor arquitectura, luego configúrela.

Configurar el Notificador de Excepción o el Registrador de Excepción Querrás que tu aplicación te avise cuando se rompa. Configure una de estas herramientas para rastrear las excepciones de producción. Nota: el notificador de excepciones le advertirá cuando se produzcan errores de enrutamiento (es decir, cuando las personas URL de dedos gordos o script kiddies lo ataquen): piense en lo que quiere que haga el marco cuando eso ocurra y ajústelo según corresponda.

Asegúrese de que todas sus contraseñas estén fuera del control de la fuente. Si tiene database.yml, mail.yml (si usa yaml_mail_config) u otros archivos confidenciales en el control de código fuente, sáquelos de allí, reemplácelos con database.yml.example, y colóquelos en la carpeta compartida en su servidor.

Asegúrese de que su base de datos esté bloqueada. Mucha gente se olvida de asegurar MySQL al configurar su nueva caja de Rieles de producción. No seas como ellos.

Asegúrese de que todos los pequeños archivos web estén en su lugar. Si planea aparecer en la lista de Google, genere un archivo sitemap.xml . Si está planeando usar un. htaccess archivo para algo, asegúrese de que esté allí. Si necesita un archivo robots.txt para evitar que ciertas áreas de su sitio sean indexadas, haga una. Si quieres una página 404 atractiva, asegúrate de que esté configurada correctamente. Si desea que una página "Be Right Back" esté presente cuando implemente, asegúrese de tener un archivo de mantenimiento de Capistrano especificado y Nginx o Apache sabe cómo y cuándo redirigir a él.

Obtenga sus certificados SSL en su lugar Si va a utilizar SSL, asegúrese de obtener certificados que sean válidos en su dominio de producción y configúrelos.