When working in large enterprises, especially in healthcare or financial systems, knowing what you own isn’t enough.
You also need to know:
What business product does this application actually support?
This article walks through how to move from a messy CMDB in ServiceNow to a usable product-to-application mapping—so you can make safer decisions, reduce technical debt, and stop guessing.
The Problem
You’re asked a simple question:
“Can we retire this application?”
You check your CMDB:
- App exists ✅
- Owner exists (maybe outdated) ✅
- Infrastructure mapped ✅
But…
- Which product uses it? ❌
- Is it still critical? ❌
- What breaks if you remove it? ❌
Meanwhile, your architecture looks like this:
App A → DB1
App B → DB2
App C → ???
No product context. No clarity.
The Approach
Define Product Mapping
Start by explicitly mapping applications to business products.
CREATE TABLE product_app_map (
product_name STRING,
application_name STRING
);
Even a simple mapping table changes everything.
Backfill Using What You Already Know
Pull data from:
- CMDB (applications, owners)
- Business docs (products)
- Logs / usage patterns
INSERT INTO product_app_map
SELECT
'Claims Processing' AS product_name,
app_name
FROM cmdb_applications
WHERE tag = 'claims';
It won’t be perfect—but it’s a start.
Handle “Unknowns” Explicitly
You will find apps like this:
App X → Owner: Unknown → Usage: Unknown
Don’t ignore them. Flag them.
SELECT application_name
FROM product_app_map
WHERE product_name IS NULL;
These are your hidden technical debt hotspots.
Validate with Real Usage Data
Augment mapping using logs or query patterns:
def infer_product(app_logs):
if "claims" in app_logs:
return "Claims Processing"
elif "billing" in app_logs:
return "Billing"
else:
return "Unknown"
Not perfect—but better than tribal knowledge.
Enforce It in Governance
Make mapping mandatory:
if (!application.product) {
throw new Error("Application not mapped to product");
}
No mapping → no deployment, no change approval.
Why This Works
You shift from assets → context
Unknown systems become visible risks
Impact analysis becomes trivial
Instead of:
“I think this app is used somewhere…”
You get:
SELECT product_name
FROM product_app_map
WHERE application_name = 'App A';
The Payoff
Safer decommissioning
Faster incident resolution
Clear ownership and accountability
Real visibility into technical debt
Final Thought
Most enterprises don’t lack data.
They lack meaningful relationships between that data.
Your CMDB knows everything you have.
It just doesn’t know why you have it.
Top comments (0)