Hop til hovedindhold

ServiceNow-integration

ServiceNow-integrationen (Admin > Indstillinger > ServiceNow) muliggør tovejssynkronisering mellem Canopy og din ServiceNow CMDB. Denne vejledning dækker alt fra indledende opsætning til avancerede opskrifter og operationelle bedste praksisser.

ServiceNow-integrationsindstillinger

Hvorfor integrere ServiceNow med Canopy?

ServiceNow CMDB og Enterprise Architecture-værktøjer tjener forskellige, men komplementære formål:

ServiceNow CMDBCanopy
FokusIT-drift — hvad der kører, hvem der ejer det, hvilke hændelser der er sketStrategisk planlægning — hvordan skal landskabet se ud om 3 år?
Vedligeholdt afIT-drift, Asset ManagementEA-team, forretningsarkitekter
StyrkeAutomatiseret opdagelse, ITSM-arbejdsprocesser, operationel nøjagtighedForretningskontekst, capability-kortlægning, livscyklusplanlægning, vurderinger
Typiske dataVærtsnavne, IP'er, installationsstatus, tildelingsgrupper, kontrakterForretningskritikalitet, funktionelt fit, teknisk gæld, strategisk roadmap

Canopy er system of record for dit arkitekturlandskab — navne, beskrivelser, livscyklusplaner, vurderinger og forretningskontekst lever alle her. ServiceNow supplerer Canopy med operationelle og tekniske metadata (værtsnavne, IP'er, SLA-data, installationsstatus), der kommer fra automatiseret opdagelse og ITSM-arbejdsprocesser. Integrationen holder disse to systemer forbundet, samtidig med at den respekterer, at Canopy leder.

Hvad du kan gøre

  • Pull-synkronisering — Seed Canopy med CI'er fra ServiceNow, og tag derefter ejerskab. Løbende pulls opdaterer kun operationelle felter (IP'er, status, SLA'er), som SNOW opdager automatisk
  • Push-synkronisering — Eksportér EA-kurerede data tilbage til ServiceNow (navne, beskrivelser, vurderinger, livscyklusplaner), så ITSM-teams ser EA-kontekst
  • Tovejs-synkronisering — Canopy leder de fleste felter; SNOW leder et lille sæt af operationelle/tekniske felter. Begge systemer forbliver synkroniseret
  • Identitetskortlægning — Persistent krydsreferencesporing (sys_id <-> kort-UUID) sikrer, at poster forbliver tilknyttede på tværs af synkroniseringer

Integrationsarkitektur

+------------------+ 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) |
+------------------+ +------------------+

Integrationen bruger ServiceNows Table API over HTTPS. Legitimationsoplysninger krypteres i hvile ved hjælp af Fernet (AES-128-CBC) udledt af din SECRET_KEY. Alle synkroniseringsoperationer logges som hændelser med source: "servicenow_sync" for et komplet revisionsspor.


Planlægning af din integration

Før du konfigurerer noget, så besvar disse spørgsmål:

1. Hvilke korttyper har brug for data fra ServiceNow?

Start småt. De mest almindelige integrationspunkter er:

PrioritetCanopy-typeServiceNow-kildeHvorfor
HøjApplicationcmdb_ci_business_appApplikationer er kernen i EA — CMDB har autoritative navne, ejere og status
HøjITComponent (Software)cmdb_ci_spkgSoftwareprodukter fødes ind i EOL-sporing og tech radar
MellemITComponent (Hardware)cmdb_ci_serverServerlandskab til infrastrukturkortlægning
MellemProvidercore_companyLeverandørregister til omkostnings- og relationshåndtering
LavereInterfacecmdb_ci_endpointIntegrationsendpoints (ofte vedligeholdt manuelt i EA)
LavereDataObjectcmdb_ci_databaseDatabase-instanser

2. Hvilket system er kilden til sandheden for hvert felt?

Dette er den vigtigste beslutning. Standarden bør være Canopy leder — EA-værktøjet er system of record for dit arkitekturlandskab. ServiceNow bør kun lede for et smalt sæt af operationelle og tekniske felter, der kommer fra automatiseret opdagelse eller ITSM-arbejdsprocesser. Alt andet — navne, beskrivelser, vurderinger, livscyklusplanlægning, omkostninger — ejes og kureres af EA-teamet i Canopy.

Anbefalet model — "Canopy leder, SNOW supplerer":

FelttypeKilde til sandhedHvorfor
Navne og beskrivelserTurbo lederEA-team kurerer autoritative navne og skriver strategiske beskrivelser; CMDB-navne kan være rodede eller auto-genererede
ForretningskritikalitetTurbo lederEA-teamets strategiske vurdering — ikke operationelle data
Funktionel/teknisk fitTurbo lederTIME-modelscores er en EA-bekymring
Livscyklus (alle faser)Turbo lederPlan, phaseIn, active, phaseOut, endOfLife — alle EA-planlægningsdata
OmkostningsdataTurbo lederEA sporer total ejerskabsomkostning; CMDB kan have kontraktlinjer, men EA ejer det konsoliderede syn
Hostingtype, kategoriTurbo lederEA klassificerer applikationer efter hosting-model for strategisk analyse
Tekniske metadataSNOW lederIP'er, OS-versioner, værtsnavne, serienumre — automatiserede opdagelsesdata, som EA ikke vedligeholder
SLA/operationel statusSNOW lederInstallationsstatus, SLA-mål, tilgængelighedsmetrikker — ITSM operationelle data
Tildelingsgruppe/supportSNOW lederOperationelt ejerskab sporet i ServiceNow-arbejdsprocesser
OpdagelsesdatoerSNOW lederFørst/sidst opdaget, sidste scanning — CMDB-automatiserings-metadata

