IP Library Granted Patent US 12,073,232
Granted Patent B2
US 12,073,232 · App. 17/955,216 · Granted Aug 27, 2024

Unikernel for webassembly containers

Inventors: Giuseppe Scrivano (Milan, IT); Daniel Walsh (Augusta, GA); Sergio Lopez Pascual (Madrid, ES)
Assignee: Red Hat, Inc.
G06F9/445G06F9/45533H04L67/025
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,073,232
App. No.
17/955,216
Granted
Aug 27, 2024
Kind
B2
Abstract

Systems and methods for deploying and running webassembly workloads on compute nodes using a webassembly unikernel. A computing device having a processor generates, using a container engine, a container runtime. The computing device generates, using the container runtime, a unikernel configured to run a plurality of webassembly applications, thereby resulting in a webassembly unikernel. The computing device may receive a request to run an application. A container image corresponding to the application may be retrieved, via the container engine, from a container registry. A webassembly payload may be stored for the application from the container image. Furthermore, the computing device may cause the webassembly unikernel to run the webassembly payload for the application.

Claims (53)

1. A method comprising:

generating, by a computing device having a processor and by using a container engine, a container runtime;

generating, by using the container runtime, a unikernel configured to run a plurality of webassembly applications, thereby resulting in a webassembly unikernel;

receiving, by the computing device, a request to run an application;

retrieving, by the computing device and via the container engine, a container image corresponding to the application from a container registry;

storing a webassembly payload for the application from the container image; and

causing the webassembly unikernel to run the webassembly payload for the application.

2. The method of claim 1 , further comprising:

deploying the webassembly unikernel to a virtual machine, wherein the webassembly unikernel runs the webassembly payload for the application on the virtual machine.

3. The method of claim 2 , wherein the webassembly payload is stored in a memory associated with the virtual machine.

4. The method of claim 1 , wherein the webassembly payload is stored in local container storage of the computing device.

5. The method of claim 1 , wherein the request specifies, to the container engine, the container image corresponding to the application.

6. The method of claim 1 , wherein the retrieving further comprises:

unpacking, from the container image, the webassembly payload for the application.

7. The method of claim 1 , further comprising:

receiving, by the computing device, user input on how a user wants to run the application; and

creating a container specification configured based on how the user wants to run the application, wherein the webassembly unikernel runs the webassembly payload for the application based on the container specification.

8. The method of claim 1 , wherein the causing the webassembly unikernel to run the webassembly payload comprises:

sending, to the webassembly unikernel, the webassembly payload for the application.

9. The method of claim 1 , wherein the causing the webassembly unikernel to run the webassembly payload comprises:

sending, to the webassembly unikernel, a location of the stored webassembly payload for the application.

10. A system comprising:

a processor; and

a memory storing instructions which, when executed by the processor, cause the processor to:

generate, by using a container engine, a container runtime;

generate, by using the container runtime, a unikernel configured to run a plurality of webassembly applications, thereby resulting in a webassembly unikernel;

receive a request to run an application;

retrieve, via the container engine, a container image corresponding to the application from a container registry;

store a webassembly payload for the application from the container image; and

cause the webassembly unikernel to run the webassembly payload for the application.

11. The system of claim 10 , wherein the instructions, when executed, further cause the processor to:

deploy the webassembly unikernel to a virtual machine, wherein the webassembly unikernel runs the webassembly payload for the application on the virtual machine.

12. The system of claim 11 , wherein the webassembly payload is stored in a virtual memory associated with the virtual machine.

13. The system of claim 10 , wherein the webassembly payload is stored in local container storage of the system.

14. The system of claim 10 , wherein the request specifies, to the container engine, the container image corresponding to the application.

15. The system of claim 10 , wherein the instructions, when executed, cause the processor to:

retrieve by unpacking, from the container image, the webassembly payload for the application.

16. The system of claim 10 , wherein the instructions, when executed, further cause the processor to:

receive user input on how a user wants to run the application; and

create a container specification configured based on how the user wants to run the application, wherein the webassembly unikernel runs the webassembly payload for the application based on the container specification.

17. The system of claim 10 , wherein the instructions, when executed, cause the processor to cause the webassembly unikernel to run the webassembly payload by:

sending, to the webassembly unikernel, the webassembly payload for the application.

18. The system of claim 10 , wherein the instructions, when executed, cause the processor to cause the webassembly unikernel to run the webassembly payload by:

sending, to the webassembly unikernel, a location of the stored webassembly payload for the application.

19. A non-transitory computer-readable medium storing instructions which, when executed by a processor, cause the processor to:

generate, by using a container engine, a container runtime;

generate, by using the container runtime, a unikernel configured to run a plurality of webassembly applications, thereby resulting in a webassembly unikernel;

receive a request to run an application;

retrieve, via the container engine, a container image corresponding to the application from a container registry;

store a webassembly payload for the application from the container image; and

cause the webassembly unikernel to run the webassembly payload for the application.

20. The non-transitory computer-readable medium of claim 19 , the instructions, when executed by the processor, further cause the processor to:

deploy the webassembly unikernel to a virtual machine, wherein the webassembly unikernel runs the webassembly payload for the application on the virtual machine.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2022
From: SCRIVANO, GIUSEPPE; WALSH, DANIEL; PASCUAL, SERGIO LOPEZ
To: RED HAT, INC.
Reel/Frame 061251/0085 →
Continuity (1)
Related Publication 20240103882A1 · Mar 28, 2024