Passa al contenuto principale

Integrazione ServiceNow

L'integrazione ServiceNow (Admin > Impostazioni > ServiceNow) abilita la sincronizzazione bidirezionale tra Canopy e il vostro ServiceNow CMDB. Questa guida copre tutto, dalla configurazione iniziale alle ricette avanzate e alle best practice operative.

Integrazione ServiceNow

Perché integrare ServiceNow con Canopy?

ServiceNow CMDB e gli strumenti di Enterprise Architecture servono scopi diversi ma complementari:

ServiceNow CMDBCanopy
FocusOperazioni IT — cosa è in esecuzione, chi ne è responsabile, quali incidenti si sono verificatiPianificazione strategica — come dovrebbe apparire il panorama tra 3 anni?
Gestito daOperazioni IT, Asset ManagementTeam EA, Business Architect
Punto di forzaDiscovery automatizzata, workflow ITSM, accuratezza operativaContesto aziendale, mappatura delle capability, pianificazione del ciclo di vita, valutazioni
Dati tipiciHostname, IP, stato di installazione, gruppi di assegnazione, contrattiCriticità aziendale, idoneità funzionale, debito tecnico, roadmap strategica

Canopy è il sistema di riferimento per il vostro panorama architetturale — nomi, descrizioni, piani del ciclo di vita, valutazioni e contesto aziendale risiedono tutti qui. ServiceNow integra Canopy con metadati operativi e tecnici (hostname, IP, dati SLA, stato di installazione) che provengono dalla discovery automatizzata e dai workflow ITSM. L'integrazione mantiene questi due sistemi connessi rispettando il fatto che Canopy è il sistema principale.

Cosa potete fare

  • Pull sync — Alimentate Canopy con CI da ServiceNow, poi assumetene la proprietà. I pull successivi aggiornano solo i campi operativi (IP, stato, SLA) che SNOW scopre automaticamente
  • Push sync — Esportate i dati curati dall'EA verso ServiceNow (nomi, descrizioni, valutazioni, piani del ciclo di vita) così i team ITSM vedono il contesto EA
  • Sincronizzazione bidirezionale — Canopy guida la maggior parte dei campi; SNOW guida un piccolo insieme di campi operativi/tecnici. Entrambi i sistemi restano sincronizzati
  • Mappatura delle identità — Tracciamento persistente dei riferimenti incrociati (sys_id <-> card UUID) che assicura che i record rimangano collegati tra le sincronizzazioni

Architettura dell'integrazione

+------------------+ HTTPS / Table API +------------------+
| Canopy | <--------------------------------> | ServiceNow |
| | | |
| Cards | Pull: SNOW CIs -> Turbo Cards | CMDB CIs |
| (Application, | Push: Turbo Cards -> SNOW CIs | (cmdb_ci_appl, |
| ITComponent, | | cmdb_ci_server, |
| Provider, ...) | Identity Map tracks sys_id &lt;-> UUID | core_company) |
+------------------+ +------------------+

L'integrazione utilizza la Table API di ServiceNow su HTTPS. Le credenziali sono crittografate a riposo utilizzando Fernet (AES-128-CBC) derivato dal vostro SECRET_KEY. Tutte le operazioni di sincronizzazione vengono registrate come eventi con source: "servicenow_sync" per un registro di audit completo.


Pianificazione dell'integrazione

Prima di configurare qualsiasi cosa, rispondete a queste domande:

1. Quali tipi di card necessitano dati da ServiceNow?

Iniziate in piccolo. I punti di integrazione più comuni sono:

