Moodle 3.2
Arquitectura, Plugins y Comunidad Moodle
Sergio Elvira
Sobre mi
“Its goal is to give teachers and
students the tools they need to
teach and learn.”
Modular Object-Oriented Dynamic
Learning Environment (Entorno de
enseñanza dinámico orientado a
objetos modular).
Learning Management System
¿Qué es Moodle?
Martin Dougiamas
Vs otros LMS
Ventajas
Open Source
Gran Comunidad
Facil de Usar
Creciente Demanda
Nuevas Versiones
GB
A
I
Gunet - 13
Blackboard - 4
Articulate - 2
Ilias - 2
Plataformas LMS(Learning Management System)
Mapa Mundial de Plataformas
Moodle - 115
M
Arquitecturas mas usadas
Moodle
Es una práctica común usar Moodle con un acelerador PHP como
eAccelerator o APC.
Arquitecturas típicas de Moodle
Arquitectura Moodle
Balanceador de carga
Portales
Servidores
BD
Moodle
Data
Web
• Web
• Moodle Data
Servidor
Web
• BD
Servidor
BD
Arquitectura Moodle
Core Cursos y Actividades
Usuarios y Grupos Matriculaciones
Proporciona todos los mecanismos necesarios para implementar la
plataforma educativa. Implementa todos aquellos mecanismos que luego
los plugins utilizan para desarrollar su función.
Cada curso puede tener un número indeterminado de alumnos y un número
indeterminado de grupos que acoja a esos alumnos. Pueden tener distintos
roles.
Moodle define un curso como una secuencia de actividades agrupadas en
secciones, son muy flexibles. Los cursos se organizan en categorías
jerárquicas dentro de la plataforma educativa.
En Moodle los tipos de matriculación disponibles en la plataforma se
definen a través de módulos por lo que podemos definir nuevos tipos de
matriculación.
Esquema y Estructura de Ficheros
Actividades y Recursos Bloques Matriculación Temas
Componen los objetos individuales del
curso
Contenido añadido distribuido en
columnas
Los estilos que se desarrollan dentro de
módulos
Vienen integrados en el core
Módulos Principales
Plugins : Directorio de archivos
mod: La carpeta mod almacena los módulos de actividad como Tarea.
blocks: Los bloques se usan para mostrar bloques de información en
columnas distribuidas en la parte izquierda o de la derecha de la página
de Moodle.
enrol: La carpeta enrol contiene todos los módulos de matriculación
de Moodle.
lib: La carpeta lib almacena las librerías de funciones del núcleo del
sistema.
theme: La carpeta theme almacena todos los temas prediseñados de
Moodle y cualquier tema personalizado.
Subido a través del portal
Plugins: Instalando plugins de terceros
Instalación de plugins mediante archivo
ZIP.
Subido al portal directamente
Moodle plugins directory
Manualmente
Plugins: Instalando plugins de terceros
Instalación manual en el servidor
Moodle plugins directory
•/ruta/a/moodle/theme/
•/ruta/a/moodle/mod/
•/ruta/a/moodle/blocks/
•/ruta/a/moodle/question/type
•/ruta/a/moodle/course/format/
•/ruta/a/moodle/admin/report
Consideraciones generales
Migrando Moodle 1.9 a 3.2
Características de la plataforma
● 1.980 cursos
● 28.000 usuarios
● 375.000 archivos en el directorio moodledata (unos 56GB)
● Base de datos de 18GB
Moodle 1.9.1
– Actualización previa desde Moodle 1.7
– Código core de Moodle modificado, no existe
documentación al respecto
– Plugins para versiones posteriores de Moodle
¿Es un Moodle Estándar?
Migrando Moodle 1.9 a 3.2
● Determinar versión exacta de Moodle
– Editar version.php
– $release = '1.9.1+ (Build: 20080604)'
● Encontrar copia de código fuente sin alterar en el repositorio de
Moodle
– git log
● diff entre ambos excluyendo mods, filters y themes
● Copia de seguridad completa de la plataforma
● Clonar servidor de producción para actualización de prueba
¿Es un Moodle estándar? (II)
Migrando Moodle 1.9 a 3.2
● Análisis de código alterado
– ¿Para qué sirve?
– ¿Es necesario?
– ¿Misma funcionalidad alcanzable mediante plugins en versiones 2.x?
● Plugins de matriculación
● Plugins para repositorios
● Planificación de tareas adicionales para estas alteraciones
¿Es un Moodle estándar? (III)
Migrando Moodle 1.9 a 3.2
● Análisis de la base de datos
– ¿Tablas personalizadas?
● Cuáles son de mods y cuáles personalizaciones del core
– ¿Son correctos los tipos de datos e índices?
– ¿Juego de caracteres correcto (UTF-8 vs. LATIN-1)?
– ¿Se puede eliminar alguna tabla?
Análisis de Plugins
Migrando Moodle 1.9 a 3.2
● ¿Qué plugins hay instalados?
● ¿Funcionan correctamente?
● ¿Existe versión para Moodle 3.x?
– No hay versión o mecanismo de actualización: Caso
Nanogong
● ¿No se utiliza? Mejor desinstalar que actualizar
Temas
Migrando Moodle 1.9 a 3.2
● Los themes para 1.9 no son compatibles con 3.x
● ¿Realmente los necesitamos?
● Es “recomendable” que los themes 3.x sean adaptables y compatibles con
dispositivos móviles.
Matriculación
Migrando Moodle 1.9 a 3.2
● Moodle 1.9
– Muchas veces implicaba hacer cambios en el core
● Moodle 3.x
– Posibilidad de desarrollar plugins para cubrir necesidades
específicas de la institución
Transacciones DB
Migrando Moodle 1.9 a 3.2
● Moodle 1.9:
– Ideado para Mysql con MyISAM
– No hay transacciones
● Moodle 3.x:
– Se añaden más SGBD: PostgreSQL,
MariaDB... – Opción de transacciones con MySQL
+ InnoDB
Tareas posteriores (I)
Migrando Moodle 1.9 a 3.2
● Planificar script cron.php y desactivar acceso desde web
– crontab -u apache -e
● Activar soporte reCAPTCHA
– Eliminar SPAM previo usando herramienta de administración.
● Comprobar el correcto funcionamiento de los cursos
– Reconstruir caché del curso: borrar campo modinfo de mdl_course
– Plugin rebuildcoursecache
Tareas posteriores (II)
Migrando Moodle 1.9 a 3.2
● Herramientas diagnóstico admin
– Diagnóstico de roles
– Conversión a InnoDB
– Profiling de plataforma
Tracker de moodle para contribuir a la comunidad
Subtarea
Tarea
Mejora
Nueva Función
Épica
Error
Test Funcional
Moodle Moot en UK 2017
• Workshops
• Keynotes
• Master Class
Todo el programa y charlas
UK 2017
Comunidad: MoodleCamp
Contacto
https://github.com/Maxfire
https://www.linkedin.com/in/sergio-
elvira-perez-91606992
@arivlE_oigreS
sergioelviraperez@gmail.com
Más información
Moodle