3. Hvor ofte skal du synkronisere?

ScenarieHyppighedBemærkninger
Indledende importÉn gangAdditiv tilstand, gennemgå omhyggeligt
Aktiv landskabsadministrationDagligtAutomatiseret via cron i ikke-spidstider
Compliance-rapporteringUgentligtFør rapportgenerering
Ad-hocEfter behovFør større EA-gennemgange eller præsentationer

Trin 1: ServiceNow-forudsætninger

Opret en servicekonto

I ServiceNow skal du oprette en dedikeret servicekonto (brug aldrig personlige konti):

RolleFormålPåkrævet?
itilLæseadgang til CMDB-tabellerJa
cmdb_readLæs Configuration ItemsJa
rest_api_explorerNyttig til at teste forespørgslerAnbefalet
import_adminSkriveadgang til måltabellerKun til push-synkronisering

Bedste praksis: Opret en brugerdefineret rolle med skrivebeskyttet adgang til kun de specifikke tabeller, du planlægger at synkronisere. itil-rollen er bred — en brugerdefineret afgrænset rolle begrænser eksplosionsradius.

Netværkskrav

  • Canopy-backend skal nå din SNOW-instans over HTTPS (port 443)
  • Konfigurer firewallregler og IP-tilladelseslister
  • Instans-URL-format: https://company.service-now.com eller https://company.servicenowservices.com

Vælg autentificeringsmetode

MetodeFordeleUlemperAnbefaling
Basic AuthSimpel opsætningLegitimationsoplysninger sendes ved hver anmodningKun udvikling/test
OAuth 2.0Token-baseret, afgrænset, revisionsvenligFlere opsætningstrinAnbefalet til produktion

Til OAuth 2.0:

  1. I ServiceNow: System OAuth > Application Registry
  2. Opret et nyt OAuth API-endpoint for eksterne klienter
  3. Notér Client ID og Client Secret
  4. Rotér hemmeligheder på en 90-dages cyklus

Trin 2: Opret en forbindelse

Naviger til fanebladet Admin > ServiceNow > Forbindelser.

Opret og test

  1. Klik på Tilføj forbindelse
  2. Udfyld:
FeltEksempelværdiBemærkninger
NavnProduction CMDBBeskrivende etiket for dit team
Instans-URLhttps://company.service-now.comSkal bruge HTTPS
Auth-typeBasic Auth eller OAuth 2.0OAuth anbefalet til produktion
Legitimationsoplysninger(pr. auth-type)Krypteret i hvile via Fernet
  1. Klik på Opret, og klik derefter på test-ikonet (wifi-symbol) for at verificere forbindelse
  • Grøn "Connected"-chip — Klar til at gå i gang
  • Rød "Failed"-chip — Tjek legitimationsoplysninger, netværk og URL

Flere forbindelser

Du kan oprette flere forbindelser til:

  • Produktions- vs udviklings-instanser
  • Regionale SNOW-instanser (f.eks. EMEA, APAC)
  • Forskellige teams med separate servicekonti

Hver mapping refererer til en specifik forbindelse.


Trin 3: Design dine mappings

Skift til fanebladet Mappings. En mapping forbinder én Canopy-korttype til én ServiceNow-tabel.

Opret en mapping

Klik på Tilføj mapping og konfigurer:

FeltBeskrivelseEksempel
ForbindelseHvilken ServiceNow-instans der skal brugesProduction CMDB
KorttypeDen Canopy-korttype, der skal synkroniseresApplication
SNOW-tabelServiceNow-tabel-API-navnetcmdb_ci_business_app
SynkroniseringsretningHvilke operationer er tilgængelige (se nedenfor)ServiceNow -> Canopy
SynkroniseringstilstandHvordan sletninger håndteresConservative
Maks. sletningsforholdSikkerhedstærskel for bulk-sletninger50%
FilterforespørgselServiceNow-kodet forespørgsel til at begrænse omfangetactive=true^install_status=1
Spring staging overAnvend ændringer direkte uden gennemgangFra (anbefalet til indledende synkronisering)

Almindelige SNOW-tabel-mappings

