跳转到主要内容

StreamFlow框架

项目描述

StreamFlow

CWL Conformance

StreamFlow框架是一个用Python 3编写的容器原生工作流管理系统(WMS),它围绕两个主要原则设计:

  • 允许在多容器环境中执行任务,以便支持多代理生态系统中多个通信任务的并发执行。
  • 放宽对单个共享数据空间的要求,以便在多云或混合云/HPC基础设施上允许执行混合工作流

使用StreamFlow

PyPI

StreamFlow模块可在PyPI上找到,因此您可以使用pip进行安装。

pip install streamflow

请注意,StreamFlow需要python >= 3.8。然后您可以直接从CLI执行它

streamflow run /path/to/streamflow.yml

Docker

StreamFlow Docker 镜像可在 Docker Hub 上找到。为了在 StreaFlow 镜像中运行工作流程

  • StreamFlow 项目需要包含一个 streamflow.yml 文件以及所有其他相关依赖(例如,工作流程步骤的 CWL 描述和执行环境的 Helm 描述),并将它们作为卷挂载到容器内部,例如在 /streamflow/project 文件夹中
  • 如果有工作流程输出,将存储在 /streamflow/results 文件夹中。因此,需要将此类位置作为卷挂载以持久化结果
  • StreamFlow 将所有临时文件保存在 /tmp/streamflow 位置。出于调试目的,或在处理大文件以提高 I/O 性能的情况下,将此位置也作为卷挂载可能很有用
  • streamflow.yml 文件的路径必须在 Docker 容器内部传递(例如 /streamflow/project/streamflow.yml),作为 Docker 容器的一个参数

下面的脚本给出了在 Docker 容器中执行 StreamFlow 的示例

docker run -d \
    --mount type=bind,source="$(pwd)"/my-project,target=/streamflow/project \
    --mount type=bind,source="$(pwd)"/results,target=/streamflow/results \
    --mount type=bind,source="$(pwd)"/tmp,target=/tmp/streamflow \
    alphaunito/streamflow run /streamflow/project/streamflow.yml

Kubernetes

还可以将 StreamFlow 容器作为 JobKubernetes 中执行。在这种情况下,StreamFlow 能够通过 ServiceAccount 凭证直接在父集群上部署 Helm 模型。为此,必须在 streamflow.yml 文件中的每个相关模块上将 inCluster 选项设置为 true

models:
  helm-model:
    type: helm
    config:
      inCluster: true
      ...

StreamFlow JobHelm 模板可以在 helm/chart 文件夹中找到。

请注意,如果 Kubernetes 集群启用了 RBAC,则必须将适当的 RoleBinding附加到 ServiceAccount 对象,以授予 StreamFlow 管理 pods 部署和任务执行权限

CWL 兼容性

StreamFlow 依赖于 Common Workflow Language (CWL) 标准来设计工作流程模型。StreamFlow 的 CWL 兼容性徽章如下。

CWL v1.0

类别

必需功能

可选功能

CWL v1.1

类别

必需功能

可选功能

CWL v1.2

类别

必需功能

可选功能

为 StreamFlow 做出贡献

作为第一步,从 GitHub 获取 StreamFlow

git clone git@github.com:alpha-unito/streamflow.git

然后可以使用 pip install 命令安装所有必需的软件包

cd streamflow
pip install .

StreamFlow 依赖于 GitHub Actions 来分发 PyPI 和 Docker Hub。因此,为了发布软件的新版本,只需在 version.py 文件中增加版本号即可。

StreamFlow 团队

Iacopo Colonnelli iacopo.colonnelli@unito.it(创建者和维护者)
Barbara Cantalupo barbara.cantalupo@unito.it(维护者)
Marco Aldinucci aldinuc@di.unito.it(维护者)

Gaetano Saitta gaetano.saitta@edu.unito.it(贡献者)
Alberto Mulone alberto.mulone@edu.unito.it(贡献者)

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

streamflow-0.1.6.tar.gz (150.7 kB 查看哈希值)

上传时间

构建分布

streamflow-0.1.6-py2.py3-none-any.whl (175.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面