LGTM Enterprise 1.23.1

System architecture overview

The machines used in a deployment of LGTM Enterprise can be classified into two types:

  • Work pool machines
    The machines in the work pool host one or more LGTM workers (processes that build code and generate analysis data). For more information, see Work pool.
  • Control pool machines
    The machines in the control pool:
    • Store the persistent state of the LGTM cluster
    • Coordinate the work of the work pool, process and store its results
    • Host the web interface to the cluster

    For more information, see Control pool.

Overview of data flow:

The arrow directions on the diagram give an indication of data flow between system components.

Basic architecture

For a simple deployment of LGTM Enterprise you might have just one control pool machine and perhaps five work pool machines:

Alternatively, the web interface is commonly hosted on a separate machine from the other control pool services, which are all hosted on a "controller" machine:

The other services in the control pool can also be placed on separate machines. For more information, and details about the ports that must be externally reachable if services are placed on separate machines, see Network connections.

Cluster configuration

You configure the topology of your LGTM Enterprise instance in a cluster configuration file. You then deploy this configuration to the machines specified in the file.

The following extract from a cluster configuration file shows the topology described by the diagram above: one controller machine, one web host machine, and five worker host machines:

...
coordinator:
  hostname: "lgtm-controller"
database:
  hostname: "lgtm-controller"
file_storage:
  hostname: "lgtm-controller"
queue:
  hostname: "lgtm-controller"
search:
  hostname: "lgtm-controller"
task_workers:
  hosts:
  - hostname: "lgtm-controller"
web:
  hosts:
  - hostname: "lgtm-web"
  ...
workers:
  hosts:
  - hostname: "lgtm-workerhost1"
    ...
  - hostname: "lgtm-workerhost2"
    ...
  - hostname: "lgtm-workerhost3"
    ... 
  - hostname: "lgtm-workerhost4"
    ... 
  - hostname: "lgtm-workerhost5"
    ... 

Related topicsRelated topics