PrioritàTipo CanopySorgente ServiceNowPerché
AltaApplicationcmdb_ci_business_appLe applicazioni sono il nucleo dell'EA — il CMDB ha nomi, proprietari e stati autorevoli
AltaITComponent (Software)cmdb_ci_spkgI prodotti software alimentano il tracciamento EOL e il tech radar
MediaITComponent (Hardware)cmdb_ci_serverPanorama dei server per la mappatura dell'infrastruttura
MediaProvidercore_companyRegistro dei fornitori per la gestione dei costi e delle relazioni
BassaInterfacecmdb_ci_endpointEndpoint di integrazione (spesso gestiti manualmente nell'EA)
BassaDataObjectcmdb_ci_databaseIstanze di database

2. Quale sistema è la fonte di verità per ogni campo?

Questa è la decisione più importante. L'impostazione predefinita dovrebbe essere Canopy guida — lo strumento EA è il sistema di riferimento per il vostro panorama architetturale. ServiceNow dovrebbe guidare solo per un insieme ristretto di campi operativi e tecnici che provengono dalla discovery automatizzata o dai workflow ITSM. Tutto il resto — nomi, descrizioni, valutazioni, pianificazione del ciclo di vita, costi — è gestito e curato dal team EA in Canopy.

Modello consigliato — "Canopy guida, SNOW integra":

Tipo di campoFonte di veritàPerché
Nomi e descrizioniTurbo guidaIl team EA cura nomi autorevoli e scrive descrizioni strategiche; i nomi CMDB possono essere disordinati o auto-generati
Criticità aziendaleTurbo guidaValutazione strategica del team EA — non sono dati operativi
Idoneità funzionale/tecnicaTurbo guidaI punteggi del modello TIME sono una competenza EA
Ciclo di vita (tutte le fasi)Turbo guidaPlan, phaseIn, active, phaseOut, endOfLife — tutti dati di pianificazione EA
Dati sui costiTurbo guidaL'EA traccia il costo totale di proprietà; il CMDB può avere voci di contratto ma l'EA possiede la vista consolidata
Tipo di hosting, categoriaTurbo guidaL'EA classifica le applicazioni per modello di hosting per l'analisi strategica
Metadati tecniciSNOW guidaIP, versioni OS, hostname, numeri di serie — dati di discovery automatizzata che l'EA non mantiene
SLA / stato operativoSNOW guidaStato di installazione, obiettivi SLA, metriche di disponibilità — dati operativi ITSM
Gruppo di assegnazione / supportoSNOW guidaProprietà operativa tracciata nei workflow ServiceNow
Date di discoverySNOW guidaPrima/ultima scoperta, ultimo scan — metadati di automazione CMDB

3. Con quale frequenza dovreste sincronizzare?

ScenarioFrequenzaNote
Importazione inizialeUna voltaModalità additiva, revisionate attentamente
Gestione attiva del panoramaGiornalieraAutomatizzata tramite cron durante le ore non di punta
Reporting di conformitàSettimanalePrima di generare i report
Ad hocSecondo necessitàPrima di revisioni EA importanti o presentazioni

Passo 1: Prerequisiti ServiceNow

Creare un account di servizio

In ServiceNow, create un account di servizio dedicato (non usate mai account personali):

RuoloScopoObbligatorio?
itilAccesso in lettura alle tabelle CMDB
cmdb_readLettura dei Configuration Item
rest_api_explorerUtile per testare le queryConsigliato
import_adminAccesso in scrittura alle tabelle targetSolo per push sync

Best practice: Create un ruolo personalizzato con accesso di sola lettura solo alle tabelle specifiche che pianificate di sincronizzare. Il ruolo itil è ampio — un ruolo personalizzato con ambito limitato riduce il raggio d'azione.

Requisiti di rete

  • Il backend Canopy deve raggiungere la vostra istanza SNOW su HTTPS (porta 443)
  • Configurate le regole del firewall e le allowlist IP
  • Formato URL dell'istanza: https://company.service-now.com o https://company.servicenowservices.com

Scelta del metodo di autenticazione

MetodoProControRaccomandazione
Basic AuthConfigurazione sempliceCredenziali inviate ad ogni richiestaSolo per sviluppo/test
OAuth 2.0Basato su token, con ambito, audit-friendlyPiù passaggi di configurazioneConsigliato per la produzione

Per OAuth 2.0:

  1. In ServiceNow: System OAuth > Application Registry
  2. Create un nuovo endpoint OAuth API per client esterni
  3. Annotate il Client ID e il Client Secret
  4. Ruotate i segreti ogni 90 giorni

Passo 2: Creare una connessione

Navigate su Admin > ServiceNow > scheda Connessioni.

Creare e testare

  1. Cliccate su Aggiungi connessione
  2. Compilate:
CampoValore di esempioNote
NomeProduction CMDBEtichetta descrittiva per il vostro team
URL istanzahttps://company.service-now.comDeve utilizzare HTTPS
Tipo di autenticazioneBasic Auth o OAuth 2.0OAuth consigliato per la produzione
Credenziali(per tipo di autenticazione)Crittografate a riposo tramite Fernet
  1. Cliccate su Crea, poi cliccate sull'icona test (simbolo wifi) per verificare la connettività
  • Chip verde "Connesso" — Pronto per l'uso
  • Chip rosso "Fallito" — Verificate credenziali, rete e URL

Connessioni multiple

Potete creare connessioni multiple per:

  • Istanze di produzione vs sviluppo
  • Istanze SNOW regionali (es. EMEA, APAC)
  • Team diversi con account di servizio separati

Ogni mappatura fa riferimento a una connessione specifica.


Passo 3: Progettare le mappature

Passate alla scheda Mappature. Una mappatura connette un tipo di card Canopy a una tabella ServiceNow.

Creare una mappatura

Cliccate su Aggiungi mappatura e configurate:

CampoDescrizioneEsempio
ConnessioneQuale istanza ServiceNow utilizzareProduction CMDB
Tipo di cardIl tipo di card Canopy da sincronizzareApplication
Tabella SNOWIl nome API della tabella ServiceNowcmdb_ci_business_app
Direzione sincronizzazioneQuali operazioni sono disponibili (vedi sotto)ServiceNow -> Canopy
Modalità sincronizzazioneCome gestire le eliminazioniConservative
Rapporto massimo di eliminazioneSoglia di sicurezza per eliminazioni in blocco50%
Query filtroQuery codificata ServiceNow per limitare l'ambitoactive=true^install_status=1
Salta stagingApplica le modifiche direttamente senza revisioneDisattivato (consigliato per la sincronizzazione iniziale)

Mappature comuni delle tabelle SNOW

Tipo CanopyTabella ServiceNowDescrizione
Applicationcmdb_ci_business_appApplicazioni aziendali (più comune)
Applicationcmdb_ci_applCI di applicazioni generiche
ITComponent (Software)cmdb_ci_spkgPacchetti software
ITComponent (Hardware)cmdb_ci_serverServer fisici/virtuali
ITComponent (SaaS)cmdb_ci_cloud_service_accountAccount di servizi cloud
Providercore_companyFornitori / aziende
Interfacecmdb_ci_endpointEndpoint di integrazione
DataObjectcmdb_ci_databaseIstanze di database
Systemcmdb_ci_computerCI computer
Organizationcmn_departmentDipartimenti

Esempi di query filtro

Filtrate sempre per evitare di importare record obsoleti o ritirati:

# Solo CI attivi (filtro minimo consigliato)
active=true

# CI attivi con stato di installazione "Installed"
active=true^install_status=1

# Applicazioni in uso produttivo
active=true^used_for=Production

# CI aggiornati negli ultimi 30 giorni
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Gruppo di assegnazione specifico
active=true^assignment_group.name=IT Operations

# Escludi CI ritirati
active=true^install_statusNOT IN7,8

Best practice: Includete sempre active=true come minimo. Le tabelle CMDB contengono spesso migliaia di record ritirati o dismessi che non dovrebbero essere importati nel vostro panorama EA.


Passo 4: Configurare le mappature dei campi

Ogni mappatura contiene mappature dei campi che definiscono come i singoli campi si traducono tra i due sistemi. L'input del campo Canopy fornisce suggerimenti di autocompletamento basati sul tipo di card selezionato — inclusi campi principali, date del ciclo di vita e tutti gli attributi personalizzati dallo schema del tipo.

Aggiunta dei campi

Per ogni mappatura di campo, configurate:

ImpostazioneDescrizione
Campo CanopyPercorso del campo in Canopy (l'autocompletamento suggerisce opzioni basate sul tipo di card)
Campo SNOWNome API della colonna ServiceNow (es. name, short_description)
DirezioneFonte di verità per campo: SNOW guida o Turbo guida
TrasformazioneCome convertire i valori: Diretta, Mappa valori, Data, Booleano
Identità (casella ID)Utilizzato per la corrispondenza dei record durante la sincronizzazione iniziale

Percorsi dei campi Canopy

L'autocompletamento raggruppa i campi per sezione. Ecco il riferimento completo dei percorsi:

PercorsoTargetValore di esempio
nameNome visualizzato della card"SAP S/4HANA"
descriptionDescrizione della card"Sistema ERP principale per la finanza"
lifecycle.planCiclo di vita: data Plan"2024-01-15"
lifecycle.phaseInCiclo di vita: data Phase In"2024-03-01"
lifecycle.activeCiclo di vita: data Active"2024-06-01"
lifecycle.phaseOutCiclo di vita: data Phase Out"2028-12-31"
lifecycle.endOfLifeCiclo di vita: data End of Life"2029-06-30"
attributes.<key>Qualsiasi attributo personalizzato dallo schema dei campi del tipo di cardVaria per tipo di campo

Ad esempio, se il vostro tipo Application ha un campo con chiave businessCriticality, selezionate attributes.businessCriticality dal menu a tendina.

Campi identità — Come funziona la corrispondenza

Contrassegnate uno o più campi come Identità (icona chiave). Questi vengono utilizzati durante la prima sincronizzazione per abbinare i record ServiceNow alle card Canopy esistenti:

  1. Ricerca nella mappa delle identità — Se esiste già un collegamento sys_id <-> card UUID, viene utilizzato
  2. Corrispondenza esatta del nome — Corrispondenza sul valore del campo identità (es. corrispondenza per nome applicazione)
  3. Corrispondenza fuzzy — Se non c'è corrispondenza esatta, utilizza SequenceMatcher con soglia di similarità dell'85%

Best practice: Contrassegnate sempre il campo name come campo identità. Se i nomi differiscono tra i sistemi (es. SNOW include i numeri di versione come "SAP S/4HANA v2.1" ma Canopy ha "SAP S/4HANA"), puliteli prima della prima sincronizzazione per una migliore qualità di corrispondenza.

Dopo che la prima sincronizzazione stabilisce i collegamenti nella mappa delle identità, le sincronizzazioni successive utilizzano la mappa delle identità persistente e non si basano sulla corrispondenza dei nomi.


Passo 5: Eseguire la prima sincronizzazione

Passate alla scheda Dashboard di sincronizzazione.

Avviare una sincronizzazione

Per ogni mappatura attiva, vedete pulsanti Pull e/o Push a seconda della direzione di sincronizzazione configurata:

  • Pull (icona download cloud) — Recupera dati da SNOW verso Canopy
  • Push (icona upload cloud) — Invia dati Canopy verso ServiceNow

Cosa succede durante un Pull Sync

1. FETCH Recupera tutti i record corrispondenti da SNOW (batch di 500)
2. MATCH Abbina ogni record a una card esistente:
a) Mappa delle identità (ricerca persistente sys_id &lt;-> card UUID)
b) Corrispondenza esatta del nome sui campi identità
c) Corrispondenza fuzzy del nome (soglia di similarità 85%)
3. TRANSFORM Applica le mappature dei campi per convertire SNOW -> formato Canopy
4. DIFF Confronta i dati trasformati con i campi della card esistente
5. STAGE Assegna un'azione a ogni record:
- create: Nuovo, nessuna card corrispondente trovata
- update: Corrispondenza trovata, campi differenti
- skip: Corrispondenza trovata, nessuna differenza
- delete: Nella mappa delle identità ma assente da SNOW
6. APPLY Esegue le azioni staged (crea/aggiorna/archivia card)

Quando Salta staging è abilitato, i passi 5 e 6 si fondono — le azioni vengono applicate direttamente senza scrivere record staged.

Revisione dei risultati della sincronizzazione

La tabella Cronologia sincronizzazioni mostra dopo ogni esecuzione:

ColonnaDescrizione
AvviatoQuando la sincronizzazione è iniziata
DirezionePull o Push
Statocompleted, failed o running
RecuperatiRecord totali recuperati da ServiceNow
CreatiNuove card create in Canopy
AggiornatiCard esistenti aggiornate
EliminatiCard archiviate (eliminate temporaneamente)
ErroriRecord che non sono stati processati
DurataTempo effettivo

Cliccate sull'icona elenco su qualsiasi esecuzione per ispezionare i singoli record staged, incluso il diff a livello di campo per ogni aggiornamento.

Procedura consigliata per la prima sincronizzazione

1. Impostate la mappatura in modalità ADDITIVE con staging ATTIVATO
2. Eseguite il pull sync
3. Revisionate i record staged — verificate che le creazioni siano corrette
4. Andate nell'Inventario, verificate le card importate
5. Aggiustate le mappature dei campi o la query filtro se necessario
6. Rieseguite fino a quando siete soddisfatti
7. Passate alla modalità CONSERVATIVE per l'uso continuativo
8. Dopo diverse esecuzioni riuscite, abilitate Salta staging

Comprendere la direzione di sincronizzazione vs la direzione del campo

Questo è il concetto più comunemente frainteso. Ci sono due livelli di direzione che lavorano insieme:

Livello tabella: Direzione di sincronizzazione

Impostata sulla mappatura stessa. Controlla quali operazioni di sincronizzazione sono disponibili nel Dashboard di sincronizzazione:

Direzione sincronizzazionePulsante Pull?Pulsante Push?Usare quando...
ServiceNow -> CanopyNoIl CMDB è la fonte master, importate solo
Canopy -> ServiceNowNoLo strumento EA arricchisce il CMDB con valutazioni
BidirezionaleEntrambi i sistemi contribuiscono con campi diversi

Livello campo: Direzione

Impostata per mappatura di campo. Controlla quale valore del sistema prevale durante un'esecuzione di sincronizzazione:

Direzione del campoDurante il Pull (SNOW -> Turbo)Durante il Push (Turbo -> SNOW)
SNOW guidaIl valore viene importato da ServiceNowIl valore viene saltato (non inviato)
Turbo guidaIl valore viene saltato (non sovrascritto)Il valore viene esportato verso ServiceNow

Come funzionano insieme — Esempio

Mappatura: Application <-> cmdb_ci_business_app, Bidirezionale

CampoDirezioneIl Pull fa...Il Push fa...
nameTurbo guidaSalta (l'EA cura i nomi)Invia il nome EA -> SNOW
descriptionTurbo guidaSalta (l'EA scrive le descrizioni)Invia la descrizione -> SNOW
lifecycle.activeTurbo guidaSalta (l'EA gestisce il ciclo di vita)Invia la data go-live -> SNOW
attributes.businessCriticalityTurbo guidaSalta (valutazione EA)Invia la valutazione -> campo personalizzato SNOW
attributes.ipAddressSNOW guidaImporta IP dalla discoverySalta (dati operativi)
attributes.installStatusSNOW guidaImporta stato operativoSalta (dati ITSM)

Concetto chiave: La direzione a livello di tabella determina quali pulsanti appaiono. La direzione a livello di campo determina quali campi vengono effettivamente trasferiti durante ogni operazione. Una mappatura bidirezionale dove Canopy guida la maggior parte dei campi e SNOW guida solo i campi operativi/tecnici è la configurazione più potente.

Best practice: Direzione del campo per tipo di dato

L'impostazione predefinita dovrebbe essere Turbo guida per la stragrande maggioranza dei campi. Impostate SNOW guida solo per i metadati operativi e tecnici che provengono dalla discovery automatizzata o dai workflow ITSM.

Categoria di datiDirezione consigliataMotivazione
Nomi, etichette visualizzateTurbo guidaIl team EA cura nomi autorevoli e puliti — i nomi CMDB sono spesso auto-generati o incoerenti
DescrizioneTurbo guidaLe descrizioni EA catturano contesto strategico, valore aziendale e significato architetturale
Criticità aziendale (modello TIME)Turbo guidaValutazione core dell'EA — non dati operativi
Idoneità funzionale/tecnicaTurbo guidaPunteggi e classificazione della roadmap specifici dell'EA
Ciclo di vita (tutte le fasi)Turbo guidaPlan, phaseIn, active, phaseOut, endOfLife sono tutte decisioni di pianificazione EA
Dati sui costiTurbo guidaL'EA traccia il costo totale di proprietà e l'allocazione del budget
Tipo di hosting, classificazioneTurbo guidaCategorizzazione strategica mantenuta dagli architetti
Informazioni fornitore/providerTurbo guidaL'EA gestisce strategia, contratti e rischio dei fornitori — SNOW può avere un nome fornitore ma l'EA possiede la relazione
Metadati tecnici (OS, IP, hostname)SNOW guidaDati di discovery automatizzata — l'EA non li mantiene
Obiettivi SLA, metriche di disponibilitàSNOW guidaDati operativi dai workflow ITSM
Stato di installazione, stato operativoSNOW guidaIl CMDB traccia se un CI è installato, ritirato, ecc.
Gruppo di assegnazione, team di supportoSNOW guidaProprietà operativa gestita in ServiceNow
Metadati di discovery (primo/ultimo rilevamento)SNOW guidaTimestamp di automazione CMDB

Salta staging — Quando usarlo

Per impostazione predefinita, i pull sync seguono un workflow stage-poi-applica:

Fetch -> Match -> Transform -> Diff -> STAGE -> Revisione -> APPLY

I record vengono scritti in una tabella di staging, consentendovi di revisionare cosa cambierà prima di applicare. Questo è visibile nel Dashboard di sincronizzazione sotto "Visualizza record staged".

Modalità Salta staging

Quando abilitate Salta staging su una mappatura, i record vengono applicati direttamente:

Fetch -> Match -> Transform -> Diff -> APPLICA DIRETTAMENTE

Non vengono creati record staged — le modifiche avvengono immediatamente.

Staging (predefinito)Salta staging
Passo di revisioneSì — ispezionate i diff prima di applicareNo — le modifiche vengono applicate immediatamente
Tabella record stagedPopolata con voci create/aggiorna/eliminaNon popolata
Registro di auditRecord staged + cronologia eventiSolo cronologia eventi
PrestazioniLeggermente più lento (scrive righe di staging)Leggermente più veloce
AnnullamentoPotete interrompere prima di applicareDovete ripristinare manualmente

Quando usare ciascuno

ScenarioRaccomandazione
Prima importazioneUsate staging — Revisionate cosa viene creato prima di applicare
Mappatura nuova o modificataUsate staging — Verificate che le trasformazioni dei campi producano output corretto
Mappatura stabile e ben testataSaltate staging — Non serve revisionare ogni esecuzione
Sincronizzazioni giornaliere automatizzate (cron)Saltate staging — Le esecuzioni automatiche non possono attendere la revisione
CMDB grande (10.000+ CI)Saltate staging — Evita di creare migliaia di righe di staging
Ambiente sensibile alla conformitàUsate staging — Mantenete un registro di audit completo nella tabella di staging

Best practice: Iniziate con lo staging abilitato per le prime sincronizzazioni. Una volta sicuri che la mappatura produce risultati corretti, abilitate salta staging per le esecuzioni automatizzate.


Modalità di sincronizzazione e sicurezza delle eliminazioni

Modalità di sincronizzazione

ModalitàCreaAggiornaEliminaIdeale per
AdditiveMaiImportazioni iniziali, ambienti a basso rischio
ConservativeSolo card create dalla sincronizzazionePredefinita per sincronizzazioni continuative
StrictTutte le card collegateSpecchio completo del CMDB

Additive non rimuove mai card da Canopy, rendendola l'opzione più sicura per le importazioni iniziali e gli ambienti dove Canopy contiene card non presenti in ServiceNow (card create manualmente, card da altre fonti).

Conservative (predefinita) traccia se ogni card è stata originariamente creata dal motore di sincronizzazione. Solo quelle card possono essere auto-archiviate se scompaiono da ServiceNow. Le card create manualmente in Canopy o importate da altre fonti non vengono mai toccate.

Strict archivia qualsiasi card collegata il cui CI ServiceNow corrispondente non appare più nei risultati della query, indipendentemente da chi l'ha creata. Usate questo solo quando ServiceNow è la fonte di verità assoluta e volete che Canopy lo specchi esattamente.

Rapporto massimo di eliminazione — Rete di sicurezza

Come rete di sicurezza, il motore salta tutte le eliminazioni se il conteggio supera il rapporto configurato:

eliminazioni / totale_collegati > rapporto_massimo_eliminazione -> SALTA TUTTE LE ELIMINAZIONI

Esempio con 10 record collegati e soglia del 50%:

ScenarioEliminazioniRapportoRisultato
3 CI rimossi normalmente3 / 10 = 30%Sotto la sogliaLe eliminazioni procedono
6 CI rimossi in una volta6 / 10 = 60%Sopra la sogliaTutte le eliminazioni saltate
SNOW restituisce vuoto (disservizio)10 / 10 = 100%Sopra la sogliaTutte le eliminazioni saltate

Questo previene la perdita catastrofica di dati da modifiche alla query filtro, disservizi temporanei di ServiceNow o nomi di tabelle mal configurati.

Best practice: Mantenete il rapporto di eliminazione al 50% o inferiore per tabelle con meno di 100 record. Per tabelle grandi (1.000+), potete impostarlo in sicurezza al 25%.

Progressione consigliata

Settimana 1: Modalita ADDITIVE, staging ATTIVATO, eseguite manualmente, revisionate ogni record
Settimana 2-4: Modalita CONSERVATIVE, staging ATTIVATO, eseguite giornalmente, controllate a campione
Mese 2+: Modalita CONSERVATIVE, staging DISATTIVATO (salta), cron giornaliero automatizzato

Ricette consigliate per tipo

Ricetta 1: Applicazioni dal CMDB (Più comune)

Obiettivo: Importate il panorama applicativo da ServiceNow, poi assumete la proprietà di nomi, descrizioni, valutazioni e ciclo di vita in Canopy. SNOW guida solo i campi operativi.

Mappatura:

ImpostazioneValore
Tipo di cardApplication
Tabella SNOWcmdb_ci_business_app
DirezioneBidirezionale
ModalitàConservative
Filtroactive=true^install_status=1

Mappature dei campi:

Campo CanopyCampo SNOWDirezioneTrasformazioneID?
namenameTurbo guidaDiretta
descriptionshort_descriptionTurbo guidaDiretta
lifecycle.activego_live_dateTurbo guidaData
lifecycle.endOfLiferetirement_dateTurbo guidaData
attributes.businessCriticalitybusines_criticalityTurbo guidaMappa valori
attributes.hostingTypehosting_typeTurbo guidaDiretta
attributes.installStatusinstall_statusSNOW guidaDiretta
attributes.ipAddressip_addressSNOW guidaDiretta

Configurazione mappa valori per businessCriticality:

{
"mapping": {
"1 - most critical": "missionCritical",
"2 - somewhat critical": "businessCritical",
"3 - less critical": "businessOperational",
"4 - not critical": "administrativeService"
}
}

Suggerimento per la prima sincronizzazione: Al primo pull, i valori SNOW popolano tutti i campi (poiché le card non esistono ancora). Dopo, i campi guidati da Turbo sono di proprietà del team EA — i pull successivi aggiornano solo i campi operativi guidati da SNOW (stato di installazione, IP), mentre il team EA gestisce tutto il resto direttamente in Canopy.

Dopo l'importazione: Perfezionate i nomi delle applicazioni, scrivete descrizioni strategiche, mappate le Business Capability, aggiungete valutazioni di idoneità funzionale/tecnica e impostate le fasi del ciclo di vita — tutto questo è ora di proprietà di Canopy e verrà inviato a ServiceNow nei push sync.


Ricetta 2: IT Component (Server)

Obiettivo: Importate l'infrastruttura server per la mappatura dell'infrastruttura e l'analisi delle dipendenze. I server sono più operativi delle applicazioni, quindi più campi provengono da SNOW — ma Canopy guida ancora nomi e descrizioni.

Mappatura:

ImpostazioneValore
Tipo di cardITComponent
Tabella SNOWcmdb_ci_server
DirezioneBidirezionale
ModalitàConservative
Filtroactive=true^hardware_statusNOT IN6,7

Mappature dei campi:

Campo CanopyCampo SNOWDirezioneTrasformazioneID?
namenameTurbo guidaDiretta
descriptionshort_descriptionTurbo guidaDiretta
attributes.manufacturermanufacturer.nameTurbo guidaDiretta
attributes.operatingSystemosSNOW guidaDiretta
attributes.ipAddressip_addressSNOW guidaDiretta
attributes.serialNumberserial_numberSNOW guidaDiretta
attributes.hostnamehost_nameSNOW guidaDiretta

Nota: Per i server, i campi operativi/di discovery come OS, IP, numero di serie e hostname provengono naturalmente dalla discovery automatizzata di SNOW. Ma il team EA possiede comunque il nome visualizzato (che può differire dall'hostname) e la descrizione per il contesto strategico.

Dopo l'importazione: Collegate gli IT Component alle Application usando le relazioni, alimentando il grafo delle dipendenze e i report sull'infrastruttura.


Ricetta 3: Prodotti software con tracciamento EOL

Obiettivo: Importate i prodotti software e combinateli con l'integrazione endoflife.date di Canopy. Canopy guida su nomi, descrizioni e fornitore — la versione è un campo fattuale su cui SNOW può guidare.

Mappatura:

ImpostazioneValore
Tipo di cardITComponent
Tabella SNOWcmdb_ci_spkg
DirezioneBidirezionale
ModalitàConservative
Filtroactive=true

Mappature dei campi:

Campo CanopyCampo SNOWDirezioneTrasformazioneID?
namenameTurbo guidaDiretta
descriptionshort_descriptionTurbo guidaDiretta
attributes.versionversionSNOW guidaDiretta
attributes.vendormanufacturer.nameTurbo guidaDiretta

Dopo l'importazione: Andate su Admin > EOL e utilizzate la Ricerca massiva per abbinare automaticamente gli IT Component importati ai prodotti endoflife.date. Questo vi offre un tracciamento automatizzato del rischio EOL che combina l'inventario CMDB con i dati pubblici sul ciclo di vita.


Ricetta 4: Fornitori / Provider (Bidirezionale)

Obiettivo: Mantenete sincronizzato il registro dei fornitori. Canopy possiede nomi, descrizioni e contesto strategico dei fornitori. SNOW integra con dati di contatto operativi.

Mappatura:

ImpostazioneValore
Tipo di cardProvider
Tabella SNOWcore_company
DirezioneBidirezionale
ModalitàAdditive
Filtrovendor=true

Mappature dei campi:

Campo CanopyCampo SNOWDirezioneTrasformazioneID?
namenameTurbo guidaDiretta
descriptionnotesTurbo guidaDiretta
attributes.websitewebsiteTurbo guidaDiretta
attributes.contactEmailemailSNOW guidaDiretta

Perché Turbo guida per la maggior parte dei campi: Il team EA cura la strategia dei fornitori, gestisce le relazioni e traccia il rischio — questo include il nome visualizzato, la descrizione e la presenza web del fornitore. SNOW guida solo sui dati di contatto operativi che possono essere aggiornati dai team di approvvigionamento o gestione degli asset.


Ricetta 5: Push delle valutazioni EA verso ServiceNow

Obiettivo: Esportate le valutazioni specifiche dell'EA verso campi personalizzati ServiceNow così i team ITSM possono vedere il contesto EA.

Mappatura:

ImpostazioneValore
Tipo di cardApplication
Tabella SNOWcmdb_ci_business_app
DirezioneCanopy -> ServiceNow
ModalitàAdditive

Mappature dei campi:

Campo CanopyCampo SNOWDirezioneTrasformazioneID?
namenameSNOW guidaDiretta
attributes.businessCriticalityu_ea_business_criticalityTurbo guidaMappa valori
attributes.functionalSuitabilityu_ea_functional_fitTurbo guidaMappa valori
attributes.technicalSuitabilityu_ea_technical_fitTurbo guidaMappa valori

Importante: Il push sync verso campi personalizzati (con prefisso u_) richiede che quelle colonne esistano già in ServiceNow. Collaborate con il vostro amministratore ServiceNow per crearle prima di configurare la mappatura push. L'account di servizio necessita del ruolo import_admin per l'accesso in scrittura.

Perché è importante: I team ITSM vedono le valutazioni EA direttamente nei workflow di incidenti/cambiamenti ServiceNow. Quando un'applicazione "Mission Critical" ha un incidente, le regole di escalation della priorità possono utilizzare il punteggio di criticità fornito dall'EA.


Riferimento dei tipi di trasformazione

Diretta (predefinita)

Passa il valore invariato. Utilizzare per campi di testo che hanno lo stesso formato in entrambi i sistemi.

Mappa valori

Traduce i valori enumerati tra i sistemi. Configurare con una mappatura JSON:

{
"mapping": {
"1": "missionCritical",
"2": "businessCritical",
"3": "businessOperational",
"4": "administrativeService"
}
}

La mappatura si inverte automaticamente quando si esegue il push da Canopy a ServiceNow. Ad esempio, durante il push, "missionCritical" diventa "1".

Formato data

Tronca i valori datetime di ServiceNow (2024-06-15 14:30:00) a solo data (2024-06-15). Utilizzare per le date delle fasi del ciclo di vita dove l'orario è irrilevante.

Booleano

Converte tra stringhe booleane di ServiceNow ("true", "1", "yes") e booleani nativi. Utile per campi come "is_virtual", "active", ecc.


Best practice di sicurezza

Gestione delle credenziali

PraticaDettagli
Crittografia a riposoTutte le credenziali crittografate tramite Fernet (AES-128-CBC) derivato da SECRET_KEY. Se ruotate SECRET_KEY, reinserite tutte le credenziali ServiceNow.
Privilegio minimoCreate un account di servizio SNOW dedicato con accesso di sola lettura a tabelle specifiche. Concedete l'accesso in scrittura solo se utilizzate il push sync.
OAuth 2.0 preferitoBasic Auth invia le credenziali ad ogni chiamata API. OAuth utilizza token a breve durata con restrizioni di ambito.
Rotazione delle credenzialiRuotate password o client secret ogni 90 giorni.

Sicurezza di rete

PraticaDettagli
HTTPS obbligatorioGli URL HTTP vengono rifiutati al momento della validazione. Tutte le connessioni devono utilizzare HTTPS.
Validazione nome tabellaI nomi delle tabelle vengono validati contro ^[a-zA-Z0-9_]+$ per prevenire iniezioni.
Validazione sys_idI valori sys_id vengono validati come stringhe esadecimali di 32 caratteri.
Allowlist IPConfigurate il controllo di accesso IP di ServiceNow per consentire solo l'IP del vostro server Canopy.

Controllo degli accessi

PraticaDettagli
Gated RBACGli endpoint ServiceNow di sola lettura richiedono il permesso servicenow.view; tutte le modifiche richiedono servicenow.manage.
Registro di auditTutte le modifiche create dalla sincronizzazione pubblicano eventi con source: "servicenow_sync", visibili nella cronologia della card.
Nessuna esposizione credenzialiPassword e segreti non vengono mai restituiti nelle risposte API.

Checklist per la produzione

  • Account di servizio ServiceNow dedicato (non un account personale)
  • OAuth 2.0 con concessione client credentials
  • Programma di rotazione delle credenziali (ogni 90 giorni)
  • Account di servizio limitato solo alle tabelle mappate
  • Allowlist IP ServiceNow configurata per l'IP del server Canopy
  • Rapporto massimo di eliminazione impostato al 50% o inferiore
  • Esecuzioni di sincronizzazione monitorate per conteggi insoliti di errori o eliminazioni
  • Query filtro includono active=true come minimo

Runbook operativo

Sequenza di configurazione iniziale

1. Create l'account di servizio ServiceNow con i ruoli minimi richiesti
2. Verificate la connettività di rete (Canopy puòraggiungere SNOW su HTTPS?)
3. Create la connessione in Canopy e testatela
4. Verificate che i tipi del metamodello abbiano tutti i campi che volete sincronizzare
5. Create la prima mappatura con modalità ADDITIVE, staging ATTIVATO
6. Utilizzate il pulsante Anteprima (tramite API) per verificare che la mappatura produca output corretto
7. Eseguite il primo pull sync — revisionate i record staged nel Dashboard di sincronizzazione
8. Applicate i record staged
9. Verificate le card importate nell'Inventario
10. Aggiustate le mappature dei campi se necessario, rieseguite
11. Passate alla modalità CONSERVATIVE per l'uso continuativo
12. Dopo diverse esecuzioni riuscite, abilitate Salta staging per l'automazione

Operazioni continuative

AttivitàFrequenzaCome
Eseguire pull syncGiornalmente o settimanalmenteDashboard di sincronizzazione > pulsante Pull (o cron)
Revisionare le statistiche di sincronizzazioneDopo ogni esecuzioneControllate conteggi errori/eliminazioni
Testare le connessioniMensilmenteCliccate il pulsante test su ogni connessione
Ruotare le credenzialiTrimestralmenteAggiornate sia in SNOW che in Canopy
Revisionare la mappa delle identitàTrimestralmenteControllate le voci orfane tramite statistiche di sincronizzazione
Audit della cronologia delle cardSecondo necessitàFiltrate gli eventi per sorgente servicenow_sync

Configurazione delle sincronizzazioni automatizzate

Le sincronizzazioni possono essere attivate tramite API per l'automazione:

# Pull sync giornaliero alle 2:00
0 2 * * * curl -s -X POST \
-H "Authorization: Bearer $TURBOEA_TOKEN" \
"https://canopy.company.com/api/v1/servicenow/sync/pull/$MAPPING_ID" \
>> /var/log/canopy-sync.log 2>&1

Best practice: Eseguite le sincronizzazioni durante le ore non di punta. Per tabelle CMDB grandi (10.000+ CI), prevedete 2-5 minuti a seconda della latenza di rete e del numero di record.

Pianificazione della capacità

Dimensione CMDBDurata previstaRaccomandazione
< 500 CI< 30 secondiSincronizzate giornalmente, staging opzionale
500-5.000 CI30s - 2 minutiSincronizzate giornalmente, saltate staging
5.000-20.000 CI2-5 minutiSincronizzate di notte, saltate staging
20.000+ CI5-15 minutiSincronizzate settimanalmente, utilizzate query filtro per suddividere

Risoluzione dei problemi

Problemi di connessione

SintomoCausaSoluzione
Connection failed: [SSL]Certificato auto-firmato o scadutoAssicuratevi che SNOW utilizzi un certificato CA pubblico valido
HTTP 401: UnauthorizedCredenziali errateReinserite username/password; verificate che l'account non sia bloccato
HTTP 403: ForbiddenRuoli insufficientiConcedete itil e cmdb_read all'account di servizio
Connection failed: timed outBlocco del firewallVerificate le regole; aggiungete l'IP di Canopy all'allowlist in SNOW
Test OK ma sincronizzazione falliscePermessi a livello di tabellaConcedete l'accesso in lettura alla specifica tabella CMDB

Problemi di sincronizzazione

SintomoCausaSoluzione
0 record recuperatiTabella o filtro erratoVerificate il nome della tabella; semplificate la query filtro
Tutti i record sono "create"Mancata corrispondenza identitàContrassegnate name come identità; verificate che i nomi corrispondano tra i sistemi
Alto conteggio erroriFallimenti di trasformazioneControllate i record staged per i messaggi di errore
Eliminazioni saltateRapporto superatoAumentate la soglia o investigate perché i CI sono scomparsi
Modifiche non visibiliCache del browserAggiornamento forzato; controllate la cronologia della card per gli eventi
Card duplicateMappature multiple per lo stesso tipoUtilizzate una mappatura per tipo di card per connessione
Modifiche push rifiutatePermessi SNOW mancantiConcedete il ruolo import_admin all'account di servizio

Strumenti diagnostici

# Anteprima di come i record verranno mappati (5 campioni, nessun effetto collaterale)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Sfoglia le tabelle sull'istanza SNOW
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Ispeziona le colonne di una tabella
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Filtra i record staged per azione o stato
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=create
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=update
GET /api/v1/servicenow/sync/runs/{run_id}/staged?status=error

Riferimento API (Rapido)

Tutti gli endpoint richiedono Authorization: Bearer <token>. Gli endpoint di sola lettura richiedono il permesso servicenow.view, quelli di modifica servicenow.manage. Percorso base: /api/v1.

Connessioni

MetodoPercorsoDescrizione
GET/servicenow/connectionsElenca le connessioni
POST/servicenow/connectionsCrea connessione
GET/servicenow/connections/{id}Ottieni connessione
PATCH/servicenow/connections/{id}Aggiorna connessione
DELETE/servicenow/connections/{id}Elimina connessione + tutte le mappature
POST/servicenow/connections/{id}/testTesta la connettività
GET/servicenow/connections/{id}/tablesSfoglia le tabelle SNOW
GET/servicenow/connections/{id}/tables/{table}/fieldsElenca le colonne della tabella

Mappature

MetodoPercorsoDescrizione
GET/servicenow/mappingsElenca le mappature con mappature dei campi
POST/servicenow/mappingsCrea mappatura con mappature dei campi
GET/servicenow/mappings/{id}Ottieni mappatura con mappature dei campi
PATCH/servicenow/mappings/{id}Aggiorna mappatura (sostituisce i campi se forniti)
DELETE/servicenow/mappings/{id}Elimina mappatura
POST/servicenow/mappings/{id}/previewAnteprima dry-run (5 record campione)

Operazioni di sincronizzazione

MetodoPercorsoDescrizione
POST/servicenow/sync/pull/{mapping_id}Pull sync (?auto_apply=true predefinito)
POST/servicenow/sync/push/{mapping_id}Push sync
GET/servicenow/sync/runsElenca cronologia sincronizzazioni (?limit=20)
GET/servicenow/sync/runs/{id}Ottieni dettagli esecuzione + statistiche
GET/servicenow/sync/runs/{id}/stagedElenca record staged per un'esecuzione
POST/servicenow/sync/runs/{id}/applyApplica record staged in attesa