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:

Last updated