DocsReleasesCommunityGuidesBlog

Vienna 2024

Vienna Unikraft Workshop, December 7-8, 2024

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.

Registration#

To take part in the workshop please fill this registration form by Sunday, December 1, 2024, 11pm CEST.

Requirements#

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.

People#

The hosts of the workshop are:

As part of the Unikraft community, Răzvan Deaconescu and Ștefan Jumărea will be on-site.

Schedule#

Saturday, December 7, 2024#

Time (CEST)Session
09:00-09:30Introduction to Unikernels and Cloud Computing
09:30-11:00Deploying Cloud Applications using Unikraft Cloud
11:00-12:30Behind the Scenes: Using KraftKit to Operate Unikraft Applications
12:30-14:00Lunch
14:00-15:00Using Docker and Docker-based Filesystems
15:00-16:00Debugging Unikraft / Unikraft Cloud Applications
16:00-17:00First Principles Approach: Using Make and VMMs Directly

Sunday, December 8, 2024#

Time (CEST)Session
09:00-10:30Unikraft Internals
10:30-12:30Project Work: Contribute to Unikraft, Unikraft Cloud, Application Catalogs
12:30-14:00Lunch
14:00-16:30Project Work
16:30-17:00Final Thoughts, Future Steps

Deploying Cloud Applications using Unikraft Cloud#

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.

Behind the Scenes: Using KraftKit to Operate Unikraft Applications#

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.

Using Docker and Docker-based Filesystems#

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.

Debugging Unikraft / Unikraft Cloud Applications#

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.

First Principles Approach: Using Make and VMMs Directly#

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.

  • Clone the catalog-core repository.
  • Move to the scripts branch (git checkout scripts).
  • Choose 3 applications from the ones available.
  • Enter the application directory (e.g. cd c-hello/).
  • Run the scripts, build and run each application, for multiple architectures/VMMs (e.g. run ./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.

Hackathon#

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.

Connect with the community

Feel free to ask questions, report issues, and meet new people.

Join us on Discord!
®

Getting Started

What is a unikernel?Install CLI companion toolUnikraft InternalsRoadmap

© 2024  The Unikraft Authors. All rights reserved. Documentation distributed under CC BY-NC 4.0.