StreamFlow框架
项目描述
StreamFlow
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 容器作为 Job
在 Kubernetes 中执行。在这种情况下,StreamFlow 能够通过 ServiceAccount
凭证直接在父集群上部署 Helm
模型。为此,必须在 streamflow.yml
文件中的每个相关模块上将 inCluster
选项设置为 true
models:
helm-model:
type: helm
config:
inCluster: true
...
StreamFlow Job
的 Helm
模板可以在 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e0356323ecf910dd8ced3ceff1450ee30ec4b8a17b4a6cf39fdc8812659bc01 |
|
MD5 | 4b6b177f4218fc1c35dd0f533d570d99 |
|
BLAKE2b-256 | 130f2ae2f50517922e2736bdb75f92802f6037bfa32efca56fee8f76f77221c7 |
streamflow-0.1.6-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ed03ddaa1008a2de967b5dcbe1c8d7b36ca538a11704790a8fac16fd236b077 |
|
MD5 | 287243176716aa7ca11bce2d27edb19d |
|
BLAKE2b-256 | be7e762f0495fdbf0a454eaa4dfbf167754f9a9d76a43f0976b66a250d493890 |