Running Retrospective in production environments is safe!

We have recently been asked what the runtime requirements of Retrospective are and whether it is safe to use the tool in production environment.

A short elaboration on this topic:

Retrospective uses an SFTP client to browse the file system. Then it uses an SSH client to execute the remote commands. The invoked commands are: head, tail, grep, zgrep, cat, zcat, bzcat, tar, unzip, awk. No additional tools need to be installed on the servers in order to use Retrospective - the aforementioned commands are the standard tools that are normally preinstalled on an average Linux distribution.

When it comes to the access rights:

Retrospective needs the read access to the files and folders that it wants to access, similar to any other SSH client. Retrospective never modifies the filesystem that it is accessing while performing search / tail.

When it comes to security:

Retrospective uses a secure SSH protocol to connect to the hosts so that the password cannot be intercepted. Retrospective never uploads any information: neither files nor log entries from the servers that it is accessing. Retrospective operates in a fully ad-hoc mode without any caching and the person operating the tool is the only party that receives information from the servers which are accessed by Retrospective.

When it comes to the load:

One instance of retrospective invokes up to 10 simultaneous commands on a server (usually it's never more than 6 or 7, depending on what you are doing). It may also open up to 10 simultaneous connections. The mechanisms use a saturation / adaptation algorithm - if you are invoking one search over one file - most likely it will open 1 connection. If you are searching over 1000 files on a single host - it's highly probable that it will open up to 10 connections (but if the searches are really short - it may open only 2-3 connections).

When it comes to the local machine where Retrospective is installed:

On the local machine where retrospective is installed there are no commands that are invoked - Retrospective uses what is available in a standard Java distribution. A Java Runtime Environment (JRE) version 6 is required to run Retrospective. As of Retrospective 3.3.0 you will need JRE 7.

To use Retrospective it is not necessary to install Java on the servers that are accessed remotely.