openstack taskflow

Taskflow是OpenStack中的一个Python库, 它主要是可以使task的执行变得更加容易、一致和可靠,这对于openstack中各种长流程任务来说应该十分有好处,当前已经使用在cinder中,下一步是neutron。

它 执行flows,可以停止、重新开始和以安全的方式恢复flows。它与RDBMS动作保护有点类似。当一个flow被中断时,动作可以恢复,甚至可以自动回滚。

概念上的例子

下面的伪代码说明一个flow是如何以类似SQL 事务的方式工作的。

START TRANSACTION
   task1: call nova API to launch a server || ROLLBACK
   task2: when task1 finished, call cinder API to attach block storage to the server || ROLLBACK
   ...perform other tasks...
COMMIT
上的例子可以用于Heat 编排的一部分,添加一个挂载了卷的实例。这个编排可以并行的生成大量的类似的实例。

Why

OpenStack 的代码正在有组织的增长,但是如果进程被意外中断,却没有一个可以安全恢复或回滚代码的标准;大多数项目并没有使task可以重启或恢复,简单的挑高或恢复的场景在今天的代码里已几乎不可能。
Goal:通过Taskflow的推广,使OpenStack变的可信和可靠,甚至在没有HA的情况下。
 

Further use-cases

Orphaned resources(僵尸资源)
由于现在OpenStack的项目缺乏事务语义,所以会留下一些资源成为孤儿状态,或ERROR的状态,在自动化系统(Heat)
情况下,这种状况是非常不能令人接收的,因为非常难分析哪些是要被清除的孤儿资源。Taskflow提供其以任务为导向的模型
将能正确地追踪资源的变动,这就容许在一些资源上的动作可以自动地被撤销,以确定没有资源被称为“僵尸”。

Metrics and history(度量和历史)
当OpenStack服务被组织进task 和 flow 的对象和模式时,他们获得自动地能力,可以简单的增加度量报告和历史操作,这些
服务用taskflow可以记录这些度量/历史,并与task 和 flow的运行进行关联。在多种OpenStack服务中,有多种方法

Design


架构

Tasks



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值