Lithops compute backends can be classified in 3 different execution modes depending on the backend you choose.
This mode allows to run functions in your local machine, using the available local CPUs. This is the default mode of execution if no configuration is provided.
Note
This is the preferable option for starting with Lithops, and for testing (debugging) your applications.
fexec = lithops.LocalhostExecutor()
- Available backends: Localhost
This mode allows to run functions by using one or multiple function-as-a-service (FaaS) Serverless compute backends. In this mode of execution, each function invocation equals to a parallel task running in the cloud in an isolated environment.
In this mode of execution, the execution environment depends of the serverless compute backend. For example, in AWS Lambda, IBM Cloud Functions, Google Cloud Run, IBM Code Engine and Kubernetes you must use a Docker image as execution environment. In contrast, Google cloud functions, Azure functions and Aliyun Functions use their own formats of environments.
fexec = lithops.ServerlessExecutor()
- Available backends: IBM Cloud Functions, IBM Code Engine, AWS Lambda, AWS Batch, Google Cloud Functions, Google Cloud Run, Azure Functions, Aliyun Function Compute, Kubernetes Jobs, Knative, OpenWhisk
This mode allows to run functions by using a remote host or a cluster of virtual machines (VM). In the VM, functions run using parallel processes. This mode of executions is similar to the localhost mode, but using remote machines. In this case, it is not needed to install anything in the remote VMs since Lithops does this process automatically the first time you use them.
Note
This is the preferable option if your application (or a part) requires a more powerful environment than the ones provided by the Serverless backends (in terms of CPU and Memory).
fexec = lithops.StandaloneExecutor()
- Available backends: IBM Virtual Private Cloud, AWS Elastic Compute Cloud, Remote host / Virtual Machine