You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/08/13 12:06:48 UTC

[GitHub] kpavel opened a new pull request #3886: Proposing Lean OpenWhisk

kpavel opened a new pull request #3886: Proposing Lean OpenWhisk
URL: https://github.com/apache/incubator-openwhisk/pull/3886
 
 
   The proposition is to get rid of Kafka, have controller and invoker compiled together into a "lean" controller-invoker (have a Gradle project for that) with controller calling the invoker's method directly via an in-memory object (a queue, which is also loaded via SPI) via a new pluggable load balancer that is selected via SPI using configuration file property setting. For more information here is a [blog](https://medium.com/@davidbr_9022/lean-openwhisk-open-source-faas-for-edge-computing-fb823c6bbb9b)
   As well, briefly discussed it in this [thread](https://lists.apache.org/thread.html/516efc0ed9afb09fe52e30d10eb9fe5091af91df53a46c07e1701122@%3Cdev.openwhisk.apache.org%3E)
   
   ## Description
   The goal is to avoid changes in the core components as much as possible. Rather this PR adds a few components. The main additions are as follows:
   - LeanBalancer SPI: provides LoadBalancer to communicate with Invoker directly without Kafka in the middle (Invoker does not exist as a separate entity; it is built together with Controller)
   - LeanMessagingProvider SPI: provides Producer/Consumer implementers to communicate via in-memory queue instead of Kafka.
   - Ansible deployment: added controller-lean.yml and other files required for the Ansible deployment. Since lean controller is a combination of the controller + invoker projects, its ansible deploy.yml requires most of the values from both. Currently this problem is resolved by partially replicating variables from the regular invoker's deploy.yml to the tasks/invoker-lean.yml. Probably it would be better to avoid this duplication by having everything we need for lean in the regular deploy.yml. 
   - Dockerfile: to build Lean controller docker image, which is a merge of the regular invoker + controller Dockerfile
   - Vagrantfile: a small change to make Lean available using environment variable
   
   ## My changes affect the following components
   - [ ] API
   - [x] Controller
   - [ ] Message Bus (e.g., Kafka)
   - [x] Loadbalancer
   - [x] Invoker
   - [ ] Intrinsic actions (e.g., sequences, conductors)
   - [ ] Data stores (e.g., CouchDB)
   - [ ] Tests
   - [x] Deployment
   - [ ] CLI
   - [ ] General tooling
   - [x] Documentation
   
   ## Types of changes
   - [ ] Bug fix (generally a non-breaking change which closes an issue).
   - [x] Enhancement or new feature (adds new functionality).
   - [ ] Breaking change (a bug fix or enhancement which changes existing behavior).
   
   ## Checklist:
   
   - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). 
   - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :).
   - [ ] I added tests to cover my changes.
   - [x] My changes require further changes to the documentation.
   - [x] I updated the documentation where necessary.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services