Canopy-typeServiceNow-tabelBeskrivelse
Applicationcmdb_ci_business_appForretningsapplikationer (mest almindelige)
Applicationcmdb_ci_applGenerelle applikations-CI'er
ITComponent (Software)cmdb_ci_spkgSoftwarepakker
ITComponent (Hardware)cmdb_ci_serverFysiske/virtuelle servere
ITComponent (SaaS)cmdb_ci_cloud_service_accountCloud-servicekonti
Providercore_companyLeverandører/virksomheder
Interfacecmdb_ci_endpointIntegrationsendpoints
DataObjectcmdb_ci_databaseDatabase-instanser
Systemcmdb_ci_computerComputer-CI'er
Organizationcmn_departmentAfdelinger

Eksempler på filterforespørgsler

Filtrer altid for at undgå at importere forældede eller udfasede poster:

# Only active CIs (minimum recommended filter)
active=true

# Active CIs with install status "Installed"
active=true^install_status=1

# Applications in production use
active=true^used_for=Production

# CIs updated in the last 30 days
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Specific assignment group
active=true^assignment_group.name=IT Operations

# Exclude retired CIs
active=true^install_statusNOT IN7,8

Bedste praksis: Inkludér altid active=true som minimum. CMDB-tabeller indeholder ofte tusindvis af udfasede eller dekommissionerede poster, der ikke bør importeres i dit EA-landskab.


Trin 4: Konfigurer feltmappings

Hver mapping indeholder feltmappings, der definerer, hvordan individuelle felter oversættes mellem de to systemer. Canopy-feltinputtet leverer autocomplete-forslag baseret på den valgte korttype — inklusive kernefelter, livscyklusdatoer og alle brugerdefinerede egenskaber fra typens skema.

Tilføjelse af felter

For hver feltmapping konfigurerer du:

IndstillingBeskrivelse
Canopy-feltFeltsti i Canopy (autocomplete foreslår muligheder baseret på korttype)
SNOW-feltServiceNow-kolonne-API-navn (f.eks. name, short_description)
RetningPer-felt-kilde til sandhed: SNOW leder eller Turbo leder
TransformerHvordan værdier konverteres: Direct, Value Map, Date, Boolean
Identitet (ID-afkrydsningsboks)Bruges til at matche poster under indledende synkronisering

Canopy-feltstier

Autocomplete grupperer felter efter sektion. Her er den fulde stireference:

StiMålEksempelværdi
nameKort-visningsnavn"SAP S/4HANA"
descriptionKortbeskrivelse"Core ERP system for financials"
lifecycle.planLivscyklus: Plan-dato"2024-01-15"
lifecycle.phaseInLivscyklus: Phase In-dato"2024-03-01"
lifecycle.activeLivscyklus: Active-dato"2024-06-01"
lifecycle.phaseOutLivscyklus: Phase Out-dato"2028-12-31"
lifecycle.endOfLifeLivscyklus: End of Life-dato"2029-06-30"
attributes.<key>Enhver brugerdefineret egenskab fra korttypens feltskemaVarierer efter felttype

For eksempel, hvis din Application-type har et felt med nøglen businessCriticality, så vælg attributes.businessCriticality fra dropdown.

Identitetsfelter — sådan fungerer matching

Markér et eller flere felter som Identitet (nøgleikon). Disse bruges under den første synkronisering til at matche ServiceNow-poster til eksisterende Canopy-kort:

  1. Identitetskort-opslag — Hvis et sys_id <-> kort-UUID-link allerede eksisterer, brug det
  2. Eksakt navne-match — Match på identitetsfeltværdien (f.eks. matching efter applikationsnavn)
  3. Fuzzy match — Hvis intet eksakt match, brug SequenceMatcher med 85% lighedstærskel

Bedste praksis: Markér altid name-feltet som et identitetsfelt. Hvis navne adskiller sig mellem systemer (f.eks. SNOW inkluderer versionsnumre som "SAP S/4HANA v2.1", men Canopy har "SAP S/4HANA"), så ryd op i dem før den første synkronisering for bedre match-kvalitet.

Efter at den første synkronisering etablerer identitetskort-links, bruger efterfølgende synkroniseringer det persistente identitetskort og er ikke afhængige af navnematching.


Trin 5: Kør din første synkronisering

Skift til fanebladet Sync Dashboard.

Udløsning af en synkronisering

For hver aktiv mapping ser du Pull- og/eller Push-knapper afhængigt af den konfigurerede synkroniseringsretning:

  • Pull (sky-download-ikon) — Henter data fra SNOW ind i Canopy
  • Push (sky-upload-ikon) — Sender Canopy-data til ServiceNow

Hvad der sker under en pull-synkronisering

1. FETCH Retrieve all matching records from SNOW (batches of 500)
2. MATCH Match each record to an existing card:
a) Identity map (persistent sys_id &lt;-> card UUID lookup)
b) Exact name match on identity fields
c) Fuzzy name match (85% similarity threshold)
3. TRANSFORM Apply field mappings to convert SNOW -> Canopy format
4. DIFF Compare transformed data against existing card fields
5. STAGE Assign an action to each record:
- create: New, no matching card found
- update: Match found, fields differ
- skip: Match found, no differences
- delete: In identity map but absent from SNOW
6. APPLY Execute staged actions (create/update/archive cards)

