Building an experimental virtual labs cloud with Eclipse Che on a private k8s cloud in the university

I’ve been experimenting with various virtual labs technologies in the last years. Even if the recent months have kept me away from my blog, I think it’s time for an update on what we’re trying to experiment, when the pandemics consequences permit.

We’re aiming at experimenting, for next fall’s back to school, the use of Eclipse Che for computer science labs, for some of our students. I’ve “hired” a team of motivated students to help me with this project, and we bought a nice server to host our experiments.

Eclipse Che provides a “so called” Kubernetes-ready Web IDE and other tools that can be used in programming/development projects (test tools, language integrations, etc.). Why not for the labs in the university.

We’re looking forward to test its use by our students, deployed on a private k8s cluster, to be able to evaluate the UX for our coding labs. This should provide some benefits in terms of ease of deployment for programming environments that our students can use for distance learning, compared to the current situation which requires local installation of an IDE, and language tools. This should save us of having to support such installations on various operating systems (including machines in our traditional labs, inside the school walls).

The pandemics has forced us to switch to distance learning, without sufficient preparation (and resources), which resulted in rather chaotic situations for some students. We seek to evaluate if such “cloud labs” could bring some agility in the rollout of some classes.

Beyond the evaluation of the learner experience, this evaluation also aims at understanding if this brings some benefits for the professors too. I’m thinking of applying some sort of devops-related process to the fabrication of learning materials, for the labs parts. This may result in additional quality. I’ve written before on some of these ideas, if you’re curious. I’m not completely sure of the reception by my faculty colleagues, sometimes afraid by all this cloud buzz.

Another aspect of this evaluation would be on the TCO or other related economic aspects. The impact on our IT department could be meaningful, if we’re changing paradigm.

As we’ll be using Eclipse Che in the novel context of programming labs, this should require the development of some integration with our LMS. The initial step is authenticating students, which should be feasable with Keycloak and Shibboleth/SAML. Next, I’m thinking of an LTI plugin to plug Eclipse Che and Moodle. In the end, I’d like to have some tools to be able to provide traces of activity for the labs, so as to include that in learner activity dashboards. This could be used for formative evaluation, grading and such, but also to assess the calibration of effort of teaching instructions, problems, and other activities which student perform in an unattended way. This is particularly important I think so that labs aren’t performed like in a tunnel, where instructors have poor visibility on what difficulties students are facing. This is even more important in distance learning situations, we’re all confronted to at the moment.
Back to Eclipse Che, it isn’t particularly designed for learning environments, so I hope our use cases will be compatible with the other mainstream uses. I’m a member of the Eclipse community (formally, but not really active), but I hope I’ll have enough time and energy to be able to bring such use cases in the community, and hopefully find other parties interested.

Somehow, the pandemics acts, here also, as a factor of increased digitization, but I’d prefer to be conservative, with a few key principles, in line with our public service nature : using free software/open source technology, hosting on our own private infrastructure (respecting our users privacy), drinking our own champagne (i.e. using the same tools for producing teaching materials, and delivering labs, for instance), and eventually contributing what we’ve assembled as reusable components for others.

In the end, the only measurable success factor should be the increase in learning efficiency, hopefully.

I’ll try to blog on our progress along the way. Stay tuned.

Automate the capture a full BigBlueButton conference replay, with bbb-downloader

BigBlueButton, aka BBB, is a webrtc conferencing solution, that among many features, allows to record a conference, for later replay.

We have been working together with my colleague François Trahay, on a set of scripts (bbb-downloader) that will allow to easily (on Linux) download recordings of BBB conferences, for local backup, video editing, upload on video sharing platforms, etc. This is particularly useful in our distance learning contexts where students may have to catch up on a live session that was recorded.

We have integrated a hackish solution to capture, as a single video, presentations that contained slide deck presentations. Let me explain why this was necessary.

A nice feature of BBB is the fact that, to present a slides deck, you don’t need to share your screen (as a video stream), but just have to upload your file, which is then auto-converted to images, that are sent to participants, in sync with your next/previous browsing of the slides.

This is great for participants with low bandwidth, which can see the slides (“static” images) instead of receiving a full screen video stream.

But a side effect is that the recording of a  class/conference that is done by BBB replays the slides just as it was done live : displaying images one after the other.

While it is easy to retrieve the audio, webcams of participants, or screen sharings as video streams, directly available from the recordings replay app, it is thus not the same for the slides, which don’t come as a video.

Our script will perform a replay, using a Docker container which drives Selenium under the hood, to capture the full replay, as a single video, which then includes the slides and everything. You can see my demo of this process in the following video:

bbb-downloader full capture demo.

It takes long to replay, in real-time, the recordings, to perform this capture… but it works. Kudos to elgalu/docker-selenium for the Docker env.

Feel free to test it and profit, or to report issues in the Guthub issues of the repo: https://github.com/trahay/bbb-downloader/.

Mixing NRELab’s Antidote and Eclipse Che on the same k8s cluster

You may have heard of my search for Cloud solutions to run labs in an academic context, with a focus on free an open source solutions . You may read previous installments of this blog, or for a shorter, check the presentation I’ve recorded last week.

I’ve become quite interested, in the latest month, in 2 projects: NRELab’s Antidote and  Eclipse Che.

Antidote is the software that powers NRELabs, a labs platform for learning network automation, which runs on top of Kubernetes (k8s). The interesting thing is that for each learner, there can be a dedicated k8s namespace with multiple virtual nodes running on a separate network. This can be used in the context of virtual classes/labs where our students will perform network labs in parallel on the same cluster.

Eclipse Che powers Eclipse “on the Cloud”, making available software development environments, for developers, on a Kubernetes Cloud. Developers typically work from a Web page instead of installing local development tools.

Both projects seem quite complementary. For one, we both teach networks and software developments. So that would naturally appeal for many professors.

Furthermore, Eclipse Che provides a few features that Antidote is lacking : authenticating users (with keycloak), and persisting their work in workspaces, between work sessions. Typically what we need in our academic context where students will work on the same labs during scheduled classes, week after week, during or off-hours.

Thus it would be great to have more integration between the 2 environments.

I intend to work on that front, but that takes time, as running stuff on Kubernetes isn’t exactly trivial, at least when you’re like me and want to use a “vanilla” kubernetes.

I’ve mainly relied on running k8s inside VMs using Vagrant and/or minikube so far.

A first milestone I’ve achieved is making sure that Antidote and Eclipse Che aren’t incompatible. Antidote’s “selfmedicate” script was actually running inside a Vagrant VM, where I had difficulties installing Eclipse Che (probably because of old software, or particular networking setup details). I’ve overcome this hurdle, as I’m now able to install both environments on a single Kubernetes VM (using my own Vagrant setup).

Running Eclipse Che (alongsite Antidote) on a k8s Vagrant VM.

This proves only that there’s no show stopper there, but a lot of work remains.

Stay tuned.

Update: I’ve finally managed to get it to work on the antidote-selfmedicate base too. See my branch at: https://github.com/olberger/antidote-selfmedicate/tree/che

Experimenting on distant labs and labs on the Cloud

I have delivered a speech last week about some ideas and experiments I have about the use of remote access and Cloud technologies for labs. I have collected the speech recording and stuff, in french, in another post.

The presentation was in french originaly, so I’ve quickly translated my slides and recorded an english version.

I mention tools like Guacamole, MeshCentral, NRELab’s Antidote, Eclipse Che and Labtainers, as well as k8s and Docker, as interesting tools that may allow us to continue teaching in labs while allowing more flexibility, distant learning, and hopefully improved quality.

You can find the slides here: https://speakerdeck.com/oberger/experimenting-on-distant-labs-and-labs-on-the-cloud, and the recording is here:

Experimenting on distant labs and labs on the Cloud.

Expérimentations autour de TPs en distanciel, TPs sur le Cloud

J’ai participé au colloque IMT4ET de l’IMT, pour faire une courte présentation sur le thème des Travaux Pratiques à distance et des expérimentations sur les TP “virtuels” sur le Cloud sur lesquelles je travaille en ce moment.

Update: a version in english is also available.

J’y parle de Guacamole et MeshCentral, d’Antidote, de Eclipse Che et de Labtainers, les différents trucs excitants du moment, mais aussi de kubernetes, docker et de trucs louches comme du DevOps académique 😉

Les slides sont disponibles en ligne, et voici une vidéo ou j’expose mes idées sur la question :

Update : une version rédigée de mon propos est parue sur le site “Innovation pédagogique”, si vous préférez une version textuelle.

N’hésitez pas à me contacter si vous voulez creuser les sujets présentés, pour collaborer sur tous ces outils en logiciel libre.