Architecture

Functional architecture of Rudder

Rudder contains several functionally independent components, illustrated in the diagram below:

  • Inventory database

  • Configuration policies database

  • Compliance database

  • Event logs database

  • User interface: Web and REST API

  • Node interface: inventory reception, state reports reception, configuration policy sharing

  • Relay server to centralize networks flows of an isolated network zone

Rudder functional architecture

Network architecture in client/server mode

The Rudder server listens for incoming connections from the agents installed on the nodes to manage, and communicates with them. The connection frequency from nodes to server is configurable, from several minutes to several hours.

The following diagram shows the network architecture of a Rudder installation:

Network architecture

You can see that relay server allow separating some network areas (for example a DMZ, a specific datacenter or remote site) using a local server for each area to distribute configuration policies and centralize agent reports and inventories.

Agents

Agents can be installed using a simple software package (.exe, .deb or .rpm).

The agent has a very small memory footprint (< 20MB), and is very fast applying configurations (complete runtime below 10 seconds for hundreds of configuration components). It requires at most 500MB of free disk space.

Rudder is currently supported on all major Linux distributions (Red Hat Enterprise Linux and derivatives like CentOS and Scientific Linux, Debian, Ubuntu, SUSE Linux Enterprise, etc.) for all supported versions, but also for older unsupported ones, Windows for desktops and servers (Server 2008 R2 or newer) and AIX (5.3 or newer). Experimental builds for Solaris, FreeBSD, Android and Mac OS X also exist, as well as a version for ARM architecture.


← Use cases Technical stack →