>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Rust

Come Scanopy Ti Salva dal Disegnare Diagrammi di Rete a Mano

Scanopy Logo

Chiunque abbia mai provato a mantenere una mappa aggiornata di una rete aziendale o di un server domestico conosce questo dolore. Ti siedi con draw.io o Visio, passi mezza giornata a disporre ordinatamente piccoli riquadri per switch, server e connessioni. Passa una settimana, il sysadmin cambia un paio di cavi patch, l'ingegnere DevOps avvia un nuovo stack in Docker, e il tuo diagramma disegnato a mano diventa un inutile documento storico.

Lo stato di Terraform o Ansible non ti salva nemmeno sempre. Il codice dell'infrastruttura mostra solo ciò che è descritto nella pipeline, ignorando le modifiche manuali sugli switch o le VM temporaneamente avviate.

Recentemente mi sono imbattuto nel progetto Scanopy. Hanno costruito uno strumento che gestisce la scansione regolare della rete e genera automaticamente diagrammi interattivi a più livelli di astrazione.

Vista L2

L2 (Fisico)
Ogni switch, ogni porta, ogni collegamento.

Vista L3

L3 (Logico)
Subnet e come gli host si connettono tra di esse.

Vista Workloads

Workload
Dal bare metal agli hypervisor ai container.

Vista Applicazioni

Applicazioni
Servizi e le loro dipendenze, raggruppati per applicazione.

Come funziona internamente

Invece di installare agenti pesanti su ogni macchina virtuale, il progetto utilizza un leggero scanner daemon. Il daemon interroga i dispositivi di rete tramite SNMP, analizza le tabelle LLDP e ARP e scansiona le porte aperte. Quando necessario, lo scanner si connette direttamente al socket Docker per inventariare i container.

Sotto il cofano, Scanopy è scritto in Rust. Questo offre prestazioni veloci dello scanner e del server senza appesantire il consumo di memoria.

Dopo ogni esecuzione dello scanner, viene costruito un modello dell'infrastruttura, da cui il sistema genera quattro sezioni separate:

  1. Livello fisico L2. Include switch, collegamenti fisici e porte di connessione di apparecchiature specifiche.
  2. Livello logico L3. Mostra routing, subnet e distribuzione degli indirizzi IP tra gli host.
  3. Workload. Mostra la catena dai server bare metal e hypervisor fino alle macchine virtuali e ai singoli container.
  4. Applicazioni. Raggruppa i servizi e costruisce un grafico delle dipendenze tra database, server web e worker in background.

Il progetto include già oltre duecento firme di servizi predefinite. Lo scanner riconosce immediatamente PostgreSQL, Redis, Nginx, Kubernetes e molti altri software senza necessità di etichettatura manuale aggiuntiva.

Cosa può fare lo scanner

Il principale vantaggio di questo approccio è l'autonomia. Imposti una pianificazione e lo scanner aggiorna regolarmente la topologia in background.

Ecco le funzionalità pratiche:

  • Raccolta dati distribuita. Per più sedi o VLAN isolate, puoi distribuire daemon separati che inviano i dati a un server centrale.
  • Esportazione diagrammi. I diagrammi finiti possono essere esportati come SVG, incorporati nella documentazione come codice Mermaid, o caricati direttamente su Confluence.
  • Interfaccia web interattiva. Puoi ingrandire la mappa, cliccare sui singoli nodi, visualizzare le porte attive e le connessioni vicine.
  • Modello di accesso basato sui ruoli. C'è una separazione integrata tra organizzazioni e utenti, utile per aziende di servizi e team di outsourcing.

Avvio rapido in laboratorio

Il modo più semplice per provare il sistema è avviare i container tramite Docker Compose su un host con accesso alla subnet richiesta.

curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d

Dopo l'avvio, l'interfaccia web è in ascolto sulla porta 60072. Vai su http://localhost:60072, crea un account amministratore locale e avvia il primo ciclo di scansione.

Se esegui un homelab su Proxmox VE, gli autori hanno uno script pronto per il deployment in un container LXC. Scanopy è disponibile anche nel catalogo app di Unraid.

Se non vuoi installare in locale, i creatori hanno una sandbox demo pubblica su demo.scanopy.net con dati di test già popolati.

Per chi il progetto farà risparmiare tempo

Per gli ingegneri delle operazioni e i team DevOps, Scanopy affronta la domanda eterna di "dove va questo traffico e dove gira questo container". Vedi i binding dell'hardware fisico e logico senza dover raccogliere manualmente le tracce.

Per gli ingegneri di rete, l'utility aiuta a mantenere una mappa degli switch aggiornata senza ore noiose negli editor grafici. Quando esegui la migrazione di un servizio o cambi le porte degli switch, la topologia si aggiorna automaticamente con la scansione successiva.

Per i proprietari di server domestici e homelab, lo strumento offre un modo per organizzare il proliferare dei tuoi servizi senza spendere i tuoi fine settimana nella documentazione manuale.

Riepilogo

Scanopy risolve il problema classico della documentazione che diventa obsoleta in modo diretto e semplice. I diagrammi vengono generati basandosi sullo stato effettivo della rete, non sulla comprensione dello sviluppatore di sei mesi fa.

Il codice è distribuito sotto la licenza AGPL-3.0 per l'auto-hosting. Se hai rimandato l'aggiornamento delle mappe della tua infrastruttura o sei stanco di ridisegnare i diagrammi dopo ogni release, distribuisci il daemon in una rete di test e guarda i risultati della prima esecuzione.

Progetti correlati