Docker migration
We may wish to consider replacing our use of VM with Docker.
Pros of Docker for our use case:
-
Theoretically less RAM intensive than a VM. This is very likely to be the case for Linux users. For Windows and Mac users Docker actually creates a Linux VM inside which it can then add containers. These VM's should, however, still be more lightweight than Virtualbox.
-
Easier to incorporate new changes in the future by just modifying the Dockerfile instead of downloading and reuploading the whole VM.
-
Simplifies automatic notebook testing.
-
If we ever get our own server instead of relying on Colab we would likely have to work with Docker containers anyway. (@Jaehun, is this scenario at all realistic?)
-
Exposes students to an important type of technology that is currently in demand for most Machine Learning Engineer jobs.
Cons of Dockers:
-
High skill floor - setting up a Docker image may not be straightforward. Depending on our experience it may be difficult to help students with debugging issues in the first years of using Docker setup.
-
Some less optimistic articles suggest that changes to Docker may break things and those changes may not necessarily be backwards compatible. I would argue that in our case this would be unlikely to be a problem.
-
We would have to make sure that notebooks/data persists across instantiation of the container.
-
VM approach kind of works in most cases, even if not perfectly.
We therefore have to decide if the transition is needed/worth the effort. And if we decide that Docker is needed, implement it, likely under a separate repository.