Target Architecture Diagram

Kuona takes a ‘big data’ approach to capturing and analyzing data. Current targets are build, continuous integration servers and version control system logs. The collected data is stored locally probably on the file-system with some sort of index files. Taking a copy means that the later stages of analysis and presentation can continue without collection.

The Analysis system reads the collected data and produces view ready data for the web application to consume.

The web app makes the view data available to the end user.

The dashboard shown in the diagram is not real and needs a lot of design. The analysis is expected to include judgments on the collected data. For example initial build feedback times of more that 10 minutes might be considered bad and would then score against the overall health of the system. Applying lean value stream analysis to the collected data provides some insight into the efficiency of the delivery system. A low efficiency value might indicate that more resources for the build systems is required.

Drilling a little deeper

Data Collection

Each build and version control systems exposes data in a different way. The collector is responsible for accommodating the communication differences but not in manipulating the returned data. This approach preserves the collected data and makes the analysis system responsible for interpretation. The collection system collects system meta data that provides hints to the analysis and allows analyzers to adapt their processing based on system version etc.

By separating collection and analysis adding a new analysis process or view data requirement does not require re-collection of data. Particularly important for long running systems where the original data source may no longer be available.

Data analysis

These processes read the collected data to produce data that is ready for viewing. This might include collecting time series data on the number of builds for each day of the week, month or year. Calculating the ratio between production and test code that has been added to the repository etc.

Initially the analysis will be part of the Kuona application. Longer term this may be extracted to allow customization and new analyses to be added.

Web application

The web application is responsible for combining the collected data with view templates. It is not currently clear at the moment if this combination should be performed server or client side.

Design principles - developer guidelines

  • Kuona is made available as a single Java JAR file that is capable of all the functions. This approach makes it easier for people to evaluate the application.

  • Kuona should be extensible and customisable to allow organizations to add their own logo and styling.

  • The application should minimize the number of external dependencies and any dependencies it does have should be actively managed under version control.