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.

 

OpenWhisk has been incubating since 2016-11-23.

   Three most important issues to address in the move towards graduation:    

  1. Est. release process for ZIP of source code
  2. 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
  • 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
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):

    • Move docker runtime into it's own repo #2850
    • Move python runtime into it's own repo #2843

    • Move nodejs runtime into it's own repo #2834

    • Move php runtime into it's own repo #2823

    • Move swift runtime into it's own repo #2822

    • Move java runtime into it's own repo #2821

  • 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):

  • TBD

   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:

 

  • No labels