El equipo de DevOps en edX ha estado ocupado trabajando con la comunidad para que Open edX esté disponible para todos en el mundo. Casi todo el código detrás edx.org is puesto a disposición del público bajo una licencia GPL. Además del código fuente de la plataforma edx, los scripts de configuración que instalan y actualizan la plataforma están disponibles en nuestro repositorio de configuración. La herramienta que usamos para la configuración se llama Ansible, una herramienta de administración de configuración basada en Python que tiene el equilibrio adecuado entre flexibilidad y simplicidad para nuestro equipo de operaciones.
Periódicamente edX lanza imágenes de Vagrant si desea instalar edX en su PC. Ver nuestra documentación para configurar la plataforma localmente en una máquina virtual.
Si bien generalmente nos enfocamos en implementar edX en grandes servidores de producción basados en la nube, esta publicación cubre un desafío muy diferente: una prueba de concepto para ejecutar el curso edX y el software de creación en Raspberry Pi.
El Frambuesa Pi es una computadora ARM/Linux de bajo costo que se puede comprar por alrededor de $35. Ejecutar el sitio web de edX en un dispositivo de bajo costo como el Pi podría habilitar aulas portátiles en áreas que tienen acceso limitado a Internet. Esto se puede hacer con Pi por menos dinero que una computadora portátil o de escritorio.
Una configuración de sitio mínima es funcional en Raspberry Pi, pero aún no funciona lo suficientemente bien como para usarse en cursos reales que atienden a varios estudiantes. La plataforma, sin embargo, es funcional para un solo estudiante, con margen de mejora potencial.
Descarga e instala
- Paso 1: Descargue la imagen prefabricada de Raspberry Pi: edx-raspberrypi-20131228.img.gz
- Paso 2: Flashea la tarjeta SD
Puede usar el nombre de usuario y la contraseña predeterminados para ssh – usuario: pi contraseña:frambuesa - Paso 3: Asegúrese de que el supervisor se esté ejecutando y que tanto el LMS como el CMS se estén ejecutando:
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - Paso 4: Con su navegador, conéctese al LMS y Studio:
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
Qué funciona y qué no
- Crear un nuevo curso usando Studio
- Accede a los cursos como alumno
Medición del tiempo de procesamiento de la página con las herramientas de desarrollo de Chrome:
- Página de material didáctico de demostración de LMS ~ 5 segundos
- Página del panel del estudiante ~ 5 segundos
Las siguientes funciones aún no son compatibles:
- Foros no están habilitados y probablemente no sean compatibles con la versión actual de Mongo.
- Los calificadores de código personalizados no están habilitados.
- ORA / Discernir para el aprendizaje automático no están habilitados.
Configuración de edX en la Raspberry Pi
hardware de frambuesa pi
- Frambuesa Pi de 700 MHz / 500 MB
- Tarjeta SD de 8 GB
Configuración del servicio
Los siguientes servicios se ejecutarán en la Raspberry Pi después de la instalación:
- Nginx/Gunicornio
- Python/Django y todas las bibliotecas de Python que dependen de él
- MySQL
- Mongo
- Memcached
Todo lo que requiere edX se encuentra en /edx y es completamente autónomo en múltiples entornos virtuales de Python. Mongo está instalado en /edx/mongo, que es el puerto no x86 compilado para ARM. Dado que compilar todo para Raspberry Pi desde cero lleva días, hay una imagen pública disponible que servirá como un buen punto de partida.
Se necesitan algunas advertencias y mejoras antes de que pueda usarse seriamente:
- Es necesario eliminar el registro superfluo: el nivel de registro está establecido en CRÍTICO, pero los registros de seguimiento se escriben actualmente en la tarjeta SD.
- El rendimiento general no es ideal y será difícil mejorarlo sin configurar un almacenamiento en caché más agresivo o realizar cambios de código adicionales.
- La actualización del repositorio de la plataforma edx lleva aproximadamente una hora.
Configuración con Ansible
Utilizamos Ansible como la herramienta de gestión de configuración edX para sistemas de producción. Los mismos scripts con algunas pequeñas modificaciones funcionarán para Raspberry Pi.
Ansible está configurado en Raspberry Pi, lo que facilita su actualización para nuevas versiones de la plataforma edx y la realización de cambios de configuración. Las actualizaciones tardan aproximadamente una hora debido a la compilación de activos (Coffeescript y Sass), aunque ese paso podría realizarse sin conexión, ya que no es una arquitectura específica.
Cómo actualizar Raspberry Pi a la última confirmación de edx-platform
Los siguientes comandos se pueden ejecutar directamente en la Raspberry Pi para actualizar su configuración o la versión del repositorio de la plataforma edx:
# Ensure that the configuration repo is on the Raspberry Pi branchsudo /edx/bin/actualizar configuración jarv/raspberrypi
# Ejecute el libro de jugadas Ansible de Raspberry Pi
cd /edx/app/edx_ansible/edx_ansible/playbooks/edx-este
/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i localhost, -c local --tags deployment raspberrypi.yml -e "edx_platform_version=master"Ayuda y resolución de problemas
Si necesita ayuda con edX, únase a nuestro lista de correo de la comunidad. Si tiene preguntas específicas sobre cómo ejecutar edX en Raspberry Pi, tenga en cuenta que esto es solo un prototipo y no tiene mantenimiento ni soporte oficial. Si lo hace funcionar en Raspberry Pi u otra plataforma, por favor hágamelo saber — ¡Me encantaría saber de ti!


