Actualmente tengo un VPS en HostingRails.com y estoy bastante decepcionado con el servicio, por lo que he estado considerando cambiarme a Linode. Tengo tres aplicaciones Rails (mi aplicación en vivo, la versión de control de calidad de la aplicación en vivo y unaredminar) ejecutándose en Passenger en Apache, una instalación de phpbb y una base de datos mysql actualmente ejecutándose en mi VPS, que en total ocupa alrededor de 400 MB de RAM en este momento.
Estoy tratando de determinar si sería mejor obtener un nodo de 720 MB y simplemente colocar todo allí, o obtener dos nodos de 360 MB y tener el sitio activo en uno y el sitio de control de calidad y redminar en el otro (en ese caso, ¿Sugeriría dos bases de datos separadas, una para cada nodo)? Me sugirieron que dividir mis solicitudes sería una buena idea, pero no sé si eso es cierto; Calculo que si tengo un nodo, si la aplicación en vivo necesita más memoria, puede consumir los 360 MB que probablemente no serían utilizados por completo en mi instalación de control de calidad y redmine.
Además, actualmente tengo mi SVN (1 proyecto activo, un par de inactivos, dos usuarios) alojado en Dreamhost porque pagué un plan por adelantado y dejé mi SVN allí en lugar de moverlo a mi VPS. ¿Mover SVN a linode afectaría su respuesta?
Respuesta1
Con dos nodos, si bien obtienes la misma cantidad de memoria, también obtienes el doble de tiempo de CPU y tokens de IO.
SVN podría ejecutarse en la misma instancia de Apache que Passenger, sin afectar demasiado el rendimiento.
Además, es posible que desee considerar una configuración diferente: un nodo de base de datos y un nodo de servidor web. Ninguno de los dos estaría infrautilizado (después de todo, Apache es bastante pesado) y, si estuvieran en el mismo centro de datos, podría apuntar ambas IP públicas al nodo del servidor web (Linode lo permite) y dejar que se comunique con el nodo de la base de datos a través de Linode. LAN (evitando cuotas de transferencia).
Respuesta2
Por experiencia en el suministro de hosting administrado para un par de empresas basadas en Rails, siempre ha resultado exitoso separar la base de datos y la aplicación (como señala fahadsadah).
Sin embargo, no ejecutaría Apacheynginx en la misma máquina, especialmente en un entorno vps de recursos limitados. Como se ha dicho antes, Apache en sí es bastante pesado, pero puede manejar todas sus necesidades de pasajeros, svn y php. Entonces no agregaría nginx a la mezcla. Después de todo, es una pieza más de software que necesita mantenimiento (configurado, actualizado/parcheado, etc.).
Además, personalmente tiendo anoalojar mi código fuente dentro de la misma configuración en la que se ejecuta mi aplicación. Confío bastante en la solidez y seguridad de nuestro código, pero si alguien alguna vez logra encontrar una manera de atravesar la aplicación y el servidor, también tendrá acceso completo a nuestra fuente. y tus datosylas revisiones de su código son posiblemente lo último que desea que un cracker tenga en sus manos...
Sé que es un complemento descarado, pero mi empresa ofrece hosting Redmine y SVN combinados bajo la marcaplano. Debería haber otros servicios como Planio también, para que puedas elegir. Mi principal consejo es: intente delegar el alojamiento de sistemas de soporte a partes externas confiables y centre sus esfuerzos de alojamiento en su elemento principal (es decir, su aplicación).