You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwhisk.apache.org by Dascalita Dragos <dd...@gmail.com> on 2019/10/01 14:06:21 UTC

Composer requires Redis but NodeJS Runtime doesn't include it

Currently there's an issue with Composer which requires Redis [1]. Redis
module is not installed by default in the NodeJS images.
I see 2 options to unblock this:
1 -  include Redis in the default nodeJS runtime [2]
2  - make Redis optional for Composer; parallel combinator in Composer
won't work w/o Redis, but we can assume it's the Openwhisk operator's
responsibility to provide a default nodeJS image that includes Redis
module.

I'm personally slightly more inclined toward option (1) b/c that enables in
theory all features that exist in Composer. I'm saying "in theory" b/c the
developers still needs to provision Redis on their own, before using
parallel combinators; so, since the developers need to do something to
enable this feature, we could also assume they could provide a custom
runtime that includes Redis, in case the operator doesn't provide it; but
with a blackbox action, the system can't optimize the cold-start.

The bottom line is that currently, a developer that wants to try OpenWhisk
and Composer, by default it won't work; unless at least we implement option
(2) . Hence I'm not really sure what's best to do.

WDYT ?

Thanks,
dragos

[1] -
https://github.com/apache/openwhisk-composer/blob/master/conductor.js#L45
[2] -
https://github.com/apache/openwhisk-runtime-nodejs/blob/master/core/nodejs10Action/package.json

Re: Composer requires Redis but NodeJS Runtime doesn't include it

Posted by Dascalita Dragos <dd...@gmail.com>.
Thanks so much for the prompt feedback. I’ll push a PR to include Redis in
Nodejs 10 and 12. Also “uuid” module is needed.

On Tue, Oct 1, 2019 at 4:36 PM Olivier Tardieu <ta...@us.ibm.com> wrote:

> I am planning to update composer to make REDIS optional in any case
> (option 2), but I agree we should go for option 1: include redis in the
> image to help with user experience.
> The redis npm package is very small (Including dependencies) so I don't
> think image size is a concern.
>
> du -k node_modules
> 8       node_modules/double-ended-queue/js
> 40      node_modules/double-ended-queue
> 32      node_modules/redis-parser/lib
> 60      node_modules/redis-parser
> 8       node_modules/redis/.github
> 72      node_modules/redis/lib
> 224     node_modules/redis
> 4       node_modules/redis-commands/tools
> 60      node_modules/redis-commands
> 384     node_modules
>
> Olivier
>
> Rodric Rabbah <ro...@gmail.com> wrote on 10/01/2019 10:12:43 AM:
>
> > From: Rodric Rabbah <ro...@gmail.com>
> > To: dev@openwhisk.apache.org
> > Date: 10/01/2019 10:26 AM
> > Subject: [EXTERNAL] Re: Composer requires Redis but NodeJS Runtime
> > doesn't include it
> >
> > +1 for including redis in runtimes.
> >
> > -r
> >
> > On Tue, Oct 1, 2019 at 10:06 AM Dascalita Dragos <dd...@gmail.com>
> wrote:
> >
> > > Currently there's an issue with Composer which requires Redis [1].
> Redis
> > > module is not installed by default in the NodeJS images.
> > > I see 2 options to unblock this:
> > > 1 -  include Redis in the default nodeJS runtime [2]
> > > 2  - make Redis optional for Composer; parallel combinator in Composer
> > > won't work w/o Redis, but we can assume it's the Openwhisk operator's
> > > responsibility to provide a default nodeJS image that includes Redis
> > > module.
> > >
> > > I'm personally slightly more inclined toward option (1) b/c that
> enables in
> > > theory all features that exist in Composer. I'm saying "in theory" b/c
> the
> > > developers still needs to provision Redis on their own, before using
> > > parallel combinators; so, since the developers need to do something to
> > > enable this feature, we could also assume they could provide a custom
> > > runtime that includes Redis, in case the operator doesn't provide it;
> but
> > > with a blackbox action, the system can't optimize the cold-start.
> > >
> > > The bottom line is that currently, a developer that wants to try
> OpenWhisk
> > > and Composer, by default it won't work; unless at least we implement
> option
> > > (2) . Hence I'm not really sure what's best to do.
> > >
> > > WDYT ?
> > >
> > > Thanks,
> > > dragos
> > >
> > > [1] -
> > > https://urldefense.proofpoint.com/v2/url?
> >
>
> u=https-3A__github.com_apache_openwhisk-2Dcomposer_blob_master_conductor.js-23L45&d=DwIBaQ&c=jf_iaSHvJObTbx-
> > siA1ZOg&r=C3zA0dhyHjF4WaOy8EW8kQHtYUl9-
> > dKPdS8OrjFeQmE&m=bUh0V9YIXGy9eyT6ur-
> >
> pZfEM6vweXiRrz_PM1XCHj_Y&s=lB5jlca6suiqjog31T_VnjCUyY4qSHmamb3ndolh9Kk&e=
> > > [2] -
> > >
> > > https://urldefense.proofpoint.com/v2/url?
> >
>
> u=https-3A__github.com_apache_openwhisk-2Druntime-2Dnodejs_blob_master_core_nodejs10Action_package.json&d=DwIBaQ&c=jf_iaSHvJObTbx-
> > siA1ZOg&r=C3zA0dhyHjF4WaOy8EW8kQHtYUl9-
> > dKPdS8OrjFeQmE&m=bUh0V9YIXGy9eyT6ur-
> >
> pZfEM6vweXiRrz_PM1XCHj_Y&s=haweaGNP4coHQNXoAsX5UBsPizUsKuKgawnBTZgH6pE&e=
> > >
>
>
>

