关于
StackStorm是一个用于跨服务和工具进行集成和自动化的平台。它将您现有的基础结构和应用程序环境联系在一起,这样您就可以更容易地自动化该环境。它特别关注在事件发生后采取的行动。
StackStorm帮助自动化常见的操作模式。一些例子:
- 方便的故障诊断——触发Nagios、senu、New Relic和其他监控系统捕获的系统故障,对物理节点、OpenStack或Amazon实例和应用程序组件进行一系列诊断检查,并将结果发布到共享的通信上下文,如HipChat或JIRA。
- 自动修复——识别和验证OpenStack计算节点上的硬件故障,适当地疏散实例,并向管理员发送关于潜在停机时间的电子邮件,但如果出现任何问题——冻结工作流并调用PagerDuty唤醒人工。
- 持续部署——使用Jenkins构建和测试,提供一个新的AWS集群,使用负载均衡器打开一些流量,并根据NewRelic的应用程序性能数据进行前滚或后滚。
StackStorm帮助您将这些和其他操作模式组合为规则和工作流或操作。这些规则和工作流(StackStorm平台内的内容)被存储为代码,这意味着它们支持与现在用于代码开发的协作方法相同的方法。它们可以与更广泛的开源社区共享,例如通过StackStorm社区。
工作原理
StackStorm通过可扩展的包含传感器和操作的适配器集插入到环境中。
- 传感器是Python插件,用于接收或监视事件的入站或出站集成。当来自外部系统的事件发生并由传感器处理时,将向系统发出StackStorm触发器。
- 触发器是外部事件的StackStorm表示。有通用触发器(如计时器、网络挂钩)和集成触发器(如senu alert、JIRA issue updated)。可以通过编写传感器插件来定义新的触发器类型。
- 操作是StackStorm出站集成。有通用操作(ssh、REST调用)、集成(OpenStack、Docker、Puppet)或自定义操作。操作可以是Python插件,也可以是任何脚本,都可以通过添加几行元数据在StackStorm中使用。用户可以通过CLI或API直接调用操作,或者作为规则和工作流的一部分使用和调用操作。
- 规则将触发器映射到操作(或工作流),应用匹配标准并将触发器有效负载映射到操作输入。
- 工作流将操作缝在一起形成“超级操作”,定义顺序、转换条件并传递数据。大多数自动化操作不止一步,因此需要多个操作。工作流与“原子”操作一样,可以在操作库中使用,可以手动调用或由规则触发。
- 包是内容部署的单元。它们通过分组集成(触发器和操作)和自动化(规则和工作流)简化了StackStorm可插内容的管理和共享。越来越多的包可用于StackStorm交换。用户可以创建自己的包,在Github上共享它们,或者提交到StackStorm Exchange。
- 动作执行的审计跟踪,手动或自动,记录和存储触发上下文和执行结果的完整细节。它还被捕获在审计日志中,以便与外部日志和分析工具集成:LogStash、Splunk、statsd、syslog。
StackStorm是一个具有模块化架构的服务。它由通过消息总线通信的松散耦合的服务组件组成,并水平扩展以按比例交付自动化。StackStorm有一个Web UI,一个CLI客户端,当然还有一个完整的REST API。我们还提供了Python客户端绑定,以简化开发人员的工作。
StackStorm是一个新产品,正在积极开发中。我们非常渴望参与社区,获得反馈并完善我们的方向。
原文:https://docs.stackstorm.com/overview.html
本文:http://jiagoushi.pro/node/835