Moodle

  • 1.
  • 2.
  • 3.
    “Its goal isto give teachers and students the tools they need to teach and learn.” Modular Object-Oriented Dynamic Learning Environment (Entorno de enseñanza dinámico orientado a objetos modular). Learning Management System ¿Qué es Moodle? Martin Dougiamas
  • 4.
    Vs otros LMS Ventajas OpenSource Gran Comunidad Facil de Usar Creciente Demanda Nuevas Versiones
  • 5.
    GB A I Gunet - 13 Blackboard- 4 Articulate - 2 Ilias - 2 Plataformas LMS(Learning Management System) Mapa Mundial de Plataformas Moodle - 115 M
  • 6.
    Arquitecturas mas usadas Moodle Esuna práctica común usar Moodle con un acelerador PHP como eAccelerator o APC. Arquitecturas típicas de Moodle Arquitectura Moodle Balanceador de carga Portales Servidores BD Moodle Data Web • Web • Moodle Data Servidor Web • BD Servidor BD
  • 7.
    Arquitectura Moodle Core Cursosy Actividades Usuarios y Grupos Matriculaciones Proporciona todos los mecanismos necesarios para implementar la plataforma educativa. Implementa todos aquellos mecanismos que luego los plugins utilizan para desarrollar su función. Cada curso puede tener un número indeterminado de alumnos y un número indeterminado de grupos que acoja a esos alumnos. Pueden tener distintos roles. Moodle define un curso como una secuencia de actividades agrupadas en secciones, son muy flexibles. Los cursos se organizan en categorías jerárquicas dentro de la plataforma educativa. En Moodle los tipos de matriculación disponibles en la plataforma se definen a través de módulos por lo que podemos definir nuevos tipos de matriculación. Esquema y Estructura de Ficheros
  • 8.
    Actividades y RecursosBloques Matriculación Temas Componen los objetos individuales del curso Contenido añadido distribuido en columnas Los estilos que se desarrollan dentro de módulos Vienen integrados en el core Módulos Principales
  • 9.
    Plugins : Directoriode archivos mod: La carpeta mod almacena los módulos de actividad como Tarea. blocks: Los bloques se usan para mostrar bloques de información en columnas distribuidas en la parte izquierda o de la derecha de la página de Moodle. enrol: La carpeta enrol contiene todos los módulos de matriculación de Moodle. lib: La carpeta lib almacena las librerías de funciones del núcleo del sistema. theme: La carpeta theme almacena todos los temas prediseñados de Moodle y cualquier tema personalizado.
  • 10.
    Subido a travésdel portal Plugins: Instalando plugins de terceros Instalación de plugins mediante archivo ZIP. Subido al portal directamente Moodle plugins directory
  • 11.
    Manualmente Plugins: Instalando pluginsde terceros Instalación manual en el servidor Moodle plugins directory •/ruta/a/moodle/theme/ •/ruta/a/moodle/mod/ •/ruta/a/moodle/blocks/ •/ruta/a/moodle/question/type •/ruta/a/moodle/course/format/ •/ruta/a/moodle/admin/report
  • 12.
    Consideraciones generales Migrando Moodle1.9 a 3.2 Características de la plataforma ● 1.980 cursos ● 28.000 usuarios ● 375.000 archivos en el directorio moodledata (unos 56GB) ● Base de datos de 18GB Moodle 1.9.1 – Actualización previa desde Moodle 1.7 – Código core de Moodle modificado, no existe documentación al respecto – Plugins para versiones posteriores de Moodle
  • 13.
    ¿Es un MoodleEstándar? Migrando Moodle 1.9 a 3.2 ● Determinar versión exacta de Moodle – Editar version.php – $release = '1.9.1+ (Build: 20080604)' ● Encontrar copia de código fuente sin alterar en el repositorio de Moodle – git log ● diff entre ambos excluyendo mods, filters y themes ● Copia de seguridad completa de la plataforma ● Clonar servidor de producción para actualización de prueba
  • 14.
    ¿Es un Moodleestándar? (II) Migrando Moodle 1.9 a 3.2 ● Análisis de código alterado – ¿Para qué sirve? – ¿Es necesario? – ¿Misma funcionalidad alcanzable mediante plugins en versiones 2.x? ● Plugins de matriculación ● Plugins para repositorios ● Planificación de tareas adicionales para estas alteraciones
  • 15.
    ¿Es un Moodleestándar? (III) Migrando Moodle 1.9 a 3.2 ● Análisis de la base de datos – ¿Tablas personalizadas? ● Cuáles son de mods y cuáles personalizaciones del core – ¿Son correctos los tipos de datos e índices? – ¿Juego de caracteres correcto (UTF-8 vs. LATIN-1)? – ¿Se puede eliminar alguna tabla?
  • 16.
    Análisis de Plugins MigrandoMoodle 1.9 a 3.2 ● ¿Qué plugins hay instalados? ● ¿Funcionan correctamente? ● ¿Existe versión para Moodle 3.x? – No hay versión o mecanismo de actualización: Caso Nanogong ● ¿No se utiliza? Mejor desinstalar que actualizar
  • 17.
    Temas Migrando Moodle 1.9a 3.2 ● Los themes para 1.9 no son compatibles con 3.x ● ¿Realmente los necesitamos? ● Es “recomendable” que los themes 3.x sean adaptables y compatibles con dispositivos móviles.
  • 18.
    Matriculación Migrando Moodle 1.9a 3.2 ● Moodle 1.9 – Muchas veces implicaba hacer cambios en el core ● Moodle 3.x – Posibilidad de desarrollar plugins para cubrir necesidades específicas de la institución
  • 19.
    Transacciones DB Migrando Moodle1.9 a 3.2 ● Moodle 1.9: – Ideado para Mysql con MyISAM – No hay transacciones ● Moodle 3.x: – Se añaden más SGBD: PostgreSQL, MariaDB... – Opción de transacciones con MySQL + InnoDB
  • 20.
    Tareas posteriores (I) MigrandoMoodle 1.9 a 3.2 ● Planificar script cron.php y desactivar acceso desde web – crontab -u apache -e ● Activar soporte reCAPTCHA – Eliminar SPAM previo usando herramienta de administración. ● Comprobar el correcto funcionamiento de los cursos – Reconstruir caché del curso: borrar campo modinfo de mdl_course – Plugin rebuildcoursecache
  • 21.
    Tareas posteriores (II) MigrandoMoodle 1.9 a 3.2 ● Herramientas diagnóstico admin – Diagnóstico de roles – Conversión a InnoDB – Profiling de plataforma
  • 22.
    Tracker de moodlepara contribuir a la comunidad Subtarea Tarea Mejora Nueva Función Épica Error Test Funcional
  • 23.
    Moodle Moot enUK 2017 • Workshops • Keynotes • Master Class Todo el programa y charlas UK 2017 Comunidad: MoodleCamp
  • 24.