RE: Composer requires Redis but NodeJS Runtime doesn't include it

Posted by Olivier Tardieu <ta...@us.ibm.com>.
I am planning to update composer to make REDIS optional in any case 
(option 2), but I agree we should go for option 1: include redis in the 
image to help with user experience.
The redis npm package is very small (Including dependencies) so I don't 
think image size is a concern. 

du -k node_modules
8       node_modules/double-ended-queue/js
40      node_modules/double-ended-queue
32      node_modules/redis-parser/lib
60      node_modules/redis-parser
8       node_modules/redis/.github
72      node_modules/redis/lib
224     node_modules/redis
4       node_modules/redis-commands/tools
60      node_modules/redis-commands
384     node_modules

Olivier

Rodric Rabbah <ro...@gmail.com> wrote on 10/01/2019 10:12:43 AM:

> From: Rodric Rabbah <ro...@gmail.com>
> To: dev@openwhisk.apache.org
> Date: 10/01/2019 10:26 AM
> Subject: [EXTERNAL] Re: Composer requires Redis but NodeJS Runtime 
> doesn't include it
> 
> +1 for including redis in runtimes.
> 
> -r
> 
> On Tue, Oct 1, 2019 at 10:06 AM Dascalita Dragos <dd...@gmail.com> 
wrote:
> 
> > Currently there's an issue with Composer which requires Redis [1]. 
Redis
> > module is not installed by default in the NodeJS images.
> > I see 2 options to unblock this:
> > 1 -  include Redis in the default nodeJS runtime [2]
> > 2  - make Redis optional for Composer; parallel combinator in Composer
> > won't work w/o Redis, but we can assume it's the Openwhisk operator's
> > responsibility to provide a default nodeJS image that includes Redis
> > module.
> >
> > I'm personally slightly more inclined toward option (1) b/c that 
enables in
> > theory all features that exist in Composer. I'm saying "in theory" b/c 
the
> > developers still needs to provision Redis on their own, before using
> > parallel combinators; so, since the developers need to do something to
> > enable this feature, we could also assume they could provide a custom
> > runtime that includes Redis, in case the operator doesn't provide it; 
but
> > with a blackbox action, the system can't optimize the cold-start.
> >
> > The bottom line is that currently, a developer that wants to try 
OpenWhisk
> > and Composer, by default it won't work; unless at least we implement 
option
> > (2) . Hence I'm not really sure what's best to do.
> >
> > WDYT ?
> >
> > Thanks,
> > dragos
> >
> > [1] -
> > https://urldefense.proofpoint.com/v2/url?
> 
u=https-3A__github.com_apache_openwhisk-2Dcomposer_blob_master_conductor.js-23L45&d=DwIBaQ&c=jf_iaSHvJObTbx-
> siA1ZOg&r=C3zA0dhyHjF4WaOy8EW8kQHtYUl9-
> dKPdS8OrjFeQmE&m=bUh0V9YIXGy9eyT6ur-
> 
pZfEM6vweXiRrz_PM1XCHj_Y&s=lB5jlca6suiqjog31T_VnjCUyY4qSHmamb3ndolh9Kk&e= 
> > [2] -
> >
> > https://urldefense.proofpoint.com/v2/url?
> 
u=https-3A__github.com_apache_openwhisk-2Druntime-2Dnodejs_blob_master_core_nodejs10Action_package.json&d=DwIBaQ&c=jf_iaSHvJObTbx-
> siA1ZOg&r=C3zA0dhyHjF4WaOy8EW8kQHtYUl9-
> dKPdS8OrjFeQmE&m=bUh0V9YIXGy9eyT6ur-
> 
pZfEM6vweXiRrz_PM1XCHj_Y&s=haweaGNP4coHQNXoAsX5UBsPizUsKuKgawnBTZgH6pE&e= 
> >



Re: Composer requires Redis but NodeJS Runtime doesn't include it

Posted by Rodric Rabbah <ro...@gmail.com>.
+1 for including redis in runtimes.

-r

On Tue, Oct 1, 2019 at 10:06 AM Dascalita Dragos <dd...@gmail.com> wrote:

> Currently there's an issue with Composer which requires Redis [1]. Redis
> module is not installed by default in the NodeJS images.
> I see 2 options to unblock this:
> 1 -  include Redis in the default nodeJS runtime [2]
> 2  - make Redis optional for Composer; parallel combinator in Composer
> won't work w/o Redis, but we can assume it's the Openwhisk operator's
> responsibility to provide a default nodeJS image that includes Redis
> module.
>
> I'm personally slightly more inclined toward option (1) b/c that enables in
> theory all features that exist in Composer. I'm saying "in theory" b/c the
> developers still needs to provision Redis on their own, before using
> parallel combinators; so, since the developers need to do something to
> enable this feature, we could also assume they could provide a custom
> runtime that includes Redis, in case the operator doesn't provide it; but
> with a blackbox action, the system can't optimize the cold-start.
>
> The bottom line is that currently, a developer that wants to try OpenWhisk
> and Composer, by default it won't work; unless at least we implement option
> (2) . Hence I'm not really sure what's best to do.
>
> WDYT ?
>
> Thanks,
> dragos
>
> [1] -
> https://github.com/apache/openwhisk-composer/blob/master/conductor.js#L45
> [2] -
>
> https://github.com/apache/openwhisk-runtime-nodejs/blob/master/core/nodejs10Action/package.json
>