Simulation-Software-Engineering / Simulation-Software-Engineering/Lecture-Material

Potential improvements to the virtualization/containers lecture

Open
#202 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

lecture reworking part:vm-containers
Dominant language
Python
Stars
63
Forks
70
Avg merge
8d 18h
Merged PRs (30d)
1

Description

Some notes from my impression from this year:

  • Reduce the motivational content, and especially the duplication between sections. I had the feeling that everyone was motivated enough, and we needed more time for details and hands-on.
  • Explain the difference between virtualization and emulation, and explain the compatibility between architectures, since this is now more relevant than in the "almost everyone runs x86" years. This raised a lot of discussion this year. We could also show a concrete demo with QEMU.
  • Discuss KVM as an alternative to VirtualBox (potentially have a demo available)
  • Discuss concrete steps for minimizing the size of the published images (e.g., by running apt clean after apt update && apt install).
  • Put more emphasis on Singularity. I had the impression that students generally knew about Docker, while Singularity is quite neat.
  • Talk about Podman equally as much as Docker (or even default to Podman, in the same way as we default to Apptainer for talking about Singularity).
  • Discuss integration of Docker with VSCode and other tools (I quickly showed this at the end of the exercise).
  • Add a comparison table between solutions.
  • For the exercise, find, test, and suggest concrete solutions for Apple Silicon. This year, we had five students affected by this. What worked in the end was VMWare Fusion with Ubuntu images build for ARM. This worked with Vagrant as well (but I am not sure if the suggested bento/ubuntu-24.04 box worked in the end).

I also found it useful to have an overview of commands on the blackboard:

# Overview

## Vagrant

vagrant init bento/ubuntu-24.04

vagrant up
vagrant provision
vagrant ssh

vagrant global-status
vagrant box list

## Docker

docker pull ubuntu:24.04
docker run -it ubuntu:24.04
docker exec -it ubuntu:24.04 /bin/bash

docker image ls
docker ps -a

## Singularity

apptainer pull docker://ubuntu:24.04

apptainer shell ubuntu_24.04.sif
./ubuntu_24.04.sif
apptainer exec ubuntu_24.04.sif /bin/bash

Any feedback by students is welcome here as well.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the virtualization and containers lecture materials and its exercise, then review the unchecked topics and the command overview in this issue. Update the lecture content to cover the requested tools, image-size practices, comparisons, and Apple Silicon guidance, and verify that the suggested demonstrations and exercise solutions work.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, ubuntu, vscode
Domain
devops, documentation, infrastructure
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.