“`
StackStorm Overview
StackStorm, often referred to as “IFTTT for Ops,” is a robust platform designed for event-driven automation, integrating and automating operations across various services and tools. Here’s a detailed look at what the product does and its key features.
Core Functionality
StackStorm is built to automate common operational patterns by tying together existing infrastructure and application environments. It focuses on taking actions in response to events, facilitating tasks such as troubleshooting, auto-remediation, security responses, and complex deployments.
Key Components
Sensors
Sensors are Python plugins that integrate with external systems to receive or watch for events. When an event occurs, these sensors emit a StackStorm trigger into the system. This allows for both inbound and outbound integrations with various external systems.
Triggers
Triggers represent external events within the StackStorm system. They can be generic (e.g., timers, webhooks) or integration-specific (e.g., Sensu alerts, JIRA issue updates). New trigger types can be defined by writing custom sensor plugins.
Actions
Actions are outbound integrations that interact with physical infrastructure or applications. They can be generic (e.g., SSH, REST calls), integration-specific (e.g., OpenStack, Docker, Puppet), or custom actions. Actions can be invoked directly via CLI or API or used within rules and workflows. They are typically Python plugins or scripts with added metadata.
Rules
Rules map triggers to actions or workflows, applying matching criteria and mapping trigger payloads to action inputs. This ensures that the right actions are taken in response to specific events.
Workflows
Workflows combine multiple actions into complex sequences, defining the order, transition conditions, and data passing between actions. These workflows can be invoked manually or triggered by rules, making multi-step automations manageable.
Packs
Packs are units of content deployment that simplify the management and sharing of StackStorm pluggable content. They group integrations (triggers and actions) and automations (rules and workflows), making it easy to share and use community-created content through the StackStorm Exchange or GitHub.
Additional Features
Audits and Logging
StackStorm maintains a detailed audit trail of action executions, whether manual or automated. This includes full details of the triggering context and execution results, which can be integrated with external logging and analytical tools like LogStash, Splunk, statsd, and syslog.
Runtime Context and Functions
During workflow execution, StackStorm provides access to runtime information through various functions and context attributes. For example, the `st2kv` function allows querying the StackStorm datastore, and the `task` function provides access to task execution records. This enables dynamic and context-aware automation.
Modular Architecture and Scalability
StackStorm has a modular architecture with loosely coupled service components that communicate over a message bus. This design allows for horizontal scaling, enabling automation at scale. The platform includes a Web UI, a CLI client, and a full REST API, along with Python client bindings for developer convenience.
User Interaction and Community
StackStorm supports end-user interaction through ChatOps, allowing users to interact with the system via chat clients. It also includes enterprise features like LDAP integration and a workflow authoring web tool called Flow. The platform is under active development and encourages community engagement, feedback, and contributions.
In summary, StackStorm is a powerful automation platform that integrates and automates operations by leveraging sensors, triggers, actions, rules, and workflows. Its modular architecture, extensive logging capabilities, and community-driven development make it a versatile tool for automating complex operational tasks.
“`