Unikraft and SBA Research, together with National University of Science and Technology POLITEHNICA of Bucharest (NUSTPB), come together to organize the Vienna Unikraft Workshop to be held on Saturday and Sunday, December 7-8, 2024.
The workshop will take place as an in-person event at the SBA Research. The full address is SBA Research, Floragasse 7, 5th Floor, 1040, Vienna, Austria.
Support information and discussions will take place on Discord, on the #workshop-vienna24
channel.
To take part in the workshop please fill this registration form by Sunday, December 1, 2024, 11pm CEST.
Please bring your own laptop. It's best if you have a native Linux installed on your laptop. Otherwise, please install this virtual machine. Use VMware Workstation Player or VirtualBox or any other virtualization solution able to load an OVA image.
For the virtual machine, login with username unikraft
and password unikraft
.
Make sure you have a working networking connection inside the virtual machine.
Either on your native Linux install, or on your virtual machine, install the basic set of tools detailed in the "Overview" guide. Also, please make sure you have KraftKit installed on your system. Follow the instructions here.
The hosts of the workshop are:
As part of the Unikraft community, Răzvan Deaconescu and Ștefan Jumărea will be on-site.
Time (CEST) | Session |
---|---|
09:00-09:30 | Introduction to Unikernels and Cloud Computing |
09:30-11:00 | Deploying Cloud Applications using Unikraft Cloud |
11:00-12:30 | Behind the Scenes: Using KraftKit to Operate Unikraft Applications |
12:30-14:00 | Lunch |
14:00-15:00 | Using Docker and Docker-based Filesystems |
15:00-16:00 | Debugging Unikraft / Unikraft Cloud Applications |
16:00-17:00 | First Principles Approach: Using Make and VMMs Directly |
Time (CEST) | Session |
---|---|
09:00-10:30 | Unikraft Internals |
10:30-12:30 | Project Work: Contribute to Unikraft, Unikraft Cloud, Application Catalogs |
12:30-14:00 | Lunch |
14:00-16:30 | Project Work |
16:30-17:00 | Final Thoughts, Future Steps |
If you did not create an account already, signup here and get a token
.
You will be using that in the following sessions.
Once you have a token, follow the steps here to deploy your first unikernel. If everything went well, deploy more applications following the tasks here.
In the previous session, you deployed application using Unikraft Cloud.
Now you will build and run Unikraft-based application locally.
With this, you will get a better look at what kraft cloud
does behind the scenes.
Follow the steps here and bring the cloud to your machine.
After you are done with all of them, take a look to some more applications, following the tasks here.
Go through them orderly and aim to complete all items until the Extra
section.
If you have extra time on your hands, go through the Extra
section as well.
In order to bring your own application on Unikraft Cloud, you need to build a minimal required filesystem.
We do that using docker
.
This is useful both to understand what is happening behind the scenes and to have a test environment for your application.
In case there are issues with Unikraft Cloud / KraftKit, you can use Docker to see if everything is in the right place and to assist in debugging.
Follow the steps here (only the ones under Redis
) to see how you can port a new application on top of Unikraft.
Mark the items as completed here.
Go through them orderly and aim to complete all items until the Extra
section.
If you have extra time on your hands, go through the Extra
section as well.
When porting new applications, you can run into issues both on the Docker build and on the Unikraft runtime. To debug the issues, you can follow the instructions here. Get a hands-on experience with debugging by following the items here.
Sometimes, if you want to go even further, you may need total control of the config, build or run steps.
You may want to add certain steps to the building/linking of the application, use a very different running environment, etc.
To do this, you can invoke the make
command manually, and use qemu
or firecracker
to run the application.
In order to simplify these steps, we created scripts that run the required commands. Follow the steps below to use the scripts.
catalog-core
repository.scripts
branch (git checkout scripts
).cd c-hello/
)../build.qemu.x86_64
and ./run.qemu.x86_64
, then ./build.qemu.arm64
and ./run.qemu.arm64
).You can find more instructions on using the scripts in the README.scripts.md
file of each application directory.
After doing that, it's time to run the commands one by one, without using the scripts.
Switch bach to the main
branch, enter the directories for the same applications you used before, and follow the instructions in the REAMDE.md
file.
You can find a summary of the commands in the Quick Setup (aka TLDR)
section of the README
.
For every step, there is a section in the README
file that goes into detail about the commands.
For the hackathon, please create teams of 2-3 people, and create your very own cloud-native application to run on Unikraft Cloud. Think of a cool application you've been waiting for a while to implement. Use your preferred programming language (supported by Unikraft Cloud), employ any frameworks or existing software components as required, and then deploy it on Unikraft Cloud. After you create a team and decide on a project, fill this spreadsheet with the team name, members and project idea.
At the and of the hackathon, you should make a PR in the Unikraft Cloud examples
repository with your work.
We will be evaluating the project, focusing on functionality, originality, robustness, complexity, code quality and team work.
Feel free to ask questions, report issues, and meet new people.