This weekend, the Genezio team was present at FOSDEM 2024 - an amazing open-source conference held in Belgium where thousands of contributors gather every year to meet and share ideas.
Technical Talk - Running Node.js in Unikernels
, we had the opportunity to present a novel cloud infrastructure that we have been working on - running cloud workloads over unikernels to improve performance, security, and cost for running web applications.
Unikernels are specialized, lightweight operating system images designed to run a single service. Unlike traditional operating systems that include a general-purpose kernel with support for various functionalities and drivers, unikernels are highly optimized and tailored for specific applications.
Right now, our solution is built to run Node.js applications on
- a mature unikernel open-source project.
The presentation briefly states the challenges and improvements we implemented to improve boot time for both OSv and the Linux kernel. Some of them are:
Creating a base snapshot after booting OSv and loading the Node.js runtime
Having a pool of warmed-up instances waiting for requests
Attaching the user’s source code as a second filesystem to avoid rebuilding the application image for every infrastructure patch or update.
By working within a single-spaced kernel where the process that is running is always in privileged mode, we’ve come across a bug in Node.js. Specifically, we fixed the behavior of the
popf instruction that incorrectly disabled interrupts in privileged mode.
On the OSv side, we made several
, addressing issues such as: resolving a cache bug triggered when using more filesystems and fixing a
pthreads interface that was not compliant with POSIX and caused deadlocks.
are available for everyone to check out.
FOSDEM is about getting to know contributors and projects, sharing ideas, and collaborating and we’ve had the best time getting inspired by awesome people.
Genezio has been a part of the
Unikernel Alliance community
since its beginnings and we had the opportunity to meet the active members face-to-face and check out their talks in the
Microkernel and Component-based OS devroom
We are very grateful for connecting and discussing with Waldemar Kozaczuk - the maintainer of OSv who presented
Support Dynamically Linked Executables via Linux ld.so and Implement ENA Driver to Expand Application of OSv. If you are an operating system enthusiast, don’t hesitate to check his insightful
The next steps for us are to add support for more programming languages (such as Go, Kotlin, Dart, etc.) and integrate more unikernels into our solution.
If you have any questions or just want to drop us a line - don’t hesitate to contact us at email@example.com or on
. We are happy to discuss or share ideas with you!