Demo of displaying labtainers labs in a Web browser through Guacamole

Here’s a first report on trying to add Guacamole to Labtainers in order to allow running Labtainers in a headless way, without an X display, in containers, and accessing the GUI in a Web browser, through the use of VNC and Guacamole.

We’ve casted a demo of it :

Labtainer + Guacamole demo on Vimeo.

Continue reading “Demo of displaying labtainers labs in a Web browser through Guacamole”

First tests of virtual labs for a Network-related MOOC in the frame of project FLIRT

We’ve been working, in project FLIRT, together with our partner ProCAN and with the help of the FUN MOOC team, on integrating a virtual desktops solution for MOOC labs. The idea is that instead of downloading a VM image to perform labs in a VirtualBox VM locally, participants of the MOOC can execute the lab in a Cloud VM, in a “Desktop as a Service” environment, accessing that Desktop through a full-screen display in their Web browser. Thus, no installation is needed on the participant’s machine.

ProCAN has been busy improving their CloVER platform to provide such a feature, which is being tested for a few weeks with (paying) participants of an IMT MOOC on principles of networking, hosted on the FUN MOOC platform.

The participants interested in a “value added” variant fo the MOOC will pay for obtaining a certificate, and having access to this “Desktop as a Service” lab environment. Free participants will have to install a VM image in a more traditional way.

So far it seems the solution works as expected (with a relatively low number of users for this first experiment). It uses the “basic” CloVER plan, wich manages IaaS VMs (hosted on an OpenStack cloud). There have been a few useability issues, which are being solved (copy/paste, shared files, which required some tuning of the Guacamole integration, under the hood).

CloVER acts as a broker between OpenEdX and OpenStack, by managing the making and deployment of VMs (for professors and MOOC participants) and so as to allow teaching assistants to support the execution of the labs if need be.

We plan to experiment with a container-based variant with the upcoming “pro” plan of the CloVER platform in the coming months (for other MOOCs or SPOCs). That new version should also bring new features for an educational context, like collaborative use of the virtual environments. But the main benefit will probably be the improved start speed for deploying a new desktop for a participant, and an improved life-cycle for the execution of the virtualized labs. At the moment, the current IaaS based variant relies in always-on VMs per participant, for the whole duration the the labs, even though the machine is used in a sparse way. With containers, we can make sure to activate the DaaS only when the user actually works on the lab, provided that we can save the user’s session in a persistant storage, of course. That’s for the current R&D efforts at ProCAN.

In the making of this integration, we should thank the FUN MOOC team, for the useful collaboration, in making sure it’s easier to integrate external services with the OpenEdX platform operated by FUN MOOC. We’ve worked together on improving the use of a generic XBlock connector, using LTI to better integrate CloVER and OpenEdX. This should be helpful for other MOOCs hosted by FUN MOOC in the future.

The future FLIRT MOOCs should be able to test the evolutions of the CloVER DaaS solution, but this will require also some work on the educators side, to make sure we master the technology used to create containers, integrate them in a learning process, etc.

Recrutement ingénieur·e DevOps pour conteneurs de Travaux Pratiques en informatique/réseaux

MAJ : nous avons trouvé le candidat. Le poste n’est plus disponible.

Nous recrutons un·e ingénieur·e en informatique pour travailler à l’application des concepts et technologies DevOps (conteneurs Docker, Git, Linux, libre, …) pour la mise au point et l’hébergement de dispositifs de Travaux Pratiques virtualisés, qui seront utilisés pour des enseignements d’informatique et de réseaux, sur un CDD de 1 an, à Télécom SudParis, à Évry (91).

Pour en savoir plus, voir le descriptif du poste que j’ai mis en ligne.

Virtualized lab demonstration using a tweaked Labtainers running in a container

I’ve recorded a screencast: Labtainers in docker demonstration (embedded below) demonstrating how I’ve tweaked Labtainers so as to run it inside its own Docker container.

I’m currently very much excited by the Labtainers framework for delivering virtual labs, for instance in the context of MOOCs.

Labtainers is quite interesting as it allows isolating a lab in several containers running in their own dedicated virtual network, which helps distributing a lab without needing to install anything locally.

My tweak allows to run what I called the “master” container which contains the labtainers scripts, instead of having to install labtainers on a Linux host. This should help installation and distribution of labtainers, as well as deploying it on cloud platforms, some day soon. In the meantime Labtainer containers of the labs run with privileges so it’s advised to be careful, and running the whole of these containers in a VM may be safer. Maybe Labtainers will evolve in the future to integrate a containerization of its scripts. My patches are pending, but the upstream authors are currently focused on some other priorities.

Another interesting property of labtainers that is shown in the demo is the auto-grading feature that uses traces of what was performed inside the lab environment by the student, to evaluate the activities. Here, the telnetlab that I’ve shown, is evaluated by looking at text input on the command line or messages appearing on the stdout or in logs : the student launched both telnet or ssh, some failed login appeared, etc.

However, the demo is a bit confusing, in that I recorded a second lab execution whereas I had previously attempted a first try at the same telnetlab. In labtainers, traces of execution can accumulate : the student wil make a first attempt, and restart later, before sending it all to the professor (unless a redo.py is issued). This explanes that the  grading appears to give a different result than what I performed in the screencast.

Stay tuned for more news about my Labtainers adventures.

P.S. thanks to labtainers authors, and obs-studio folks for the screencast recording tool 🙂

Prochaine conférence MiNET sur les systèmes d’exploitation 24/05 Évry (France)

La prochaine conférence MiNET, le 24/05/2018 après-midi, promet d’être très intéressante sur le sujet des systèmes d’exploitation, avec 4 intervenants pointus :

  • Julia Lawall : “Introduction to Coccinelle and its usage in the Linux Kernel
  • Sebastien Valat : “Memory management and OS paging for high performance computing
  • Pierre Pronchery : “DeforaOS: Un voyage dans le développement de système d’exploitation
  • Cyril Brulebois : “Maintenir et développer la distribution Debian

Plus de détails sur https://conference.minet.net/#conf2018

N’hésitez pas à nous rejoindre à Évry pour participer à cette conférence, ou à suivre la retransmission sur la chaîne Youtube de MiNET.