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, Kubernetes, and Compose.
Three most important issues to address in the move towards graduation:
- Establish process for source release (automation work ongoing here https://github.com/apache/incubator-openwhisk-release)
- Increase additional company and individual Contributors to maintain all project repos.
- Kubernetes and Mesos deployments work and integrations need improvement; comm, aware of lots of work being done in (private and public) forks.
Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be aware of?
- Issue backlog building on incubator-openwhisk has grown significantly; need to prioritize and work to reduce while advancing performance/security/deployment issues.
- Trying to add more active Committers to augment those who have dropped off in their activity. A consistent hosted, staging environment would help repro. issues, as well as stage PRs to test fixes.
- 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
- See discussion here: OpenWhisk / Kubernetes proposed epics/action items/questions
- No change in status since last quarterly report
- 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".
- No change in status since last quarterly report
How has the community developed since the last report?
- Mentor changes:
- Felix Meschberger and Sergio Fernández have stepped down from being mentors with regrets.
- Bertrand Delacretaz volunteered to become mentor to fill Felix' spot.
- Jim Jagielski volunteered to become mentor to fill Sergio's spot.
- dev mailing list usage has been relatively active
incubator-openwhisk Github stars: 2877 (+696 since last report)
incubator-openwhisk GitHub forks: 544 (+75 since last report)
- 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.
- YouTube Channel: Apache Meetings Playlist
- CWiki Meeting Notes: OpenWhisk Technical Interchange Meeting Notes
- Complete videos posted to OW YouTube channel and detailed notes to our CWIKI.
New Contributors
- Michele Sciabarra: developing a GoLang runtime w/ perf. tests
- Seonghyun Oh: working on a Bash runtime for functions
- Nhat Nguyen: NodeJS interest
Sang Heon Lee: working on CouchDB implementation for ArtifactStore (WIP)
- Allen Servedio: identified a bug in wskdeploy, extended code to allow support for GitHub private repos.
- Vipul Kashyap: RedHat, no commits yet
- Lorna Mitchell: IBM, data service integrations (e.g., CouchDB), NodeJS, PHP runtimes
- Neeraj Mangal: discussing namespace enhancements
- Jason Peterson: IBM, maintaining packages Alarms, Push Notifications, Cloudant and Deploy
- Sudipta Biswas: support S390X deployment (i.e., power architectures)
- Kiseok Jang: Java (JVM) enhancement interest, no commits yet
- Junyoung Sung: interest in support Bash actions (runtime), no commits yet
How has the project developed since the last report?
- Emphasis on 3 areas have been featured since last report:
- Release process
- See incubator-openwhisk-release (code, tools, documentation), see demo (as of 2/28): YouTube
- Lots of discussion and work on developing both a manual and automated (source code) release process for 12 openwhisk project repos. that constitute the project's platform and related tooling (i.e., version tied).
- All steps in release process are described in repo's markdown that the comm. is working to complete
- Checklists/Runbooks created for release managers to follow
- Automation tested with signing/hashing as per Apache requirements
- still working on assuring all Apache license/legal/notice/change files are present (perhaps automated as well)
- issues with RAT and TENTACLES tools documented, working to document our exception lists and policies and alternative tools to verify licenses when not supported by RAT
- See incubator-openwhisk-release (code, tools, documentation), see demo (as of 2/28): YouTube
- Security enhancements
- Now encrypting "data-in-motion" by enabling SSL between Controllers, Kafka and Invokers.
- Scalability / Performance
- Controller now uses fully scalable impl. instead of active with "hot standby"; lots of testing/changes to validate as optional before moving to promote as default on dev. list.
- Introduced new LoadBalancer plug-in that uses Horizontal sharding; evaluating making it the default as perf. tests indicate notable improvement in controller-invoker throughput under load.
- Improved handling of Artifact Attachments as a separate artifact (for storage/update/deletion) and provide alternative implementations (other than CouchDB), primarily Object Storage services as targets.
Made ActivationId implementation leaner by adopting UUID (single string) versus an object that wraps a UUID.
- Other Notable discussions/changes/issues/features:
- Added support of Time-series DBs using Kamon Tag (e.g., OpenTSDB, Datadog)
- Discussions on large (size) argument support in runtimes/impacts on performance/configurability.
- Updated all tools/ubuntu-setup to support xenial and later Ubuntu releases.
- Implementation of runtime for Go (GoLang) actions. New contributor authored new Invoker runtime and tested with 3 possible impls. for performance before submitting for review.
- Action Compositions now supported in Controller and demonstrated on Interchange call; more changes may be coming for Controller to enable parallel processing.
- Added A Pull Request (PR) template (checklist) for all code submissions (incubator-openwhisk) to assure they are ready for review and get assigned correctly.
- Action time limits are now configurable.
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?
- New Committers+PPMC: Dave Grove (2018-02-08), James Thomas (2018-02-08) Mark Deuser (2018-02-22)
- New Committers: Priti Desai (2018-02-19)
Signed-off-by:
[ ](openwhisk) Bertrand Delacretaz Comments:
[ ] (openwhisk) Jim Jagielski Comments:
[ ](openwhisk) Isabel Drost-Fromm Comments: