SWEA 2023 Weekplan 13

The learning goals for Week 48 are:

Mon: Docker Containers. Wed: Quality Attributes. Energy-efficiency.

Literature:

Slides:

Notes for this weekplan:

Monday lecture starts at 9.15 and will be on Docker.

On Wednesday, time will be set aside for the course evaluation. If you do not attend the lectures, please fill it in anyway!

Lab classes are tied to the Iteration 10 mandatory exercises. In addition, you may have a look on the exercises below.

Additional exercises:

Install Docker Engine or Desktop

Follow the Docker Desktop guide for installing on your particular machine. Docker Desktop is a GUI based wrapping tool around the Docker Engine that I demonstrate at the lectures. The 'hard core' gals and guys may install the command line Docker Engine instead.

Dockerfile for a Python Hello World program

Solve the PyCon 2018 Tutorial's exercise : 02_dockerfile_essentials

Solving this exercise, you will create a container with Linux and Python installed, add a Python source file to it, and run it - without ever installing Python on your machine!

Containerize Hello-Spark

The Hello-Spark system can be downloaded from hello-spark.zip.

You will find a Dockerfile there. Read and understand what this IaC does. And build a hello-spark image, run it as a container, and test it. Hint: If you cannot contact it, remember that you need to map the container's por to the host ala 'docker run -d -p 4567:4567 (image name)'.

Containerize your HotStone server

Your own HotStone server can of course be containerized. Write the Dockerfile to do so. As base image I recommend 'henrikbaerbak/jdk17-gradle83' or the official 'gradle:8.3-jdk17' which are images with Java 17 and Gradle 8.3 installed already.

AlSoMe: Swarm and Docker in Action

For a complex, potentially multi-machine, swarm based system, you can head over to my AlSoMe Bitbucket repository. This is a crude SnapChat/Messenger/Signal web app, that can be horizontally scaled in a swarm.

Exam Rehearsal

Rehearse a exam situation. Sit down and spend 20-30 minutes to read and prepare a 10 minute oral presentation of one of the exercises in the example exam question set: demo-question-final-2023.pdf.

Next, do a 10 minute presentation at the whiteboard in front of your team.

The team provides constructive feedback on the presentation: Is your presentation clear and understandable, do you discuss the concepts and terms correctly, is you Java example code correct, correct UML, etc. Swap and ensure all in the team gets a chance to rehearse the situation.

Legend: The typography bold, normal, (brackets), above indicate my perception of how important the exercises are from high to optional. However, solve the mandatory project first!