En mi opinión, te conviene esperar al eventual Raspberry Pi 5, el cual —si proyectas hacia adelante el progreso en el rendimiento de los Pi desde el 2, al 3, al 4— debería tener suficiente potencia para ejecutar Discourse.
No estoy seguro de que las dependencias de x86 (¿x64?) sean superables en este momento, pero tampoco es mala idea examinarlas a largo plazo.
Un clúster de Pi 4 con el procesador cuádruple de 64 bits a 1,5 GHz y, posiblemente, discos USB 3 para almacenamiento (~300 MB/s) o un almacén de objetos externo (S3 o GCP), junto con una CDN frente a esos usuarios anónimos, debe ser una alternativa de plataforma viable ¡El futuro lo dirá!
Ese número no es realmente significativo por sí solo.
No especificaste qué tarjeta microSD era, pero está en el mismo orden de magnitud que una Lexar Professional 1800x, que puede mantener velocidades de lectura secuencial de ~300 MB/s y escrituras cercanas a 250 MB/s. Las lecturas y escrituras secuenciales no son el problema con las microSD; necesitas observar las lecturas/escrituras aleatorias para tener una idea real de lo que ocurrirá cuando múltiples usuarios accedan a la base de datos y a los activos locales.
Los SSD modernos suelen situarse en el rango de más de 500 MB/s en lecturas secuenciales y más de 475 MB/s en escrituras secuenciales, lo cual no está demasiado lejos de los números anteriores. Sin embargo, la diferencia de rendimiento en las lecturas/escrituras aleatorias es enorme: el mismo SSD puede alcanzar hasta 400 MB/s en una prueba 4KiBQ8T8, mientras que la Lexar cae a cifras bajas de dos dígitos, alrededor de 15 MB/s. Las escrituras aleatorias son aún peores, con el SSD manteniendo hasta 300 MB/s, mientras que una microSD se queda muy por debajo, en cifras bajas de un solo dígito (2 MB/s).
Soy un gran admirador de la rPi y las uso en muchos lugares, pero todavía están muy lejos de donde necesitamos que estén.
Es una tarjeta Sandisk de 64 GB de 20 USD (en Suecia), creo que es de categoría A2. Solo quería demostrar que la velocidad secuencial pura no es tan mala como la describiste
Si no funciona en la rPi incluso con un SSD externo en los puertos USB 3, asumiría que ejecutar la base de datos de forma externa solucionaría ese cuello de botella en particular. Pero tengo un sesgo, ya que me encanta la idea de poner en marcha un clúster de ARM con las tarjetas de red de 1 Gbit/s reales que ahora tiene el Pi 4. También me gusta desafiar la mentalidad de “no funciona” en general
Si le dedicas suficiente tiempo, dinero y recursos a cualquier cosa, puedes hacer que funcione.
Las solicitudes para ejecutar Discourse en una Raspberry Pi en los últimos años suelen provenir de usuarios que tienen una Pi y no quieren gastar nada más allá de eso. Eso es efectivamente lo que estamos explorando aquí.
En el momento en que empiezas a añadir SSDs externos y a trasladar la base de datos a otro sistema, en realidad ya no estás hablando de alojar Discourse en una Raspberry Pi.
Toma una Raspberry Pi 4 de 4 GB u 8 GB de RAM y luego consigue una tarjeta MicroSD (INDUSTRIAL) en Amazon, eBay…
Escribe la imagen en Docker desde el sitio: https://blog.hypriot.com/, específicamente en la sección: Download, última versión.
Una vez que la imagen esté grabada en la SD, insértala en la Raspberry Pi y conéctate vía SSH (las credenciales de Docker SSH son: “pirate” “hypriot” → (Usuario: pirate) (Contraseña: hypriot)). Obviamente, después de conectarte por SSH, cambia las credenciales a tu gusto mediante → sudo raspi-config y reinicia la Raspberry Pi.
Seguí tus instrucciones, instalé Hypriot, etc., pero obtuve el siguiente error:
$ ./launcher bootstrap app
standard_init_linux.go:211: exec user process caused "exec format error"
Tu instalación de Docker no está funcionando correctamente
Ver: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
Al parecer me equivoqué al inferir que Massym logró ejecutar Discourse en una Raspberry Pi 4, ya que al releer su publicación, no lo afirma específicamente. Fue una pérdida de tiempo de mi parte, pero al menos sirvió como ejercicio de aprendizaje.
¿Qué componente específico de Discourse no es compatible? Estoy seguro de que muchos otros estaríamos ansiosos por hacerlo funcionar.
Tengo muchas ganas de ver que funcione. Uno de mis foros, que se ejecuta en Discourse, es el último elemento pendiente mientras me traslado a un clúster de Raspberry Pi 4, que consume infinitamente menos energía que el servidor basado en Intel.
Bump, ¿hubo algún avance en el gem v8 para ARM? Intenté compilar las imágenes, pero siempre me quedé atascado en ese gem; es un poco intrincado. Falla principalmente porque los scripts intentan descargar herramientas x86_64 (para la compilación) y ejecutarlas en ARM…
ARM en el servidor (y en Ruby) dará muchos avances muy pronto gracias a que el increíble chip M1 de Apple finalmente está disponible en una laptop real.
Pero el propio Raspberry Pi, incluso el mucho mejorado modelo 4, es lamentablemente insuficiente para funcionar como servidor. Según este post y los resultados de Speedometer 2.0…
3B+ Buster, kernel de 32 bits
9.49/9.66/9.46 = 9.54 Chromium
4B4 Buster, kernel de 64 bits (el de 32 bits dio resultados equivalentes)
17.2/17.0/17.1 = 17.1 Chromium
Smartphone OnePlus 7 Pro (Snapdragon 855, 8 GB de RAM, Android/Oxygen OS 10)
36.3/35.9/36.8 = 36.3 Chrome
HP Chromebook x2 (doble núcleo M3-7Y30)
68.2/68.6/68.0 = 68.3 Chrome OS 78
Pronto se verá. He estado ejecutando otras aplicaciones de Rails en un RPi4 y estaba satisfecho con el rendimiento, pero debo admitir que eran mucho más simples que Discourse.