ServerlessAnywhere will be a distro of Apache OpenWhisk.
It should let you to install itself on any supported Kubernetes with a single command:
curl get.serverlessanywere.com | kubectl apply -f -
This command will basically install an operator that will perform all the operations to setup OpenWHisk and his dependencies and additions.
It should run and be certified to work on
- EKS
- AKS
- GKE
- OpenShift
- Rancher
More Kubernetes distributions we can add the better.
It should be able to autodetect the environments where is going to run.
All the components must be managed with Operators, including Kafka, Redis and Couchdb.
I want to consider the replacement of Couchdb with Mongodb as there is already a Cosmodb compatiblity layer.
We have to add the following components
- a cache based on redis
- object storage compatible s3
- a database service compatible dynamodb (Scylla Activator?)
- to be decided if add a SQL layer too (Postgresql/MySQL)
-
stardardize all the runtimes on ActionLoop
-
have a single repository with all of them instead of many different repos.
-
publish all the runtimes on GitHub and build them automatically with GitHub actions
-
All the runtimes should have a consistent set of libraries and be versioned properly
-
I want to use only standard libraries to access functions and pass parameters as environment variables (explicit)
- We should make possible to run Lambda Actions in multiple langauges, adapting the runtimes.
- We have to add support for a database out of the box. I want to consider Alternator, a Dynamodb compatible
- the development tools should include a way to run locally OpenWHisk and dependencies leveraging the local servers
- All the dependencies should be made explicit so you can easily rebuid a local environment to test functions locally
- Develop a SpringBoot migration tool allowing to run Spring applications as functions with minimal (ideally zero) changes
- Develop an integration with Wordpress to be able to run wordpress as a function
- Develop an integration with Knative in order to leverage it for additional functions like Websockets