Watcher 自动触发审计

https://blueprints.launchpad.net/watcher/+spec/automatic-triggering-audit

问题描述

该蓝图超越了“持续优化”蓝图,通过自动应用行动计划。https://blueprints.launchpad.net/watcher/+spec/continuously-optimization

Watcher 需要持续优化 OpenStack 云,以实现特定的策略或目标。Watcher 可以定期触发一些 审计,从而生成 行动计划

不幸的是,在当前实现中,管理员必须手动启动推荐的行动计划才能将其应用于实际系统。

此规范与蓝图相关:https://blueprints.launchpad.net/watcher/+spec/automatic-triggering-audit

用例

作为管理员,每次都告诉审计触发行动计划对管理员来说是一件麻烦事,因此我们在此实现审计中的自动触发功能,该功能会触发行动计划。

项目优先级

Ocata-2 的必要功能

提议的变更

Watcher 系统使私有/公有云管理员能够在 OpenStack 集群上启动 审计,以便根据一个或多个目标对其进行优化。

我们需要在 AUDIT 中引入新的属性,
  • auto_trigger - 用于执行 AUDIT 的行动计划。

一个 审计 是一个优化请求,但在 auto_trigger 的情况下,当系统在 AUDIT 中发现 auto_trigger=True 时,它将触发该审计的行动计划。

AutoTriggerActionPlan 逻辑将在 watcher/decision_engine/audit/base.py 下实现。

AutoTriggerActionPlan 类将包含与触发审计的行动计划相关的所有逻辑。为了从 AutoTriggerActionPlan 触发行动计划,我们将使用 RPC 调用 launch_action_plan。

在 Applier 级别,当前只会执行一个行动计划。https://github.com/openstack/watcher/blob/master/watcher/applier/manager.py#L30 如果在执行当前行动计划时提出了新的行动计划,我们将通过适当的消息“当前正在运行一个行动计划”取消新的行动计划,并且行动计划的状态也应设置为 SUPERSEDED。

备选方案

  • 使用 cronjob 为审计自动触发行动。

数据模型影响

  • 我们需要在审计中引入新的属性 auto_trigger。

REST API 影响

预计没有

安全影响

由于系统可能会开始连续运行行动计划,从而严重损害集群的稳定性,因此可能存在安全影响。

通知影响

无预期。

其他最终用户影响

预计没有

性能影响

预计没有特定的性能影响。

其他部署者影响

预计没有特定的部署影响。

开发人员影响

这不会影响在 OpenStack 上工作的其他开发人员。

实现

负责人

主要负责人

Alexander Chadin <alexchadin>

其他贡献者

Digambar Patil <diga> Jean-Emile DARTOIS <jed56>

工作项

  • 实现 AutoTriggerActionPlanHandler 类。

  • 调整 API 以支持 auto_trigger 字段作为布尔值。

  • 在 python-watcherclient 中添加 auto_trigger 到审计。

  • 在 watcher-dashboard 中添加 auto_trigger 复选框。

  • 实现适当的单元测试来测试各种场景。

依赖项

预计没有

测试

适当的单元测试将被调整以适应新的更改。

文档影响

需要添加与此更改相关的新内容。

参考资料

https://blueprints.launchpad.net/watcher/+spec/continuously-optimization

历史

没有历史记录。