任务流TaskFlow的应用

TaskFlow是OpenStack社区的一个通用流程引擎,用于高效控制任务执行。它提供了独立性、中断性和并发性的特性,常用于Cinder和Neutron组件。TaskFlow通过抽象任务,实现工作流的编排,广泛应用在作业平台的安装、升级等场景。在作业平台,TaskFlow支持线性和复杂的多分支工作流,涵盖了Python和Shell等多种任务编写模板。
摘要由CSDN通过智能技术生成

TaskFlow主要由OpenStack社区在维护,致力于为一组任务的执行提供高效细粒度的控制。在Cinder组件源码中,创建卷等耗时比较长且容易出错的操作便利用到了taskflow,同样的,Neutron组件也使用它控制创建网络的复杂操作。

一、taskflow的特性

TaskFlow作为OpenStack的通用流程引擎,能让作业执行变得容易,同时满足三种特性。

1. 独立性

不相关的原子任务执行成功与否不影响其它原子任务的执行。

2. 中断性

一个编排任务在执行过程中可以暂停,下一次执行时能从暂停处继续执行。

3. 并发性

对于无序的多个任务,引擎能基于多协程多线程多进程来同时执行它们。

二、taskflow实现原理

1. 任务的抽象

三、taskflow在作业平台的应用

1. 作业平台的应用场景

在作业平台中进行编排任务的时候,不仅需要支持线性的工作流,还要支持能适应复杂场景的多分支工作流。

1.1 安装软件

以安装MariaDB为例

  1. 设置MariaDB yum仓库

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    # MariaDB 10.3 CentOS repository list - created 2018-09-19 02:18 UTC
    http://downloads.mariadb.org/mariadb/repositories/
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.3/centos7-ppc64le
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    EOF

  2. sudo yum install MariaDB-server MariaDB-client ;若安装失败则 yum remove mariadb-libs*,再执行sudo yum install MariaDB-server MariaDB-client
  3. systemctl start mariadb
  4. /usr/bin/mysqladmin -uroot password 'xx' 或 /usr/bin/mysql_secure_installation

    Enter current password for root (enter for none): 

    Set root password? [Y/n] Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值