Pregunta

Tengo una aplicación (un servicio de conferencia IP) que necesito escalar. Tiene bastantes componentes / aplicaciones independientes, escritas en diferentes lenguajes (principalmente C ++ y PHP, algo de Perl). Actualmente, una única instalación se ejecuta en 5 máquinas, con 1-2 componentes que comparten una sola caja. Por lo tanto, la configuración de cada caja es diferente, por lo que es difícil escalar todo, sin mencionar el mantenimiento.

Los componentes individuales varían desde proxies de medios a proxies de mensajes y bases de datos, por lo que la carga es de todo menos.

Estaba pensando en colocar todos los componentes en una sola máquina y agregar más cajas a medida que avanzo con un equilibrador de carga en el frente. Otros me recomendaron escalar a la inversa: agregar cuadros especializados donde la carga de la aplicación es alta, pero esto lleva a la pesadilla de mantenimiento.

¿Sabes recursos donde debería empezar? Idealmente, necesitaría algunos puntos de referencia, ¿cuál es el mejor enfoque en términos de rendimiento? (pensando en voz alta, cuando tengo X cantidad de carga y Y cantidad de memoria y capacidad de procesamiento, ¿dónde importa cómo lo asigno?)

¿Fue útil?

Solución

Iría a la virtualización. De esa manera, puede tener varias máquinas de configuración similares y distribuir la carga entre ellas según sea necesario, incluso si mantiene los módulos en máquinas virtuales separadas.

Otros consejos

Necesitas determinar dónde estará la carga más alta o el cuello de la botella, será difícil planear esto sin hacerlo.

Yo segundo mirando a la virtualización. Hace que tu aplicación: Rápido de implementar Fácil de copia de seguridad En caso de fallo rápido para restaurar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top