Comparing AutomateIt
AutomateIt provides a better way to solve real-world automation problems. It incorporates lessons learned from over a decade of experience using automation tools, including eight years with Cfengine. It addresses their shortcomings, adds features, and provides an entirely different architecture that can cope with the challenges encountered in the field.
Topics
Advantages
- Conditional: Commands are only run when needed. No need to write checks.
- Previewable: See what commands will be run, without executing them.
- Traceable: See what actions are taken in a concise form. No need to “echo” status.
- Consistent APIs: Commands have similar APIs and abstract implementation details. For example, all packages are installed using the same command, regardless of the underlying tool. No more quirky, tool-specific commands for common actions.
- Multi-platform: Automatically detects the platform (e.g., Ubuntu 7.10) and makes it easy to run code on specific platforms. No need to implement your own tricky OS detection logic.
- Roles: Group hosts by roles and elegantly manage hosts with different roles from a single recipe.
- Powerful: Provides a full-featured programming language to tackle the toughest tasks. No need invoke a bigger language for complex actions.
Disadvantages
- Dependencies: Need to install extra software.
Advantages
- Simpler setup: Create a project with one command. No need to setup daemons, open firewall ports, create certificates, or make arcane files and directories.
- Easier to understand: Any Unix user can understand basic recipes and write new ones using familiar conventions. No need to learn a language that needlessly rejects conventions and awkwardly reinvents the wheel.
- Faster development: Finish writing recipes faster and with less code. Develop and preview recipes individually or in an interactive shell. Can use a full-featured debugger for tricky problems. No boilerplate, unpredictable dependency graphs, cryptic hacks, obscured bugs, or lengthy test cycles.
- More powerful: Harness a full-featured programming language. No need to suffer with a language deliberately designed not to be used for programming.
- Greater accessibility: Easily access external programs and data from inside AutomateIt — or have Unix programs access AutomateIt and its data from outside. No need to put up with a black box you can’t get data into or out of.
- Fully extensible: Easily add functionality, provide platform-specific drivers or change existing behavior. Just drop files into your project’s “lib” directory and they’ll be loaded automatically. No need to the fork code or write elaborate hacks to run external commands and marshal data between them.
- Totally testable: Includes a self-test suite so you can verify that AutomateIt works. No more catastrophes because your tool vendor has no way to sanity check their tool.
Disadvantages
- Beta-quality: AutomateIt is a new product and, despite the comprehensive test suite, beta users must be willing to accept rough spots, work through problems and upgrade frequently until the production release ships.
- Limited drivers: AutomateIt provides more platform-specific drivers than Cfengine, but not as many as Puppet. More drivers will be written.
Evaluate AutomateIt if you:
- Want a better way to manage systems
- Are in active development
- Are not tied down to another tool
- Feel frustrated with an existing tool
- Can accept beta-quality software