Ho un progetto che implica la raccolta di dati di configurazione da server Windows nel nostro (molto grande) parco server. Il mio manager desidera che raccolga oltre 150 articoli di dati in tutte le aree di configurazione, inclusi dati di configurazione della rete, dischi, valori di registro, versione del BIOS, versioni di dll. Il team di supporto del server attualmente usa un brutto script vbScript che è massiccio, disordinato e che è stato distribuito e cresciuto in modo organico nel tempo. Lo script è attualmente utilizzato per raccogliere i dati e produrre un report HTML piatto di base con una colonna per ciascuno degli oltre 150 articoli per i quali raccoglie i dati. Il mio compito è trasformarlo in una soluzione software adeguata con nuovi campanelli, un sito Web, rapporti, ecc.
L'idea è che un amministratore di sistema andrà su un sito intranet, inserirà il nome del server e preme il pulsante Vai, la soluzione raccoglie i dati e li inserisce nel DB per i rapporti successivi.
Il mio manager vuole che la soluzione raccolga i dati, alcuni dei quali fanno riferimento a valori desiderati noti (es. driver della scheda RAID per i server modello ABC è alla v1.2.5.1) per vedere se sono corretti o aggiornati, memorizzarli in un database SQL e quindi utilizzare il sito Web front-end per la produzione di report. Nei rapporti, vuole che sia in grado di confrontare due dataset; ad esempio, uno per il server ABC123 e uno per il server DEF987 in un rapporto, evidenziando eventuali differenze tra i due.
Diventa caotico molto rapidamente poiché alcuni dati verranno raccolti su alcuni server ma non su altri (i controller di dominio non avranno dati raccolti sullo stato di esecuzione dei servizi di scambio). Ci sono molti oggetti vari che non si adattano a un'area del modello di dati e non hanno una casa ... è un disastro.
Sto bene con la raccolta dei dati (usando .Net), ma non riesco a capire dove il posto migliore sia fare cose come memorizzare e cercare / confrontare gli articoli con valori noti (XML, DB ?). Dovrei farlo come parte della fase di raccolta dei dati e poi spingerlo nel DB. O dovrei sposare tutto come parte dei dati dei rapporti?
Vado con uno schema di data warehouse (de-normalizzato) per il DB. Ci saranno probabilmente circa 20 tabelle da cui i dati dovranno essere estratti, quindi non ho idea di quale sia il modo migliore per confrontare il set di dati da una raccolta di dati del server, con un altro, con un insieme così grande di campi da confrontare.
Cosa pensate che le mie migliori opzioni siano per avvicinarsi a questo progetto e all'architettura della soluzione?