openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David P Grove" <>
Subject Re: Add support for microkernels instead of containers
Date Thu, 19 Jul 2018 18:41:14 GMT

Did you remember to have your UkernelFactoryProvider extend

For example, see KubernetesContainerFactory.scala.


From:	"Farwell, James C" <>
To:	"" <>
Date:	07/19/2018 01:24 PM
Subject:	Re: Add support for microkernels instead of containers

Okay, I've created a new Ukernel class to encapsulate my microkernel, a
UkernelFactory to produce Ukernels, and a UkernelFactoryProvider to
instantiate a Factory.  I've updated the whisk.spi object (in
reference.conf) to name the desired class
(whisk.core.ukernel.UkernelFactoryProvider).  Everything compiles, but when
I try to deploy I get the exception
'whisk.core.ukernel.UkernelFactoryProvider$ cannot be cast to
I have searched, but cannot find any reason that SpiLoader should object to
loading a class other than
I'm obviously missing something, but I can't figure out what it is.  Does
anyone have any ideas?

Hi James

There's an abstract interface to the execution unit in the invoker:
Start/Pause/Resume/Stop/Logs. You can select the implementation through a
configuration deployment (SPI).

There was some work on using the interface I alluded to for unikernels. I'd
imagine the interface it can be adapted for working with a process,
microkernel, ...

I'm suggesting it's a drop in replacement but at face value I don't see
that it's necessary to be too invasive. The openwhisk core is really about
starting/pausing/resuming/stopping an execution unit (which happens to be a
container today).

I think containers are too coarse grained an execution unit for functions
and expect technology to change in the future. But when/how long it will
take... we'll see. I'm curious to see how your work unfolds with OpenWhisk
and we're happy to help.


  • Unnamed multipart/related (inline, None, 0 bytes)
View raw message