En este tutorial:
Canvas continúa siendo la plataforma LMS más popular en la educación superior de Estados Unidos. Y con su reciente reintroducción a la bolsa de valores, seguramente volverás a escuchar de sus movimientos más allá de las fronteras.
Durante su tiempo como propiedad de la firma de capital privado Thoma Bravo, Instructure se desprendió de su LMS corporativa Bridge, que ahora pertenece a LTG. Procesos de reorganización internos que tomarán unos meses en revelar sus efectos: Previo a su salida, Canvas contaba con cerca de 30 milliones de usuarios y 6 mil clientes a nivel mundial.
Todo parece indicar que su filiación con el software libre permanecerá en medio de las reorientaciones corporativas. Así que si deseas conocer el detalle de cómo funciona Canvas LMS, la siguiente guía te mostrará cómo puedes configurarla de forma gratuita en tu servidor.
¿Es Canvas LMS realmente software libre?
Técnicamente hablando, sí, el software de Canvas LMS es de código abierto. Al menos parte de él. La licencia AGPLv3 (en inglés) bajo la que se encuentra permite a los usuarios instalar el software en sus servidores y en la nube. Si bien es ilegal vender un software gratuito, sí es posible cobrar por el acceso al servidor que lo aloja, y en consecuencia al software. Cualquier modificación o desarrollo hecho sobre la base del sistema debe preservar la licencia AGPLv3, aunque no esté alojado en un repositorio público.
Así que es perfectamente legal ofrecer servicios desde por ejemplo, la nube, utilizando software libre con o sin modificaciones y sin dejar que los usuarios lo descarguen.
Instructure no libera el 100% del código de Canvas, por lo que es posible que no obtengas exactamente la misma experiencia que al registrarte como cliente o probar su demo en la nube.
La capacidad de poder ofrecer servicios y realizar actividades de negocios a partir de una plataforma de software libre sin necesidad de reconocimiento monetario es probablemente la principal diferencia entre la licencia AGPLv3 y la clásica licencia GPL creada por GNU Project y Richard Stallman en los ochentas y que daría origen a los ecosistemas Unix y Linux, sin los cuales difícilmente los imperios digitales de hoy habrían sido posible. Con las licencias GPL y AGPLv3, emprendedores de todo el mundo cuentan con la capacidad de lanzar startups con costos y riesgos mínimos, y el potencial de alcanzar mercados globales.
Pero, ¿por qué una empresa con ánimo de lucro destina recursos para el desarrollo de software libre? Claramente la decisión es estratégica. Veteranos de la industria sostienen que la decisión de Instructure en un principio obedeció a su necesidad de convencer al público acerca de la calidad de su código, hacia un mercado que en su momento estaba en disputa por Moodle, plataforma open source; y Blackboard, que ofrecía productos de software libre bajo la marca Moodlerooms. Hoy en día, Instructure ha ganado una posición en la cual no tendría por qué mantener su software abierto. No obstante, la industria tecnológica ha evolucionado, particularmente en su relación con el software libre. De una posición de nicho, donde el apoyo al software libre obedecía más que nada a razones ideológicas, actualmente las comunidades de desarrollo reconocen sus innumerables ventajas, incluyendo sin ir muy lejos su sostenibilidad, así como la tendencia a identificar problemas o vulnerabilidades, y encontrar o crear soluciones con una mayor agilidad comparado con software propietario.
Claro está, el consumidor y usuario final juega un rol fundamental en la protección y promoción del software libre. En América Latina existen organizaciones de defensa y promoción del software libre, incluyendo iniciativas que buscan disminuir la dependencia en entidades públicas —incluidas las educativas— de licencias de software propietario.
En resumen: Puedes montar tu propio Canvas LMS en tu propio servidor, para fines comerciales o no comerciales (excepto la venta del software). Y siempre debes dar crédito al propietario de la licencia original. Si quieres contribuir al código de Canvas, debes cumplir primero con un Acuerdo de Licencia de Colaboración.
Antes de empezar: Haz una lista
La mayoría de enlaces que encontrarás en el texto están en inglés, tomados de github.com/instructure/canvas-lms.
Asegúrate de tener todos los ingredientes antes de empezar a crear tu propio Canvas LMS, para que el proceso sea mucho más ágil.
Necesitarás dos tipos de recursos: Servidor, software operativo y de soporte; y software de aplicación y lenguajes de base. Si lees este artículo tiempo después de su publicación, confirma la compatibilidad de versiones. ¡No dejes de informarnos si encuentras información errónea en este artículo!
Las guías de “inicio rápido” y de “producción” de Canvas LMS
Si quieres simplemente echar un vistazo a Canvas y experimentar, Instructure ofrece muchas formas de hacerlo sin necesidad de seguir estos pasos:
- Canvas Cloud para profesores. Un sitio gratuito basado en la nube para profesores, donde no tienes que configurar nada ni tocar ningún código. También te permite exportar tu trabajo a un sitio Canvas de producción.
- Utiliza Docker para lanzar una “Configuración automatizada”. Coloca este archivo SH en tu entorno virtual y ejecútalo para que haga todo el trabajo por ti.
- Similarmente, existe una instancia completa de Canvas LMS en Bitnami actualizada, lista para instalar y con documentación completa.
- Configuración manual. Un enfoque más práctico, pero donde se le dice cómo personalizar todo e incluye algunos archivos de ejemplo para empezar. Es significativamente limitado y no funcionará como un LMS de producción.
La guía de producción es un recorrido más exhaustivo, para desarrolladores o usuarios avanzados.
Software de servidor
Si te has decidido a realizar el proceso de instalación, esto es lo que necesitarás:
- Un servidor con recursos suficientes en términos de procesador, memoria, almacenamiento y ancho de banda. Desafortunadamente Instructure no ofrece indicaciones para realizar esta estimación. Podrías tomar las recomendaciones de desempeño de Moodle como punto de partida.
- Sistema operativo de Ubuntu Linux en el servidor, preferiblemente la última versión LTS (siglas en inglés que indican Versión de Soporte a Largo plazo).
- Servidor HTTP Apache.
- Un servicio de servidor de correo electrónico saliente (SMTP)
- Un certificado SSL (no alcanzamos a cubrir su configuración en este artículo)
Software de aplicación
- El lenguaje de programación Ruby, última versión estable
- Y el framework Ruby on Rails
- Base de datos: PostgreSQL (recomendado) o SQLite
- La última versión de Canvas LMS. Puedes descargarla directamente desde tu consola mediante comandos de GitHub (instrucciones aquí) o descargando y extrayendo los archivos en un paquete comprimido: TARBALL (para sistemas Linux o Unix) o ZIP (todos)
- Otras dependencias a instalar durante el proceso están disponibles en las librerías apt-get (Ubuntu) o Homebrew (Mac). Es decir que necesitarás acceso a internet durante el proceso.
Opcionales, pero muy recomendables
- Software de control de versiones: Git y GitHub
- Aplicación de servidor web: Passenger y la biblioteca para Apache
- La virtualización de servidores: Docker o una Máquina Virtual, son prácticas estándar para el desarrollador de aplicaciones del lado del servidor, en especial si su sistema operativo es diferente al recomendado.
- Gestión de caché: Redis (más reciente, recomendado) o Memcache (algunas funciones no son compatibles)
Configuración de un entorno de producción para LMS Canvas
1. El servidor
Uno de los primeros ejemplos de información contradictoria en la guía de producción es el paso de configuración del servidor. En diferentes partes de la guía se sugiere una configuración de uno o dos servidores. Si instalas Canvas en un servidor escalable, como la nube, siempre puedes aumentar los recursos de tu servidor para atender a todos tus usuarios simultáneos. No obstante, es posible que una vez superes un volumen de usuarios simultáneos de 300-500, sea más efectivo pensar en una arquitectura de múltiples servidores. En estos casos, la mejor recomendación parece ser tres servidores con 8GB de RAM cada uno, manteniendo separados los componentes “que consumen mucha memoria”, como en el caso de la base de datos y Redis, el daemon (tareas automatizadas en segundo plano) y la propia aplicación Canvas en Ruby on Rails.
La elección de múltiples servidores tendrá implicaciones en adelante:
- La base de datos debe aceptar conexiones “extranjeras” (entrantes desde otro servidor). Esto requiere editar los archivos de configuración de la base de datos.
- Si estás utilizando una máquina virtual, es posible que tengas que desactivar otras instancias que se ejecuten simultáneamente a la hora de vincular la aplicación Canvas con el servidor Apache.
2. Software de apoyo
Accede al servidor como administrador. Instala y establece conexiones entre los siguientes programas:
- Ruby, sus bibliotecas y paquetes, y Rails. Comienza con Ruby Gems, que gestiona las bibliotecas de Ruby (“Gems”), seguido de Bundler, y las que aparecen a lo largo de la guía: Thrift (si estás en Mac, verifica su instalación), Yarn, Python y Node.JS.
- La base de datos. Instructure recomienda PostgreSQL más reciente. Instala la base de datos y crea un usuario “Canvas” (nombre y contraseña). Más adelante le darás a Canvas la información del usuario para que pueda crear y validar las tablas.
- Apache y Passenger, incluyendo la biblioteca Passenger + Apache.
- SSL para Apache. Debes activar el módulo SSL en Ubuntu y verificar el archivo de configuración. Importante: Es recomendable que obtengas un emisor de certificado SSL independiente y lo configures en Apache, para que tu aplicación no tenga problemas siendo aceptada por los navegadores de tus usuarios. Aquí hay un ejemplo de cómo hacerlo.
- Canvas para Apache y Passenger. El proceso consiste en vincular una única “instancia virtual” (en Apache, VirtualHosts) a Canvas, desvincular las otras, y editar un archivo
canvas.conf
con su información de servidor y SSL.
3. Localización e instalación de Canvas LMS
Encuentra una ubación de directorio razonable en tu servidor para subir los archivos descomprimidos de Canvas. La guía sugiere
/var/canvas
Los archivos incluidos en el paquete vienen con muchos ajustes preconfigurados. Dependiendo de tus necesidades y del contexto, tendrás que buscar cada archivo y localizarlo. La mayoría de estos archivos de configuración tienen una extensión YML y están en el directorio /config/
.
4. Inicializando las opciones de Canvas LMS
- La base de datos: Busca el archivo
config/database.yml
y añade las credenciales de usuario “Canvas” (nombre y contraseña) que creaste en el paso “Software de apoyo”. - Correo saliente. Busca
config/outgoing_mail.yml
y actualízalo con la información de tu servidor SMTP. - El dominio del sitio web, en
config/domain.yml
. - Seguridad: Debes incluir cadenas aleatorias de mínimo 20 caractéres de largo en los archivos de seguridad.
Primera ejecución de Canvas LMS
Generar activos y rellenar bases de datos
Canvas construirá automáticamente una serie de “activos” antes de funcionar correctamente en su primer lanzamiento. Sin embargo, es necesario construir los directorios en donde se ubicarán estos activos manualmente. La lista de directorios está aquí.
Tras la creación de los activos, la base de datos iniciará con los datos de referencia proporcionados por Canvas. Al ejecutar el archivo de configuración inicial, la consola te pedirá una serie de “variables de entorno” como nombre, dirección de correo electrónico y contraseña. También se te preguntará si quieres que Canvas envíe los datos de tu LMS a Instructure para su análisis y seguimiento.
Seguridad: Propiedad y roles de Canvas LMS
Una vez completada la configuración inicial, edita los roles para asegurarte de que tu sitio Canvas LMS no pueda ser configurado desde fuera, ni que Canvas pueda editar cosas en el servidor más allá de su ámbito.
- Al igual que en el paso de la base de datos, crea un usuario Canvas único para Rails y limita su propiedad.
- Para todos los archivos YML de la carpeta
config
, haz que sólo el usuario de Rails Canvas que crees pueda verlos y modificarlos.
Redis: Configurando el caché de la aplicación (Opcional)
Redis 2.6 o superior es recomendado por encima de Memcaché u otros provedores de estructura de almacenamiento temporal. Una de las razones es la habilitación de integración con otros sistemas mediante protocolo OAuth2.
Asegúrate de instalar Redis, ya que las versiones incluidas en Ubuntu podrían no ser compatibles.
Finalmente, edita la configuración del caché en el archivo redis.yml. Si instalaste Redis en un servidor independiente, recuerda remplazar localhost por la dirección del servidor Redis.
Ahora sí: Ejecuta Canvas LMS
El último paso debería ser reiniciar la aplicación Apache:
sudo /etc/init.d/apache2 restart
A continuación, abre tu navegador en la instalación de Canvas (ten en cuenta el dominio). Te pedirá las credenciales de administrador de la base de datos. Inicia sesión y sigue la pantalla. Deberías poder ejecutar un Canvas en blanco.
Pasos a seguir
Después de este proceso, estás listo para abrir Canvas e iniciar sesión. Hay algunos componentes que necesitan una configuración extra para funcionar, incluyendo la optimización de archivos, el editor de contenido enriquecido y la función de copiar e importar cuestionarios, que es técnicamente un plugin (QTIMigrationTool).
Un paso particularmente importante es el de Redis para la optimización de la caché. Se trata de copiar un archivo de configuración de la instalación de Redis en la carpeta Canvas, como se explica aquí.
Existen opciones de solución de problemas: Aquí hay una lista de problemas comunes. El foro de Canvas LMS está disponible en community.canvaslms.com que ofrece guías y otros materiales útiles.
Visita la Comunidad Canvas LMS en Español.
Para más información, visita Instructure Canvas LMS en github.com y su wiki.
4 Responses
me puedes ayudar a implementar esto en mi institucion
Hola Sebastián,
¿Puedes escribirme a [email protected] para hablar en detalle? Que tengas un buen día.
Buen día, muy buen artículo. consulta es posible contratar los servicios de Canvas? tienen idea de los costos? posee Apis para integrarlo con otras plataformas y desarrollo.
Saludos y gracias