testgrinder Architecture
An overview of SMPC testgrinder architecture
testgrinder service will be discontinued on January 31, 2025
testgrinder SMPC was discontinued as of February 1, 2024
Major elements of a SMPC testgrinder deployment include:
tg-app servers - one or more testgrinder application servers
tg-bot servers - script runners dynamically launched by tg-app
MongoDB database
two S3 buckets
SMTP server for sending emails out
(optional) papertrail.com integration
(optional) bugsnag.com integration
Technology
testgrinder is a Ruby on Rails application written in the Ruby programming language. It consists of two major components - the application server tg-app, and the script runner tg-bot, both built on top of Ubuntu linux. SMPC testgrinder consists of two AMIs (tg-app and tg-bot) on the AWS Marketplace. testgrinder uses MongoDB as its database.
tg-app servers
At the core of testgrinder deployment is one or more testgrinder application servers (tg-apps). They are responsible for interacting with the users and managing the script runners (tg-bots).
If you are deploying testgrinder for evaluation, one tg-app server is adequate. For production, a more robust deployment utilizing at least two tg-app severs managed by an Auto Scaling Group is advisable.
tg-bot servers
When a run is kicked off in testgrinder, tg-app will launch (and later terminate) one or more tg-bot servers to handle scenario execution.
Monit
Both tg-app and tg-bot are equipped with monit for monitoring their health and attempting repair if need be. You may choose to receive email notifications whenever monit detects an abnormal situation or takes an action to remediate it.
MongoDB database
testgrinder uses MongoDB as its database. tg-app comes with a MongoDB database preinstalled, which is adequate for testgrinder evaluation, but not advisable for production use. For production use, either provide your own instance of MongoDB, or sign up for one at mongodb.com.
S3 buckets
You will need to provide two S3 buckets for testgrinder. One for storing screenshots and videos generated during runs, and the other for storing testgrinder project user files.
SMTP server
You will need to provide testgrinder with an SMTP server which it will use for sending out emails. It can be Amazon SES (Simple Email Service).
Integration with optional external services
You may choose to integrate your deployment of testgrinder with the following optional services:
papertrail.com - for aggregation of logs generated by tg-app and tg-bot instances
bugsnag.com - for bug reports
Last updated