Skip to content

Instantly share code, notes, and snippets.

@sciabarracom
Last active July 19, 2024 09:25
Show Gist options
  • Save sciabarracom/00fae2c3266bec8c5fc2a0bae6361821 to your computer and use it in GitHub Desktop.
Save sciabarracom/00fae2c3266bec8c5fc2a0bae6361821 to your computer and use it in GitHub Desktop.
RoadMap for a new ditstro based on Apache OpenWHisk

ServerlessAnywhere RoadMap

About

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.

Targets

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.

Operators

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.

Additional Components

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)

Runtimes

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

Lambda and Dynamodb Compatibility

  • 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

Development Tools

  • 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

Integrations

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment