OpenWhisk
OpenWhisk is an open source, distributed Serverless computing platform able to execute application logic (Actions) in response to events (Triggers) from external sources (Feeds) or HTTP requests governed by conditional logic (Rules). It provides a programming environment supported by a REST API-based Command Line Interface (CLI) along with tooling to support packaging and catalog services. Additionally, it now provides options to host the platform components as Docker containers on various Container Frameworks such as Mesos, Kunernetes, and Compose.
Three most important issues to address in the move towards graduation:
- Est. release process for ZIP of source code
- Increase additional company and individual Contributors to maintain all project repos.
Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be aware of?
- It had been our intent to have Apache host our staging (and move it out of disparate private builds within various companies). However, INFRA indicates they only typically allocate 1 VM per project for use with demos and minor things. They indicate that perhaps a corporate donation is in order (ala. Spark).
- Goal: standup testing resources at Apache and utilize for public CI and performance testing of OpenWhisk on Kubernetes
- Needed resources:
- Minimum 5 worker node kubernetes cluster. Each worker nodes can be fairly modest (2-4 virtual cores; 4-8GB of memory)
- 2 nodes for control plane: Controller, Kafka,Nginx (each Docker containers)
- 1 node for CouchDB
- 2 nodes for Invokers (containers)
- See discussion here: OpenWhisk / Kubernetes proposed epics/action items/questions
- Minimum 5 worker node kubernetes cluster. Each worker nodes can be fairly modest (2-4 virtual cores; 4-8GB of memory)
- Formal hand-off of OpenWhisk trademark/logo from IBM needs to be executed; need to identify process for this.
- Discussion started w/ Apache legal via "legal-discuss" mailing list with subject "Trademark handoff for "OpenWhisk" name and logo".
How has the community developed since the last report?
incubator-openwhisk Github stars: 2181 (+253 since last report)
incubator-openwhisk GitHub forks: 469 (+52 since last report)
- dev mailing list activity continues to be active
- The bi-weekly Zoom "Technical Interchange" continues to be well received and attended.
- Complete videos posted to OW YouTube channel and detailed notes to our CWIKI.
New Contributors:
Brendan McAddams: Red Hat: Akka expert working on creating separate Akka dispatchers for CouchDB and Kafka Clients
- Kavitha Vallari Devara: Samsung FaaS team in "Open Service Lab of Convergence Team (SW R&D Center): incubator-openwhisk organizing project directory structure.
Gabriel Nicolas Avellaneda: independent. CLI contributions
Manjiri Tapaswi: N. Caroline State Univ. (NCSU): Fixed all "good first issues" for "incubator-wskdeploy"
Stig Bakken, Zedge (mobile phone customization), first review of PR in Kube repo.
How has the project developed since the last report?
- Focus on improved per-invocation (of Actions) performance via logging and other improvements.
- Continued focus in HA/Clustering enablement while continuing to reduce reliance on Ansible for configuration.
- e.g., controller creates health and cacheInvalidation topics #2991
- Kubernetes (incubator-openwhisk-deploy-kube)
Moved Travis testing to using Minikube & more current Kubernetes version (1.7.4)
Significant progress on supporting deploy of complete OpenWhisk system on Kubernetes, eliminating custom containers, and streamlining deploy process
Separation of Language runtimes into their own top-level repos. (10/17):
Generate maven snapshot artifacts #3060
openwhisk-package-deploy:
New repo created with proper license, docs, tests, and Travis CI
New action wskdeploy allows to deploy wskdeploy git repos
openwhisk-packages-cloudant/couchdb:
Update to feed action to update trigger config (dbName)
Update to feed action to return config and status
openwhisk-packages-kafka:
New ability for feed action to return config and status
- Update to feed action to update trigger config (topic)
openwhisk-packages-alarms:
New ability for feed action to return config and status
New alarm trigger type interval
New alarm trigger type fire once
New StartDate and stopDate parameters for cron
openwhisk-cli:
New canonical source after duplication removal from main repo
New open issues moved from main repo to CLI repo
New triiger feed lifecyles on `trigger get` and `trigger update`
- Note: there was an issue with pushing Docker images to DockerHub for ~2 week period fixed on 11/27; effects were that Travis builds on 11/28 suddenly experienced a issues from the backlog of updates that went untested.
Significant Pull Requests (PRs):
- 9/12: Use latest version of Akka HTTP #2726
- 9/12: Make nginx more performant acting as a proxy. #2727
- 9/21: Removing 'Swift 3.1.1' from build. #2737
- 9/18: Added --result to invoke action #2750
- 9/21: Add git pre-commit hook scripts for Scala formatting #2782
- 9/27: update apigw end-to-end to be more resilient #2724
- 10/12: Change logging backend from log4j to Logback #2818
10/17: Option to use docker pause/unpause instead of docker-runc pause/unpause #2828
- 10/18: Added support for configurable java action method name (#2590) #2754
- 10/18: Make redis optional on deployment #2868
- 10/20: Added support for configurable java action method name. #2875
- 10/20: Update nodejs to 6.11.4 #2879
10/27: Emit metrics via kamon #2857
This PR implements the capability to send metric information via Kamon (http://kamon.io/) to statsd (https://github.com/etsy/statsd) instead or additionally to the existing metrics information which is written into the system logs.
- 11/7: use ZooKeeper as persistent store for invokerId assignment #2916
- 11/9: Reduce memory consumption for invocations of cached actions #2730
- 11/10: Reorganization of the "core" folder to move folders associated with runtimes to "actionRuntimes" in root folder #2933
- 11/10: Add the support of certificate checking for secure mode #2864
- 11/17: Programmatic lazy creation of completedN and invokerN topics #2948
11/17: Initial support for nodejs8 #2958
- 11/29: Add couchdb clustering #2810 (still pending issues being worked as issues)
11/21: Removal of openwhisk cli and cli related test cases #2979
11/23: Enable controller HA by default #2994
11/28: Adapt timeouts of controller and nginx. #3010
Outstanding issues and PRs of note
C# / .NET Core #3003
All Akka related code sharing a single dispatcher #2954
Bash kind action #2927
Default Python actions to use Python 3 #2725
Package export/import #2844
Significant. discussions (dev list):
How would you assess the podling's maturity? Please feel free to add your own commentary.
[ ] Initial setup
[X] Working towards first release
[X] Community building
[ ] Nearing graduation
[ ] Other:
Comments:
Need greater variety of contributors and contributing companies
Date of last release:
N/A
When were the last committers or PPMC members elected?
Tyson Norris, Committer, 08/31/2017
James Dubee, PPMC, Committer, 09/05/2017
Signed-off-by:
[ ] (openwhisk) Felix Meschberger Comments:
[ ](openwhisk) Isabel Drost-Fromm Comments:
[ ](openwhisk) Sergio Fernández Comments:
IPMC/Shepherd notes: