Dave-

At one point I had done this, but the host of compiler issues that came up made 
me want to rethink my approach. (Maybe I'm overly concerned about the word 
'Container', but it's EVERYWHERE.)

How can I modify SpiLoader to load a class that I determine?

--James

From: David P Grove [mailto:gro...@us.ibm.com]
Sent: Thursday, July 19, 2018 11:41 AM
To: dev@openwhisk.apache.org
Subject: Re: Add support for microkernels instead of containers


Did you remember to have your UkernelFactoryProvider extend 
ContainerFactoryProvider?

For example, see KubernetesContainerFactory.scala.

--dave

[Inactive hide details for "Farwell, James C" ---07/19/2018 01:24:12 
PM---Rodric- Okay, I've created a new Ukernel class to enca]"Farwell, James C" 
---07/19/2018 01:24:12 PM---Rodric- Okay, I've created a new Ukernel class to 
encapsulate my microkernel, a UkernelFactory to pr

From: "Farwell, James C" 
<james.c.farw...@intel.com<mailto:james.c.farw...@intel.com>>
To: "dev@openwhisk.apache.org<mailto:dev@openwhisk.apache.org>" 
<dev@openwhisk.apache.org<mailto:dev@openwhisk.apache.org>>
Date: 07/19/2018 01:24 PM
Subject: Re: Add support for microkernels instead of containers

________________________________



Rodric-
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 
whisk.core.containerpool.ContainerFactoryProvider'.
I have searched, but cannot find any reason that SpiLoader should object to 
loading a class other than whisk.core.containerpool.ContainerFactoryProvider.
I'm obviously missing something, but I can't figure out what it is.  Does 
anyone have any ideas?
Thanks,
--James
>-----------------------------------------------------------------------------------
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.

-r




Reply via email to