// design

Infrastructure inventory and CMDB portal

An internal web portal with visibility over the Linux VM fleet: inventory, application health, certificate expiry, software versions and patch status. It complements the existing monitoring stack and syncs with ServiceNow.

Role
Engineer
Status
In production

Python · FastAPI · Jinja2 · SQLite · ServiceNow

1,000+ VMs
Scope

Problem

A fleet of 1,000+ Linux VMs needs one place to see inventory, application health, certificate expiry, software versions and patch status.

Architecture

EXTERNAL

Linux VM fleet

1,000+ VMs

SERVICE

Data collection

SSH and rsync

SERVICE

Health checks

Every 30 min, with retries

DATASTORE

SQLite

Inventory and check history

SERVICE

Inventory portal

FastAPI and Jinja2

EXTERNAL

ServiceNow

CMDB sync

SERVICE

AI dependency mapping

In progress

DATASTORE

Service definitions

YAML

SERVICE

Architecture diagrams

Rendered from YAML

Infrastructure inventory and CMDB portal (illustrative)Drag nodes to explore · Illustrative and simplified. Not a real topology.
Dependencies (text)
  • collector -> fleet [SSH]
  • health -> fleet [HTTP and service registry]
  • collector -> db [writes inventory]
  • health -> db [HEALTHY, UNHEALTHY, STALE]
  • portal -> db [reads]
  • portal -> servicenow [syncs]
  • mapper -> portal [reads context]
  • mapper -> depyaml [generates]
  • renderer -> depyaml [renders]

Python and FastAPI with server-rendered pages and SQLite, collecting data over SSH.

What it does

  • Health checks every 30 minutes on application hosts, with retries and clear HEALTHY, UNHEALTHY and STALE states.
  • Views for inventory, certificates, patch status and end-of-life hosts, expected versus open ports, software inventory and a service map.
  • An admin area to refresh certificates on demand.
  • ServiceNow synchronization.
  • In progress: AI-assisted application dependency mapping that generates YAML service definitions and renders them as architecture diagrams automatically.

Decisions

  • Complement the monitoring stack, do not replace it.
  • YAML as the contract for dependencies: readable, reviewable and versioned.
  • Safe by default. Configuration through environment variables and a dry-run mode for the health batch.

Result

  • Covers 1,000+ VMs.
  • Extended during my co-op and rebuilt as a full-time engineer.

← Selected work