Overview
FaaSr is serverless Function-as-a-Service cloud software that makes it easy for developers to create functions and compose them in workflow graphs that can run unattended and on-demand
FaaSr simplifies deploying reproducible FaaS workflows in different cloud providers without any code changes, with a primary use case in scientific workflows
Cloud platforms
FaaSr supports the following cloud computing platforms:
- GitHub Actions - free-tier resources for small-scale workflows
- AWS Lambda - commercial cloud for scalable, low-latency worrkflows
- Google Cloud Run - commercial cloud for resource-intensive workflows
- OpenWhisk - open-source FaaS platform for private clouds
- Slurm - open-source job schedulers for private HPC clusters
and the S3 protocol for cloud storage in platforms including:
- Minio - open-source S3 software
- AWS S3 - commercial S3 provider
- OSN - academic S3 provider in the USA
Programming languages
FaaSr supports workflows with functions written in Python, R, or a combination of both
Requirements
To get started with FaaSr you need:
- A GitHub account and associated credentials (a PAT token)
- An S3 data store bucket and associated credentials (access and secret keys)
- A FaaSr-workflow GitHub repository in your account
- A workflow configuration JSON file stored in your account's FaaSr-workflow repository
- A function code repository
Getting started
It's often easier to learn by doing: read the workflow model introduction for a brief overview of how FaaSr workflows are composed, and then the FaaSr tutorial guides you through setting up your workflow repo using a freely available public S3 test bucket hosted by Minio Play. Once you are comfortable with the initial setup from the tutorial, you will be able to:
- Configure additional cloud compute and data storage accounts
- Create your own functions using FaaSr R APIs and/or FaaSr Python APIs
- Configure your own workflows using the FaaSr Workflow Builder Web UI that produces FaaSr-compliant JSON configurations
- Register your own workflows with one or more cloud providers
- Invoke your workflows
- Verify and debug your workflow logs