I wasn’t able to go to the DevOps in DC Meetup for November. Apparently there was a good session delivered by a guy named Ric Lister from Brewseter.com about how they use Ruby to test their applications. Their main application appears to be an IOs app that acts like a contact aggregation tool. It looks like he talked mainly about two tools: Front-End Loader and Auger.
Front End Loader is a Ruby DSL for declaring load tests. It works in the spirit of tools like JMeter, by simulating a number of users performing a scripted set of actions and displaying metrics about response times and error rates as the requests are performed. Unlike GUI tools like JMeter, however, front_end_loader makes it very simple to declare your requests and to pass data between requests, by looking at the responses to gather data.
The Auger library implements a ruby DSL for describing tests to be run against remote applications on multiple servers. The gem includes ‘aug’, a multi-process command-line client.
The primary goal of Auger is test-driven operations: unit testing for application admins. The library can also be used as a framework for implmenting automated tests.
These are the sorts of questions auger can answer:
- is port :80 on my application webservers open? does /index.html contain a response tag that we know should be served from a given backend data source?
- is redis running? is it configured as a master? a slave?
- is elasticsearch responding on all my hosts it should be? what’s the cluster state? do I have the number of data nodes responding that we’re supposed to have?
Clearly a lot of this information includes things you should be graphing. What auger wants to do is give you a quick overview of current status: green == good, red == ruh roh!