Use environments to deploy any binary or library written in any language you need.
Think of an environment as a filesystem. We give you the ability to customize the filesystem your jobs see and use. You can install anything your jobs might need whether it's a program, library or data dependency.
When you create an environment, we give you access to a Ubuntu Linux server. You can SSH into it, and customize it as if it were your own machine. When you save your environment, we store it on our distributed file system, and then present it on demand to your jobs.
Here we show you with three types of jobs. The first type is a regular job that does not use a custom environment. The second type uses environment A. The third type uses environment B. When a job that uses an environment is assigned to a core, that core fetches the environment from the environments repository. In practice, the fetching is performed on-demand as the job runs, and the environment is cached at the site of the core. Environment C is unused.
# import our Python client
import cloud
# run your function on the cloud with your environment
cloud.call(f, _env='myenv')
# map functions work the same way
cloud.map(f, mapargs, _env='myenv')
picloud exec -e myenv program
You are charged for the storage space your environments consume. You can see this in your Environments Dashboard.
Yes. When setting up an environment, you have full access to the file system for maximum customizability.
Yes. As many as you want.
When you run a job without an environment, and when you first create an environment, you see our base environments. The contents of the base environments can be found at the following:
At this time, all environments are Linux-based. If you need to use a Windows program, try installing Wine on your environment.