103 karma · joined April 6, 2011
Senior software architect & engineer for serverless full-stack applications (AWS Lambda + AWS Services).
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.
github: https://github.com/jthomas/ blog: http://jamesthom.as/ email: consulting@jamesthom.as
Senior software architect & engineer for serverless full-stack applications (AWS Lambda + AWS Services).
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.
github: https://github.com/jthomas/ blog: http://jamesthom.as/ email: consulting@jamesthom.as
Senior software architect & engineer for serverless full-stack applications (AWS Lambda + AWS Services).
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.
github: https://github.com/jthomas/ blog: http://jamesthom.as/ email: consulting@jamesthom.as
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.
- 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.
(Disclosure: OpenWhisk committer and IBMer).
See here for more details: https://github.com/apache/incubator-openwhisk-deploy-kube
(Disclosure: I'm a committer on Apache OpenWhisk).
It can also be deployed on k8s with minimal effort: https://github.com/apache/incubator-openwhisk-deploy-kube
There's also instructions for using VMs as the infrastructure layer: https://github.com/apache/incubator-openwhisk#quick-start
If you have any issues open an issue or join us on the slack (http://openwhisk.incubator.apache.org/slack.html).
(I'm a committer on the project).
At the implementation level, the providers do differ. From small things (like the function interface) to bigger things (like event services).
I did a talk on this a while ago: https://speakerdeck.com/jthomas/taming-serverless-dragons-mu... https://serverless.london/meetup/feb2017/serverless-framewor...
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.