Når Spring staging over er aktiveret, fusioneres trin 5 og 6 — handlinger anvendes direkte uden at skrive staged poster.

Gennemgang af synkroniseringsresultater

Tabellen Synkroniseringshistorik vises efter hvert kørsel:

KolonneBeskrivelse
StartetHvornår synkroniseringen begyndte
RetningPull eller Push
Statuscompleted, failed eller running
HentetTotal poster hentet fra ServiceNow
OprettetNye kort oprettet i Canopy
OpdateretEksisterende kort opdateret
SlettetKort arkiveret (soft-deleted)
FejlPoster, der mislykkedes at behandle
VarighedVægur-tid

Klik på liste-ikonet på enhver kørsel for at inspicere individuelle staged poster, inklusive feltniveau-diff for hver opdatering.

Anbefalet første synkroniseringsprocedure

1. Set mapping to ADDITIVE mode with staging ON
2. Run pull sync
3. Review staged records — check creates look correct
4. Go to Inventory, verify imported cards
5. Adjust field mappings or filter query if needed
6. Run again until satisfied
7. Switch to CONSERVATIVE mode for ongoing use
8. After several successful runs, enable Skip Staging

Forståelse af synkroniseringsretning vs feltretning

Dette er det mest almindeligt misforståede koncept. Der er to niveauer af retning, der arbejder sammen:

Tabel-niveau: Synkroniseringsretning

Indstillet på selve mappingen. Styrer hvilke synkroniseringsoperationer der er tilgængelige på Sync Dashboard:

SynkroniseringsretningPull-knap?Push-knap?Brug, når...
ServiceNow -> CanopyJaNejCMDB er master-kilden, du importerer bare
Canopy -> ServiceNowNejJaEA-værktøj beriger CMDB med vurderinger
TovejsJaJaBegge systemer bidrager med forskellige felter

Felt-niveau: Retning

Indstillet pr. feltmapping. Styrer hvilket systems værdi vinder under en synkroniseringskørsel:

FeltretningUnder Pull (SNOW -> Turbo)Under Push (Turbo -> SNOW)
SNOW lederVærdi importeres fra ServiceNowVærdi springes over (ikke pushet)
Turbo lederVærdi springes over (ikke overskrevet)Værdi eksporteres til ServiceNow

Hvordan de arbejder sammen — eksempel

Mapping: Application <-> cmdb_ci_business_app, Tovejs

FeltRetningPull gør...Push gør...
nameTurbo lederSpringer over (EA kurerer navne)Pusher EA-navn -> SNOW
descriptionTurbo lederSpringer over (EA skriver beskrivelser)Pusher beskrivelse -> SNOW
lifecycle.activeTurbo lederSpringer over (EA administrerer livscyklus)Pusher go-live-dato -> SNOW
attributes.businessCriticalityTurbo lederSpringer over (EA-vurdering)Pusher vurdering -> SNOW brugerdefineret felt
attributes.ipAddressSNOW lederImporterer IP fra opdagelseSpringer over (operationelle data)
attributes.installStatusSNOW lederImporterer operationel statusSpringer over (ITSM-data)

Nøgleindsigt: Tabel-niveau-retningen bestemmer hvilke knapper der vises. Felt-niveau-retningen bestemmer hvilke felter der faktisk overføres under hver operation. En tovejs-mapping, hvor Canopy leder de fleste felter, og SNOW kun leder operationelle/tekniske felter, er den mest kraftfulde konfiguration.

Bedste praksis: Feltretning efter datatype

Standarden bør være Turbo leder for det store flertal af felter. Indstil kun SNOW leder for operationelle og tekniske metadata, der kommer fra automatiseret opdagelse eller ITSM-arbejdsprocesser.

DatakategoriAnbefalet retningBegrundelse
Navne, visningsetiketterTurbo lederEA-team kurerer autoritative, rene navne — CMDB-navne er ofte auto-genererede eller inkonsistente
BeskrivelseTurbo lederEA-beskrivelser fanger strategisk kontekst, forretningsværdi og arkitektonisk betydning
Forretningskritikalitet (TIME-model)Turbo lederKerne-EA-vurdering — ikke operationelle data
Funktionel/teknisk egnethedTurbo lederEA-specifik scoring og roadmap-klassifikation
Livscyklus (alle faser)Turbo lederPlan, phaseIn, active, phaseOut, endOfLife er alle EA-planlægningsbeslutninger
OmkostningsdataTurbo lederEA sporer total ejerskabsomkostning og budgetallokering
Hostingtype, klassifikationTurbo lederStrategisk kategorisering vedligeholdt af arkitekter
Leverandør/udbyder-infoTurbo lederEA administrerer leverandørstrategi, kontrakter og risiko — SNOW kan have et leverandørnavn, men EA ejer relationen
Tekniske metadata (OS, IP, værtsnavn)SNOW lederAutomatiserede opdagelsesdata — EA vedligeholder ikke dette
SLA-mål, tilgængelighedsmetrikkerSNOW lederOperationelle data fra ITSM-arbejdsprocesser
Installationsstatus, operationel tilstandSNOW lederCMDB sporer, om en CI er installeret, udfaset osv.
Tildelingsgruppe, supportteamSNOW lederOperationelt ejerskab administreret i ServiceNow
Opdagelses-metadata (først/sidst set)SNOW lederCMDB-automatiseringstidsstempler

