Run FireWorks workflows in Google Cloud
Project description
Borealis
Runs FireWorks workflows on Google Compute Engine (GCE).
See the repo Borealis.
- Borealis is the git repo name.
- borealis-fireworks is the PyPI package name.
- borealis-fireworker.service is the name of the systemd service.
- fireworker is the recommended process username and home directory name.
Background
You can launch as many Fireworker nodes as you want as Google Compute Engine (GCE) VM
instances, and/or run local workers, as long as they can all connect to the LaunchPad
server running MongoDB. Metadata parameters and the worker's gce_my_launchpad.yaml
file (if that file doesn't exist, then my_launchpad.yaml
) configure the
MongoDB host, port, and DB name. Users can have their own DB names on a shared
MongoDB server, and each user can have multiple DB names -- each an independent
launchpad space for workflows and their Fireworker nodes.
Workers get Fireworks from the LaunchPad, run them in "rapidfire" mode, and eventually time out and shut themselves down.
Workers can run any Firetasks that are loaded on their disk images, but the best fit is to run the DockerTask Firetask. DockerTask pulls task input files from Google Cloud Storage (GCS), runs a payload task as a shell command within a Docker container, and pushes task output files to GCS.
DockerTask parameters include the Docker image to pull, the command shell tokens to run in the Docker container, and its input and output files and directories.
DockerTask pulls the inputs from and pushes the outputs to Google Cloud Storage (GCS). This avoids needing a shared NFS file service which costs 10x as much as GCS storage and doesn't scale as well.
Using a Docker image lets you bundle up the payload task with its entire runtime, e.g. Python version, pips, Linux apts, and config files. Your workflow can use one or more Docker images, and they're isolated from the Fireworker.
Team Setup
TODO: Install & configure dev tools, create a GCP project, auth stuff, install MongoDB on a GCE VM or set up Google-managed MongoDB, create a Fireworker disk image & image family, ...
Individual Developer Setup
TODO: Install & configure dev tools, make a storage bucket with a globally-unique name, build a Docker image to run, ...
Run
TODO
Change Log
v0.2.0 - 2020-02-13
- Read launchpad config info from
gce_my_launchpad.yaml
if possible, falling back tomy_launchpad.yaml
for compatibility. This lets people use one launchpad config file for their GCE workflows and another one for their other workflows. - Improve the server installation steps and augment the
fireworker --help
text to display its directory.
v0.1.1 - 2020-02-13
- Correct the pip name in
startup.sh
. - Use
print()
instead oflogging
in gce.py so the messages aren't filtered by the log level. - Refine the installation instructions.
v0.1.0 - 2020-02-10
- Initial dev build.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file borealis-fireworks-0.2.0.tar.gz
.
File metadata
- Download URL: borealis-fireworks-0.2.0.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 226727f76cf2b5efc403e3f0ff9c2214a7d9e0621e231dad56531afda26864af |
|
MD5 | 85b0d6cf0b5931e9ae960391213aa652 |
|
BLAKE2b-256 | bdfa95bd09702d89da64465ee222d1f8bc8275cfad05a355f47e4d2856311dec |
File details
Details for the file borealis_fireworks-0.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: borealis_fireworks-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7711acc843c613a8715a9e0356b0b9e145c5b2409c105ceafcb98438e7729c5 |
|
MD5 | 11f42ee316abf56582fe1c72c767f01d |
|
BLAKE2b-256 | 0b0168302a5a286009b73d81d11c8782709a5d6d41dec2fbcc86557227cc1566 |