More than 13 years professional experience at Big Tech Co. Moved to self-employed software consultancy in 2020. Currently building full-stack scalable cloud applications using serverless for clients. Previously held roles as Senior Software Engineer, Lead Developer Advocate, Emerging Technologies Consultant and Open-Source Developer. Worked remote most of my career.
Also has extensive experience in developer relations and open-source development. Committer on Apache projects amongst others. Spoken at dozens of developer conferences all over the world.
More than 13 years professional experience at Big Tech Co. Moved to self-employed software consultancy in 2020. Currently building full-stack scalable cloud applications using serverless for clients. Previously held roles as Senior Software Engineer, Lead Developer Advocate, Emerging Technologies Consultant and Open-Source Developer. Worked remote most of my career.
Also has extensive experience in developer relations and open-source development. Committer on Apache projects amongst others. Spoken at dozens of developer conferences all over the world.
More than 13 years professional experience at Big Tech Co. Moved to self-employed software consultancy in 2020. Currently building full-stack scalable cloud applications using serverless for clients. Previously held roles as Senior Software Engineer, Lead Developer Advocate, Emerging Technologies Consultant and Open-Source Developer. Worked remote most of my career.
Also has extensive experience in developer relations and open-source development. Committer on Apache projects amongst others. Spoken at dozens of developer conferences all over the world.
Docker extensibility is common in the open-source faas projects but not in any(?) of the commercial serverless offerings (Google, Amazon or Microsoft).
Runtime support (upload code not a container) is more common in the commercial offerings that most of the Docker-based faas frameworks, which use a container as the packaging.
OpenWhisk is more flexible than most of the platforms with respect to packaging IMO (Wanna deploy code? Great. Prefer containers? Sure. Wanna use code and a custom image? No problem!)
Event support is more common in the commercial offerings (as they have cloud services for you to use), whereas the "faas" framework seem more bare bones. You'll have to configure event integration manually. Same goes for API gateways.
OpenWhisk supports numerous open-source event providers with a extensible API for integrating new providers. This is more complete that lots of the other projects in this respect.
Over time these features will become default in all projects but there does seem a split in focus between the commercial offerings and "faas" frameworks at the moment. I'm biased :) but I think OpenWhisk has a comparible feature set to Lambda (having been around for over two years) whilst still benefiting from the open-source docker story.
Apache OpenWhisk has a number of differences to other serverless platforms (as well as being open-source) including...
- Excellent "out of the box" runtime support including Node.js, Java, PHP, Swift, Python, any binary runtime (Go, Rust, etc..).
- Custom runtime support using Docker images. Allowing custom images as the execution environment makes it easy to use (almost) anytime on the platform without needing this to come built-in. Custom images can be used to add large libraries or other resources.
- Integrated API Gateway. Makes it simple to expose custom routes to functions.
- Multiple built-in event sources including HTTP events, CouchDB, Kafka and more. Platform supports registering custom event providers to add any external data feed or event source.
- Higher-order function composition patterns including sequences.
There are numerous open-source serverless platforms but OpenWhisk is the most mature and one of the only open-source platforms powering commercial serverless offerings, being used by IBM Cloud Functions, Adobe and Red Hat. It has used by IBM's offering with customers since early 2016.
Development is all public with the project being in the Apache incubation phase. Upcoming features being worked on include Swift 4 support, on-going k8s integration and better higher-order functional composition patterns. Check out the Github PRs and issues for details.
It can definitely do this, it supports AWS out of the box and has "provider plugins" for everyone else. The workflow for deploying and managing applications is the same across all providers.
At the implementation level, the providers do differ. From small things (like the function interface) to bigger things (like event services).
The Serverless Framework now supports multiple serverless platforms (AWS Lambda, OpenWhisk, Azure Functions and Google Cloud Functions).
Depends on what you consider "unopinionated"...
It handles all the deployment lifecycle across all providers but won't abstract away all the implementation details. It is not possible to "lift & shift" from one provider to another without making some changes.