There are four different entities identified in the TICS architecture:
Web Server: The results that are stored in the TICS database are shown via the TICS viewer. This viewer is installed on a Web Server. This server also contains all TICS executables, code checkers and the central configuration. The reason to store all these items centrally is so the Web Server acts as an artifact repository, making it easy to deploy and upgrade artifacts to a host of build clients. This is especially useful for environments with a lot of build nodes and client machines.
Database Server: The Database Server contains the Database Management System and all TICS databases.
Build Servers: Build servers have access to the latest software archive and are capable of building the sources. Usually this is (a copy of) a machine that performs the nightly build. The build servers invoke TICSQServer to obtain analysis data and optionally retrieve quality gate results. The analysis of a software archive can be distributed over several distinct build servers - each build server analyzing a different metric.
Clients: Clients are developer machines which have access to a copy of the software archive and are capable of building the sources. Clients invoke TICS Client to retrieve quality data, without writing to the TICS databases. TICS Client can also be used to get quality gate results.
As of version 2021.3, the preferred and default deployment architecture for deploying TICS was changed to the one described above. The old deployment architecture, now called legacy architecture, is still supported, but will be deprecated in the future. In the legacy architecture, the configuration and artifacts are hosted on a separate File Server, whereas in the new architecture, these are hosted and controlled by the TICS Viewer.
TICS
environment variable:
There are five different entities that play a role within the legacy TICS architecture model:
File Server: This server contains all TICS executables, code checkers and the central configuration. The reason to store all these items centrally is for ease of maintenance. The File Server acts as a file share, making it easy to install and upgrade artifacts in a central location. This is especially useful for environments with a lot of build nodes and client machines.
Web Server: The results that are stored in the TICS database are shown via the TICS viewer. This viewer is installed on a Web Server.
Database Server: The Database Server contains the Database Management System and all TICS databases.
Build Servers: Build servers have access to the latest software archive and are capable of building the sources. Usually this is (a copy of) a machine that performs the nightly build. The build servers invoke TICSQServer to obtain analysis data and optionally retrieve quality gate results. The analysis of a software archive can be distributed over several distinct build servers - each build server analyzing a different metric.
Clients: Clients are developer machines which have access to a copy of the software archive and are capable of building the sources. Clients invoke TICS Client to retrieve quality data, without writing to the TICS databases. TICS Client can also be used to get quality gate results.
It is possible to install the logical servers mentioned above on one or more physical machines. All logical servers can reside on a single machine or each logical server can run on its own separate machine. Mixed combinations are also possible, where multiple servers run on a single machine, and the remaining other servers each on a separate machine. For example, the file- and webserver may run on the same machine, while the database runs on a separate machine and the build server is yet another machine. The main motivation to decide how many physical machines are going to be used depends on the size of the organization/project. Organizations with less than 100 software engineers can typically do with one machine. It is possible to start installing everything on one machine and split up at a later stage.
When installing TICS, run the specific steps and installers on the physical machine for which the software is to be installed. The different servers are linked together by configuring them.
The examples given in this installation guide assume the simplest configuration, namely, where the File Server, Database Server, Web Server and Build Server are all located on the same machine. This is reflected in the destination folders suggested for the different components during the installation process.