Skip to content
Filip Vondrášek edited this page May 14, 2015 · 2 revisions

Architecture

DEF is divided into one server part and unlimited amount of Deploy Agents. The server part consists of a web interface (Web UI) and a Scheduler service.

Deploy Agents (Update Service)

Update Service is running on client computers, i.e. computers to which products are deployed. The Update Service accepts requests for package installations from the Scheduler Service. The service handles these requests, i.e. installs the packages on the machine on which it itself is running. Results of installations are written to a local file, these results are then read by the Scheduler service, which saves it to the database. Deploy agents themselves have no access to the database.

Server part (Web UI, Scheduler Service)

Web UI

Web UI is a web interface, which provides an easy way to control all important functions – starting with a simple overview and ending with installations (as described in specifications). All requests for installations are sent to the database, from where they are read by the associated server part – Scheduler service. The remaining requests (adding, editing and deleting various entities) are dispatched without the Scheduler service. These entities are, though, also read from the database.

Scheduler Service

Scheduler service dispatches requests to install packages read from the database at previously set date and time. It sends the packages to Deploy agents. Note that there typically are more Deploy agents and all are controlled from a single Web UI and a single Scheduler service. Scheduler service than periodically checks for installation status and writes that data into the database.

Communication description

Users – Web UI communication

Users use Web UI for reasons described in DEF specifications.

Web UI – Database communication

Web UI communicates with the database for these reasons:

  • Saving and reading products, environments, applications, installations and their mutual connections.
  • Saving and reading servers and their configurations.
  • Reading server logs.
  • Saving and reading users, positions, roles and their mutual connections.
  • Saving and reading requests for product deployments.

Scheduler Service – Database communication

Scheduler service communicates with the database for these reasons:

  • Reading deployment requests.
  • Writing server logs received from Deploy agents.

Scheduler Service – Deploy Agents communication

Scheduler service communicates with Deploy agents for these reasons:

  • Product deployments.
  • Periodic checks for deployment statuses.