Notas del editor

  • #2 Se espera que entre Abril y Julio salga esta versión 3.2
  • #4 Moodle es un ejemplo de aplicación LAMP (Linux, Apache, MySQL y PHP). WAMP y MAMP Martin Dougiamas (Australia, 1969) vive en Perth, Australia, y es pedagogo e informático.
  • #6 Gunet – Greek Blackboard & Articulate – American Moodle – Australian Ilias – Germany Moodle 115/136
  • #7 PHP no es un lenguaje compilado sino un lenguaje interpretado, (comúnmente conocido como un lenguaje de scripts), está diseñado para ser ejecutado mediante un interprete. Por cada petición, este interprete tiene que leer cada archivo PHP, evaluar su sintaxis, interpretarlo (compilarlo) y ejecutar su funcionalidad. Este trabajo tiene un coste alto en CPU y según el tráfico del sitio se traduce en una sobrecarga del mismo. Para utilizar cache de PHP no necesitamos modificar nuestros scripts, ya que se instalan como extensiones de PHP. Los sistemas más utilizados son ionCube, PHP eAccelerator, Zend Optimizer (Pago), etc.
  • #8 Los módulos principales Actividades y Recursos Bloques Matriculación Temas Puntos de entrada definidos en varios archivos clave como: locallib.php db/install.xml  lib.php  Que permiten la comunicación con el core.
  • #9 Algunos de los más importantes tipos de módulos en Moodle son: Actividades y Recursos: Componen los objetos individuales del curso. Existen actividades de todo tipo, colaborativas, foro, wiki, cuestionarios, etc. Es de largo el tipo de módulo más desarrollado y se instalan en el directorio mod dentro de la raíz de Moodle Bloques: Los bloques son cajas con contenido añadido en columnas a los lados del contenido principal que ofrecen funcionalidades varias. Residen en el directorio blocks Matriculación: Aunque este tipo de plugin no es muy común, voy a hablar mucho de él puesto que la experiencia que tengo en el desarrollo de módulos de Moodle incluye uno de estos, Los plugins de matriculación residen en el directorio enrol Temas: Los estilos se desarrollan dentro de módulos que residen en el directorio theme
  • #10 mod: módulos como Wiki, Lección o Foro. Las actividades educativas son el núcleo de cada curso desarrollado en Moodle. Lo módulos de actividad son más difíciles de crear que los bloques y deben diseñarse de manera que instruyan al estudiante. blocks: Son uno de los tipos más simples de módulos que se pueden realizar, y suelen funcionar a través de las versiones de Moodle sin apenas alguna modificación. enrol: La carpeta enrol contiene todos los módulos de matriculación de Moodle. Estos módulos controlan la creación y administración de las matriculaciones a nivel de curso. lib: Cuando se desarrollen módulos o se personalice el sistema, se usarán clases y funciones definidas en esta carpeta. theme: Los temas son una combinación de CSS, HTML y PHP
  • #11 Instalación mediante archivo ZIP subido al sitio Vaya al Moodle plugins directory, seleccione su versión actual de Moodle (2.5/2.6/3.0/...), después elija un plugin que tenga un botón para Descargar (Download) y descárgue el archivo ZIP. Ingrese a su sitio Moodle como administrador y vaya a Administración > Administración del sitio > Plugins > Instalar plugins. Suba el archivo ZIP, seleccione el tipo apropiado de plugin, acepte la casilla de aceptación, después elija el botón para 'Instalar un plugin desde un archivo ZIP'. Revise que aparezca el mensaje de que pasó la validación (Validation passed!) y después elija el botón para Instalar el plugin (Install add-on).
  • #12 Vea dev:Plugins para la lista completa de todos los tipos de plugins y sus localizaciones dentro del árbol de directorios de Moodle. 1- Vaya al Moodle plugins directory, seleccione su versión actual de Moodle (.../2.5/2.6/2.7/...), después elija un plugin que tenga un botón de Descarga y descargue el archivo ZIP. 3.- Súbalo o cópielo a su servidor Moodle. 4.- Descomprima (unzip) el archivo al lugar apropiado para el tipo de plugin (o siga las instrucciones del plugin). 5.- En su sitio Moodle (como administrador) vaya a Configuraciones > Administración del sitio > Notificaciones (para la mayoría de los plugins, Usted debería de ver un mensaje que le diga que el plugin está instalado).
  • #18 – Muchos profesores prefieren el theme por defecto de las nuevas versiones de Moodle. – Actualizar un número X de themes supone más tiempo y dinero.
  • #20 MyISAM es el mecanismo de almacenamiento de datos usado por defecto por el sistema administrador de bases de datos relacionales MySQL hasta su versión 5.5 SGBD Sistema de gestión de bases de datos relacionales
  • #21 crontab -u apache -e : Para ver que tenemos en el crontab
  • #22 InnoDB: El motor de almacenamiento (storage-engine) se encarga de almacenar, manejar y recuperar información de una tabla. Profiling PHP: Herramienta de debug PHP Xdebug, Blackfire.io …