Spring staging over — hvornår skal det bruges

Som standard følger pull-synkroniseringer en stage-then-apply-arbejdsproces:

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

Poster skrives til en staging-tabel, så du kan gennemgå, hvad der vil ændre sig, før du anvender. Dette er synligt i Sync Dashboard under "View staged records."

Spring staging over-tilstand

Når du aktiverer Spring staging over på en mapping, anvendes poster direkte:

Fetch -> Match -> Transform -> Diff -> APPLY DIRECTLY

Ingen staged poster oprettes — ændringer sker øjeblikkeligt.

Staging (standard)Spring staging over
GennemgangstrinJa — inspicér diffs før anvendelseNej — ændringer anvendes øjeblikkeligt
Staged poster-tabelUdfyldt med create/update/delete-posterIkke udfyldt
RevisionssporStaged poster + hændelseshistorikKun hændelseshistorik
YdeevneLidt langsommere (skriver staging-rækker)Lidt hurtigere
FortrydKan afbryde før anvendelseSkal omgøres manuelt

Hvornår skal hver bruges

ScenarieAnbefaling
FørstegangsimportBrug staging — Gennemgå, hvad der oprettes før anvendelse
Ny eller ændret mappingBrug staging — Verificér, at felttransformationer producerer korrekt output
Stabil, velafprøvet mappingSpring staging over — Ingen grund til at gennemgå hver kørsel
Automatiserede daglige synkroniseringer (cron)Spring staging over — Uovervågede kørsler kan ikke vente på gennemgang
Stor CMDB (10.000+ CI'er)Spring staging over — Undgår at oprette tusindvis af staging-rækker
Compliance-følsomt miljøBrug staging — Vedligehold fuldt revisionsspor i staging-tabel

Bedste praksis: Start med staging aktiveret til dine første flere synkroniseringer. Når du er sikker på, at mappingen producerer korrekte resultater, så aktivér spring staging over for automatiserede kørsler.


Synkroniseringstilstande og sletningssikkerhed

Synkroniseringstilstande

TilstandOpretterOpdatererSletterBedst til
AdditivJaJaAldrigIndledende imports, lav-risiko-miljøer
ConservativeJaJaKun kort oprettet af synkroniseringStandard for løbende synkroniseringer
StrictJaJaAlle tilknyttede kortFuld spejling af CMDB

Additiv fjerner aldrig kort fra Canopy, hvilket gør den til den sikreste mulighed for førstegangsimporter og miljøer, hvor Canopy indeholder kort, der ikke findes i ServiceNow (manuelt oprettede kort, kort fra andre kilder).

Conservative (standard) sporer, om hvert kort oprindeligt blev oprettet af synkroniseringsmotoren. Kun disse kort kan auto-arkiveres, hvis de forsvinder fra ServiceNow. Kort, der er oprettet manuelt i Canopy eller importeret fra andre kilder, røres aldrig.

Strict arkiverer ethvert tilknyttet kort, hvis tilsvarende ServiceNow CI ikke længere vises i forespørgselsresultaterne, uanset hvem der oprettede det. Brug kun dette, når ServiceNow er den absolutte kilde til sandhed, og du vil have Canopy til at spejle den nøjagtigt.

Maks. sletningsforhold — sikkerhedsnet

Som et sikkerhedsnet springer motoren alle sletninger over, hvis antallet overstiger det konfigurerede forhold:

deletions / total_linked > max_deletion_ratio -> SKIP ALL DELETIONS

Eksempel med 10 tilknyttede poster og 50%-tærskel:

ScenarieSletningerForholdResultat
3 CI'er fjernet normalt3 / 10 = 30%Under tærskelSletninger fortsætter
6 CI'er fjernet på én gang6 / 10 = 60%Over tærskelAlle sletninger springes over
SNOW returnerer tom (driftafbrydelse)10 / 10 = 100%Over tærskelAlle sletninger springes over

Dette forhindrer katastrofalt datatab fra filterforespørgselsændringer, midlertidige ServiceNow-driftafbrydelser eller fejlkonfigurerede tabelnavne.

Bedste praksis: Hold sletningsforholdet på 50% eller lavere for tabeller med færre end 100 poster. For store tabeller (1.000+) kan du sikkert sætte det til 25%.

Anbefalet progression

Week 1: ADDITIVE mode, staging ON, run manually, review every record
Week 2-4: CONSERVATIVE mode, staging ON, run daily, spot-check results
Month 2+: CONSERVATIVE mode, staging OFF (skip), automated daily cron

Anbefalede opskrifter efter type

Opskrift 1: Applikationer fra CMDB (mest almindelige)

Mål: Importér applikationslandskabet fra ServiceNow, og tag derefter ejerskab af navne, beskrivelser, vurderinger og livscyklus i Canopy. SNOW leder kun operationelle felter.

Mapping:

IndstillingVærdi
KorttypeApplication
SNOW-tabelcmdb_ci_business_app
RetningTovejs
TilstandConservative
Filteractive=true^install_status=1

Feltmappings:

Canopy-feltSNOW-feltRetningTransformerID?
namenameTurbo lederDirectJa
descriptionshort_descriptionTurbo lederDirect
lifecycle.activego_live_dateTurbo lederDate
lifecycle.endOfLiferetirement_dateTurbo lederDate
attributes.businessCriticalitybusines_criticalityTurbo lederValue Map
attributes.hostingTypehosting_typeTurbo lederDirect
attributes.installStatusinstall_statusSNOW lederDirect
attributes.ipAddressip_addressSNOW lederDirect

Value map-konfiguration for businessCriticality:

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

Tip til første synkronisering: Ved den allerførste pull udfylder SNOW-værdier alle felter (da kort ikke eksisterer endnu). Derefter ejes Turbo-leder-felter af EA-teamet — efterfølgende pulls opdaterer kun de operationelle SNOW-leder-felter (installationsstatus, IP), mens EA-teamet administrerer alt andet direkte i Canopy.

Efter import: Forfin applikationsnavne, skriv strategiske beskrivelser, map til Business Capabilities, tilføj funktionelle/tekniske egnethedsvurderinger og indstil livscyklusfaser — alt dette ejes nu af Canopy og vil blive pushet tilbage til ServiceNow ved push-synkroniseringer.


Opskrift 2: IT-komponenter (servere)

Mål: Importér serverinfrastruktur til infrastrukturkortlægning og afhængighedsanalyse. Servere er mere operationelle end applikationer, så flere felter kommer fra SNOW — men Canopy leder stadig navne og beskrivelser.

Mapping:

IndstillingVærdi
KorttypeITComponent
SNOW-tabelcmdb_ci_server
RetningTovejs
TilstandConservative
Filteractive=true^hardware_statusNOT IN6,7

Feltmappings:

Canopy-feltSNOW-feltRetningTransformerID?
namenameTurbo lederDirectJa
descriptionshort_descriptionTurbo lederDirect
attributes.manufacturermanufacturer.nameTurbo lederDirect
attributes.operatingSystemosSNOW lederDirect
attributes.ipAddressip_addressSNOW lederDirect
attributes.serialNumberserial_numberSNOW lederDirect
attributes.hostnamehost_nameSNOW lederDirect

Bemærk: For servere kommer operationelle/opdagelsesfelter som OS, IP, serienummer og værtsnavn naturligt fra SNOW's automatiserede opdagelse. Men EA-teamet ejer stadig visningsnavnet (som kan adskille sig fra værtsnavnet) og beskrivelse for strategisk kontekst.

Efter import: Tilknyt IT-komponenter til Applications ved hjælp af relationer, hvilket fødes ind i afhængighedsgrafen og infrastrukturrapporter.


Opskrift 3: Softwareprodukter med EOL-sporing

Mål: Importér softwareprodukter og kombiner med Canopy's endoflife.date-integration. Canopy leder navne, beskrivelser og leverandør — version er et faktuelt felt, som SNOW kan lede.

Mapping:

IndstillingVærdi
KorttypeITComponent
SNOW-tabelcmdb_ci_spkg
RetningTovejs
TilstandConservative
Filteractive=true

Feltmappings:

Canopy-feltSNOW-feltRetningTransformerID?
namenameTurbo lederDirectJa
descriptionshort_descriptionTurbo lederDirect
attributes.versionversionSNOW lederDirect
attributes.vendormanufacturer.nameTurbo lederDirect

Efter import: Gå til Admin > EOL og brug Massesøgning til automatisk at matche importerede IT-komponenter mod endoflife.date-produkter. Dette giver dig automatiseret EOL-risikosporing, der kombinerer CMDB-lager med offentlige livscyklusdata.


Opskrift 4: Leverandører/Udbydere (tovejs)

Mål: Hold leverandørregistret synkroniseret. Canopy ejer leverandørnavne, beskrivelser og strategisk kontekst. SNOW supplerer med operationelle kontaktdata.

Mapping:

IndstillingVærdi
KorttypeProvider
SNOW-tabelcore_company
RetningTovejs
TilstandAdditiv
Filtervendor=true

Feltmappings:

Canopy-feltSNOW-feltRetningTransformerID?
namenameTurbo lederDirectJa
descriptionnotesTurbo lederDirect
attributes.websitewebsiteTurbo lederDirect
attributes.contactEmailemailSNOW lederDirect

Hvorfor Turbo leder de fleste felter: EA-teamet kurerer leverandørstrategi, administrerer relationer og sporer risiko — dette inkluderer leverandørens visningsnavn, beskrivelse og webtilstedeværelse. SNOW leder kun operationelle kontaktdata, der kan opdateres af indkøbs- eller asset management-teams.


Opskrift 5: Push EA-vurderinger tilbage til ServiceNow

Mål: Eksportér EA-specifikke vurderinger til ServiceNow brugerdefinerede felter, så ITSM-teams kan se EA-kontekst.

Mapping:

IndstillingVærdi
KorttypeApplication
SNOW-tabelcmdb_ci_business_app
RetningCanopy -> ServiceNow
TilstandAdditiv

Feltmappings:

Canopy-feltSNOW-feltRetningTransformerID?
namenameSNOW lederDirectJa
attributes.businessCriticalityu_ea_business_criticalityTurbo lederValue Map
attributes.functionalSuitabilityu_ea_functional_fitTurbo lederValue Map
attributes.technicalSuitabilityu_ea_technical_fitTurbo lederValue Map

Vigtigt: Push-synkronisering til brugerdefinerede felter (præfikset med u_) kræver, at disse kolonner allerede eksisterer i ServiceNow. Arbejd med din ServiceNow-admin for at oprette dem, før du konfigurerer push-mappingen. Servicekontoen har brug for import_admin-rollen til skriveadgang.

Hvorfor dette betyder noget: ITSM-teams ser EA-vurderinger direkte i ServiceNow incident/change-arbejdsprocesser. Når en "Mission Critical"-applikation har en hændelse, kan prioritetseskaleringsregler bruge den EA-leverede kritikalitetsscore.


Transformertyper-reference

Direct (standard)

Send værdien igennem uændret. Brug til tekstfelter, der har det samme format i begge systemer.

Value Map

Oversætter opregnede værdier mellem systemer. Konfigurér med en JSON-mapping:

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

Mappingen vendes automatisk om, når der pushes fra Canopy til ServiceNow. For eksempel under push bliver "missionCritical" til "1".

Date Format

Trunkerer ServiceNow datetime-værdier (2024-06-15 14:30:00) til kun-dato (2024-06-15). Brug til livscyklusfase-datoer, hvor tidspunkt er irrelevant.

Boolean

Konverterer mellem ServiceNow streng-booleans ("true", "1", "yes") og native booleans. Nyttig for felter som "is_virtual", "active" osv.


Sikkerheds-bedste praksisser

Legitimationsoplysningshåndtering

PraksisDetaljer
Kryptering i hvileAlle legitimationsoplysninger krypteret via Fernet (AES-128-CBC) udledt fra SECRET_KEY. Hvis du roterer SECRET_KEY, skal du genindtaste alle ServiceNow-legitimationsoplysninger.
Mindst privilegiumOpret en dedikeret SNOW-servicekonto med skrivebeskyttet adgang til specifikke tabeller. Tildel kun skriveadgang, hvis du bruger push-synkronisering.
OAuth 2.0 foretrukketBasic Auth sender legitimationsoplysninger ved hvert API-kald. OAuth bruger kortlivede tokens med scope-begrænsninger.
LegitimationsoplysningsrotationRotér adgangskoder eller client secrets hver 90. dag.

Netværkssikkerhed

PraksisDetaljer
HTTPS påkrævetHTTP-URL'er afvises ved valideringstidspunktet. Alle forbindelser skal bruge HTTPS.
Tabelnavn-valideringTabelnavne valideret mod ^[a-zA-Z0-9_]+$ for at forhindre injection.
sys_id-valideringsys_id-værdier valideret som 32-tegns hex-strenge.
IP-tilladelseslisteKonfigurér ServiceNow IP Access Control til kun at tillade din Canopy-servers IP.

Adgangskontrol

PraksisDetaljer
RBAC-bevogtetSkrivebeskyttede ServiceNow-endpoints kræver servicenow.view-tilladelse; alle ændringer kræver servicenow.manage.
RevisionssporAlle synkroniserings-oprettede ændringer publicerer hændelser med source: "servicenow_sync", synlige i korthistorik.
Ingen legitimationsoplysnings-eksponeringAdgangskoder og hemmeligheder returneres aldrig i API-svar.

Produktions-tjekliste

  • Dedikeret ServiceNow-servicekonto (ikke en personlig konto)
  • OAuth 2.0 med client credentials grant
  • Legitimationsoplysnings-rotationsplan (hver 90. dag)
  • Servicekonto begrænset til kun mappede tabeller
  • ServiceNow IP-tilladelsesliste konfigureret til Canopy-server-IP
  • Maks. sletningsforhold sat til 50% eller lavere
  • Synkroniseringskørsler overvåget for usædvanlige fejl- eller sletningstællinger
  • Filterforespørgsler inkluderer active=true som minimum

Operationel driftsbog

Indledende opsætningssekvens

1. Create ServiceNow service account with minimum required roles
2. Verify network connectivity (can Canopy reach SNOW over HTTPS?)
3. Create connection in Canopy and test it
4. Verify metamodel types have all fields you want to sync
5. Create first mapping with ADDITIVE mode, staging ON
6. Use the Preview button (via API) to verify mapping produces correct output
7. Run first pull sync — review staged records in the Sync Dashboard
8. Apply staged records
9. Verify imported cards in the Inventory
10. Adjust field mappings if needed, re-run
11. Switch mapping to CONSERVATIVE mode for ongoing use
12. After several successful runs, enable Skip Staging for automation

Løbende operationer

OpgaveHyppighedHvordan
Kør pull-synkroniseringDagligt eller ugentligtSync Dashboard > Pull-knap (eller cron)
Gennemgå synkroniseringsstatistikEfter hver kørselTjek fejl-/sletningstællinger
Test forbindelserMånedligtKlik på test-knappen på hver forbindelse
Rotér legitimationsoplysningerKvartalsvisOpdater i både SNOW og Canopy
Gennemgå identitetskortKvartalsvisTjek forældreløse poster via synkroniseringsstatistik
Auditér korthistorikEfter behovFiltrer hændelser efter servicenow_sync-kilde

Opsætning af automatiserede synkroniseringer

Synkroniseringer kan udløses via API til automatisering:

# Daily pull sync at 2:00 AM
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

Bedste praksis: Kør synkroniseringer i ikke-spidstider. For store CMDB-tabeller (10.000+ CI'er) skal du forvente 2-5 minutter afhængigt af netværkslatens og posttælling.

Kapacitetsplanlægning

CMDB-størrelseForventet varighedAnbefaling
< 500 CI'er< 30 sekunderSynkronisér dagligt, staging valgfri
500-5.000 CI'er30s - 2 minutterSynkronisér dagligt, spring staging over
5.000-20.000 CI'er2-5 minutterSynkronisér natligt, spring staging over
20.000+ CI'er5-15 minutterSynkronisér ugentligt, brug filterforespørgsler til at opdele

Fejlfinding

Forbindelsesproblemer

SymptomÅrsagLøsning
Connection failed: [SSL]Selvsigneret eller udløbet certifikatSørg for, at SNOW bruger et gyldigt offentligt CA-certifikat
HTTP 401: UnauthorizedForkerte legitimationsoplysningerGenindtast brugernavn/adgangskode; tjek at kontoen ikke er låst
HTTP 403: ForbiddenUtilstrækkelige rollerTildel itil og cmdb_read til servicekontoen
Connection failed: timed outFirewall-blokeringTjek regler; tilføj Canopy's IP til tilladelsesliste i SNOW
Test OK, men synkronisering fejlerTabel-niveau-tilladelserTildel læseadgang til den specifikke CMDB-tabel

Synkroniseringsproblemer

SymptomÅrsagLøsning
0 poster hentetForkert tabel eller filterBekræft tabelnavn; forenkl filterforespørgsel
Alle poster er "create"IdentitetsmisforholdMarkér name som identitet; bekræft, at navne matcher mellem systemer
Høj fejltællingTransformerfejlTjek staged poster for fejlmeddelelser
Sletninger springet overForhold overskredetForhøj tærsklen eller undersøg, hvorfor CI'er forsvandt
Ændringer ikke synligeBrowser-cacheHård-opdater; tjek korthistorik for hændelser
DuplikatkortFlere mappings for samme typeBrug én mapping pr. korttype pr. forbindelse
Push-ændringer afvistManglende SNOW-tilladelserTildel import_admin-rolle til servicekonto

Diagnostiske værktøjer

# Preview how records will map (5 samples, no side effects)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Browse tables on the SNOW instance
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Inspect columns for a table
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Filter staged records by action or status
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

API-reference (hurtig)

Alle endpoints kræver Authorization: Bearer <token>. Skrivebeskyttede endpoints kræver servicenow.view-tilladelse; ændrende endpoints kræver servicenow.manage. Basissti: /api/v1.

Forbindelser

MetodeStiBeskrivelse
GET/servicenow/connectionsList forbindelser
POST/servicenow/connectionsOpret forbindelse
GET/servicenow/connections/{id}Hent forbindelse
PATCH/servicenow/connections/{id}Opdater forbindelse
DELETE/servicenow/connections/{id}Slet forbindelse + alle mappings
POST/servicenow/connections/{id}/testTest forbindelse
GET/servicenow/connections/{id}/tablesBrowse SNOW-tabeller
GET/servicenow/connections/{id}/tables/{table}/fieldsList tabelkolonner

Mappings

MetodeStiBeskrivelse
GET/servicenow/mappingsList mappings med feltmappings
POST/servicenow/mappingsOpret mapping med feltmappings
GET/servicenow/mappings/{id}Hent mapping med feltmappings
PATCH/servicenow/mappings/{id}Opdater mapping (erstatter felter, hvis angivet)
DELETE/servicenow/mappings/{id}Slet mapping
POST/servicenow/mappings/{id}/previewDry-run-forhåndsvisning (5 eksempelposter)

Synkroniseringsoperationer

MetodeStiBeskrivelse
POST/servicenow/sync/pull/{mapping_id}Pull-synkronisering (?auto_apply=true standard)
POST/servicenow/sync/push/{mapping_id}Push-synkronisering
GET/servicenow/sync/runsList synkroniseringshistorik (?limit=20)
GET/servicenow/sync/runs/{id}Hent kørselsdetaljer + statistik
GET/servicenow/sync/runs/{id}/stagedList staged poster for en kørsel
POST/servicenow/sync/runs/{id}/applyAnvend afventende staged poster