故障自愈(青囊)

青囊

1 项目概述

1.1 背景介绍及目标

1.2 名词说明

1.3 Roadmap

2 需求分析

需求分析重点是需求

2.1 功能需求

2.2 非功能需求

2.3 调研

2.3.1 百度 ARk

百度运维机器人

2.3.2 st2

https://github.com/StackStorm/st2

StackStorm(又称"IFTTT for Ops")是事件驱动的自动化,可进行自动修复,安全响应,故障排除,部署等。
架构图
  • Sensors: 传感器是用于入口集成的 Python 插件,用于监视来自外部系统的事件,并在事件发生时触发 StackStorm 触发器。

  • Triggers: 触发器是外部事件的 StackStorm表示。有通用触发器(例如计时器,webhooks)和集成触发器(例如 Sensu 警报,JIRA 问题已更新)。可以通过编写传感器插件来定义新的触发器类型。

  • Actions: 操作是 StackStorm 出站集成。有通用操作( SSH,HTTP 请求),集成( OpenStack,Docker,Puppet )或自定义操作。操作是通过添加几行元数据而被使用到StackStorm 中的 Python 插件或任何脚本。用户可以通过 CLI,API 或 Web UI 直接调用操作,也可以将其用作自动化的一部分-规则和工作流。

  • Rules: 规则将触发器映射到操作(或工作流),应用匹配条件,并将触发器有效负载数据映射到操作输入。

  • Workflows: 工作流将动作组合为“超级动作”,定义顺序,过渡条件,并将上下文数据从一个动作传递到下一个动作。大多数自动化是多步骤的(例如:多个动作)。就像“基本”动作一样,工作流在动作库中可用,并且可以手动调用或由规则触发。

  • Packs: 包是内容部署的单位。它们通过对集成(triggers and actions)和自动化(rules and workflows)进行分组,简化了 StackStorm 可插入内容的管理和共享。StackStorm Exchange上的包装数量越来越多。用户可以创建自己的包,在 GitHub 上共享它们,或将其提交给 StackStorm Exchange 组织。

  • Audit trail: 审核跟踪是手动或自动执行操作的历史记录,并记录并存储了触发上下文和执行结果的全部详细信息。它还在审计日志中捕获,以与外部日志记录和分析工具集成:LogStash,Splunk,statsd或syslog。

StackStorm 是具有模块化体系结构的服务。它由松散耦合的微服务组件组成,这些组件通过消息总线进行通信,并水平扩展以实现大规模自动化。StackStorm 具有完整的 REST API,CLI 客户端和 Web UI,供管理员和用户在本地或远程操作它,以及 Python 客户端绑定,以方便开发人员。

3 总体设计

总体设计重点是设计与折衷

3.1 系统架构

一般来说会有个简单的架构图,并配以文字对架构进行简要说明;

3.2 模块简介

架构图中如果有很多模块,需要对各个模块的功能进行简要介绍;

3.3 设计与折衷

设计与折衷是总体设计中最重要的部分;

3.4 潜在风险

4 详细设计

详细设计重点在“详细”

4.1 模块 xx

(有了数据库+接口+流程,别的同学拿到详设文档,基本也能够搞定了)

4.1.1 交互流程

简要的交互可用文字说明,复杂的交互建议使用流程图,交互图或其他图形进行说明

4.1.2 数据库设计

4.1.3 接口形式

Last updated