{% extends "layout.html" %} {% block sidebar1 %}{% endblock %} {% block bsrelbar1 %}{% endblock %} {% block bsrelbar2 %}{% endblock %} {% block sidebarsearch %}{% endblock %} {% set title = 'About' %} {% block content %}

Rationale

As your data center grows, it gets increasingly harder to keep track of everything it contains. Paper invoices, spreadsheet files, wiki pages, etc. quickly get outdated and give you contradicting information. You can't afford checking everything in nature every time. You need a central place for all that information. This is what Ralph is for.

Components

At present, Ralph consists of three parts: the database of hardware installed in your data center, the discovery script that updates that database automatically, and the web application that lets you browse, search and manually update the database.

Database

The database is a relatively uninteresting part although it's the core of the application. It stores all the information that discovery collects, as well as everything that the users input. Among other things, the database stores for every device:

  • Its model and components
  • Serial numbers of the device and its components
  • Prices and costs
  • Position and size
  • Purchase date and warranty details
  • Ownership and role
  • Use of external resources such as load balancers and storage
  • Network addresses and subnetworks
  • Versions of important software installed

This database is also available to external applications through a RESTful API.

Discovery

In order to minimize manual labor required, as well as to make sure that the information about your assets is as close to reality as possible, Ralph has an application that scans your network, probing all devices and collecting information about them. This process can be distributed over several worker nodes, each with access to a different part of your data center.

The probing is done by a number of different plugins, one for every way that information can be collected, such as:

  • The API of your manageable servers
  • The facts collected by Puppet
  • Console access of your network equipment
  • SNMP
  • Configuration files of your installed programs
  • Custom checks written by users

User interface

The bulk of interaction with Ralph and its database is happening through the user interface implemented as a web application. This application lets you browse the hardware, correct and update the collected data, enter the pricing details for various device models and components, generate reports from the database and search for specific information. Some rarely performed changes have to be done through a web admin application directly in the database.

Future

An application like this has a lot of possible uses and can easily grow to fulfill additional needs. Development of Ralph is mainly driven by the needs of our company. The next few steps on our roadmap include:

  • Integration with a DNS server
  • Integration with Zabbix monitoring
  • A component for automating deployment of new hardware
  • Change management tools
{{ footer() }}
{% endblock %}