Antics is a chaos engineering tool. It kills and freezes processes, eats disk, thrashes I/O, pegs CPU, hogs memory, and exhausts file descriptors, so you find out how your system fails before your users do. And then it cleans up after itself.
Antics is a chaos engineering tool specifically designed for indie developers, allowing them to intentionally disrupt their own applications and systems in a controlled environment. It provides an accessible, single-binary solution that requires no complex setup or extensive infrastructure, making it easier for developers to understand how their systems handle failures before they affect end users.
Overview
The core premise of Antics is simple: intentionally create failure scenarios on local machines to test system resilience. By simulating common failures such as freezing processes, consuming disk space, or exhausting CPU and memory resources, developers can proactively identify vulnerabilities in their systems. After executing these tests, Antics ensures that all changes are reversed, restoring the system to its original state, which eliminates the risk of lingering effects from these tests.
Key Features
- Local-First Approach: Antics is designed to run on individual developer machines without the need for complex orchestration tools or large budgets.
- Ease of Use: The tool can be set up in just a few minutes, allowing developers to quickly integrate chaos testing into their workflow.
- Custom Scenarios: Users can create specific "antics" — scenarios consisting of various disruptive commands, such as killing processes or filling up disk space.
Example Usage
Below is a brief showcase of how Antics can be utilized:
# Check available antics
antics list
# Create a new scenario template
antics init
# Preview what the scenario will do without any changes
antics run starter.antics --dry-run
# Execute the scenario and observe the chaos, followed by automatic cleanup
antics run starter.antics --hold 30s
Built-In Antics
Antics supports several built-in commands, referred to as "antics," that can be stacked into scenarios:
| Antic | Description | Parameters |
|---|---|---|
kill | Kills processes matching specified names. | match, every (optional) |
pause | Freezes matching processes. | match |
diskfill | Consumes disk space by writing junk files. | megabytes, dir (optional) |
iohog | Thrashes disk I/O to test bandwidth limitations. | megabytes, dir (optional) |
cpuhog | Pecks CPU cores with busy loops. | cores |
memhog | Allocates and holds memory. | megabytes |
fdleak | Keeps file descriptors open to test limits. | count |
Cleanup and Safety
Antics implements robust cleanup mechanisms. It automatically restores any changes made during the chaos testing phase, even if the process is interrupted. A unique recovery journal allows the tool to rectify state changes across unexpected reboots or crashes, ensuring a safe testing environment.
Platform Compatibility
Antics is compatible with macOS and Linux, having been tested across various environments to ensure a consistent experience. The network-specific antics (latency, blackhole) require Linux and elevated privileges.
Antics empowers indie developers to explore the weaknesses of their systems confidently, providing a simpler pathway to implementing chaos engineering practices.
No comments yet.
Sign in to be the first to comment.