There's an old DevOps story of a developer who, when asked by a member of the ops team why an app isn't running on the live servers, replies "It's just fine on my laptop". To which the only reply is "Right then, hand it over, we're putting your laptop into production!" It's always been a problem ensuring that development and production systems have the same configuration — especially when you're deploying apps and services to automated cloud platforms.
ScriptRock's GuardRail is designed to quickly pinpoint differences in configurations on servers and desktops, comparing states between systems and over time. With GuardRail you can see just what has changed, helping simplify diagnostics — and reducing downtime. If that developer and administrator had been using GuardRail, they'd have been able to compare the laptop and the failed server to see that, perhaps, a key configuration file had been changed, or that the developer had been using a different version of an application or service, and then make the requisite change without fighting over hardware.
One of a new generation of enterprise startups, ScriptRock focuses on pain points that new development and management methodologies are exposing. Effective monitoring is key to a successful DevOps implementation, as it gives you a source of truth that can be shared between everyone involved: developers, operations staff, and system administrators. GuardRail's graphical dashboard can show you what's changed from day-to-day — across a range of different operating system platforms, and even on desktop devices.
Running as a cloud service, GuardRail uses local agents or SSH connections to capture configuration information from a server. It tracks application version numbers, running services and processes, as well as configuration files, with the results displayed as a circular chart. You can compare different systems, as well as current state versus earlier scans — with the option of showing only the features that have changed.
Scanned systems are grouped into environments, so you can separate systems by role, or by function. Need to monitor just web servers? Just group them into an environment. You can do the same for all the systems that make up your ecommerce process, or that host an ERP system. Responsibility for monitoring environments can be given to users, with only administrators allowed to add new systems and create environments.
Monitoring changes is only part of the GuardRail toolset. Policies can be created from scans, so that you can define specific tests for an application. GuardRail provides a basic framework for designing tests, using a selection of predefined test types — for example, showing that a service is running, or that a specific directory exists. Test scripts can be added to policies and shared with other users, along with descriptions of possible remediations. Some script templates are extensible, letting you create your own custom templates.
Tests are run as part of scheduled system scans, or can be manually triggered. In practice, most scans need to be run daily, although you can choose to run a scan more often when you're bedding in a new system. If a test fails, you can email results to the relevant people, ensuring that problems are fixed as quickly as possible.
One useful feature of GuardRail is the ability to take any recorded configuration and save it out for use with open configuration deployment tools like Chef, or through automation tools like Microsoft's Desired State Configuration. Once you've saved a configuration as a policy, you can export it to your chosen automation package, ready to keep your systems running.
Pricing is competitive. Basic scans for up to five servers are free, with additional servers costing $3 per node. More advanced functionality is avaialble in ScriptRock's Plus and Enterprise plans, which let you store scan data for longer and add role-based access control.
Developers working with agile methodologies are used to a test-first way of working, with unit tests ensuring that everything works as intended. As operations become more flexible, and we move to continuous delivery models, ops and DevOps teams need to take a similar approach. That's where GuardRail comes into its own, giving you the tools to build and construct infrastructure level unit tests — and see the results visually, making it easy to quickly drill into the actual problem and get your services running.