Estoy confundido con las instrucciones de instalación. ¿Existe alguna forma de escalar Discourse horizontalmente? Por ejemplo, ¿tener 2 o más contenedores de Docker en servidores diferentes, cada uno ejecutando Discourse?
La configuración de múltiples contenedores es mucho más flexible y robusta, aunque también es más complicada de configurar. Una configuración de múltiples contenedores te permite:
Minimizar los tiempos de inactividad al actualizar a nuevas versiones de Discourse. Puedes iniciar nuevos procesos web mientras tu sitio está en funcionamiento y, una vez que se haya construido, cambiar a la nueva imagen.
Escalar tu foro a varios servidores.
Añadir servidores para redundancia.
Ejecutar algunos servicios necesarios (por ejemplo, la base de datos) en hardware más potente.
Si deseas una configuración de múltiples contenedores, consulta las plantillas data.yml y web_only.yml en el directorio de ejemplos. Para facilitar este proceso, launcher inyectará una variable de entorno llamada DISCOURSE_HOST_IP, que estará disponible dentro de la imagen.
¿Existe algún lugar donde pueda encontrar más información sobre cómo ejecutar los contenedores en servidores diferentes y no múltiples contenedores en el mismo servidor?
Ejecuta ./launcher bootstrap app en algún lugar. Esto resultará en la creación de una imagen de contenedor en la máquina local. Sube esta imagen a tu servicio de registro de contenedores.
Ahora puedes crear tantas instancias como desees, indicando que todas ejecuten la imagen exportada en el paso anterior.
Puedes usar la configuración multisitio para que un único contenedor sirva varios sitios (usando los mismos complementos y versión de Discourse). Esto describe cómo hacerlo sin un proxy inverso externo. Si lo intentas, por favor deja un comentario allí y dime si funcionó. Tengo la intención de publicarlo aquí cuando esté bastante seguro de que funciona.
Ejecutar contenedores en varios servidores es igual que cualquiera de las opciones anteriores. Tendrías múltiples contenedores compartiendo el mismo Redis y Postgres, ejecutándose detrás de un equilibrador de carga.
Principalmente, hacer cualquier cosa distinta de la instalación estándar oficial de Discourse no está soportado, ya que existen infinitas formas de hacer esas cosas.
La primera para Sidekiq en el caso de ejecutar múltiples web_only.yml de Docker cada uno en una VM diferente: En este primer caso, diferentes instancias de Sidekiq que comparten el mismo servidor Redis pueden ejecutar el mismo trabajo dos veces, ¿es Discourse robusto para este tipo de error? ¿Es más fiable usar un Sidekiq en una VM dedicada (o Docker), entonces cómo separarlo de web_only de Discourse?
Sobre tus últimos comentarios para la instalación soportada: Entiendo que la gente puede tener infinitas formas de configurar múltiples contenedores, pero, en mi opinión, necesitamos una forma soportada de ejecutar múltiples instancias para escalado horizontal y/o alta disponibilidad en dos casos: basado en VM (diferentes Docker web_only de Discourse en diferentes VMs y Redis/Postgres instalados en otras VMs separadas directamente sin usar Docker) y basado en contenedores (todo está basado en contenedores).