mcastoe
ServiceNow Employee
ServiceNow Employee

Technology Portfolio Management (TPM) is ServiceNow’s Application Portfolio Management facility that allows Enterprise Application teams to align the technology components that make up these systems and understand/visualize the manufacturer / publisher support lifecycles in order to understand Technology Obsolescence risks.

 

In the May '23 Store release, the APM team here at ServiceNow has released a brand new TPM facility and process.  The new TPM is shown in the new Enterprise Architecture Workspace and will be our direction for technology alignment and obsolescence risks management going forward.

 

IMPORTANT NOTE: 

Starting with the Xanadu release, the legacy Technology Portfolio Management module has been deprecated from Enterprise Architecture (formerly Application Portfolio Management). However, if you’re an existing user of Enterprise Architecture (formerly Application Portfolio Management), you can still use the legacy Technology Portfolio Management module. If you’re a new activation user, the legacy Technology Portfolio Management module isn’t available.

You can leverage similar functionality by using the Technology Portfolio Management store application within the Enterprise Architecture Workspace

 

The following links are recordings of workshops we here at ServiceNow have held to introduce the concepts and detail how Technology Portfolio Management works.

 

Get started with EA – Technical Portfolio Management

Workshop Deck (pdf format) is attached below

 

This post is meant to provide information beyond the product docs on details of TPM implementation for either the legacy TPM or the new TPM.

Implementing the new TPM in EA Workspace

The new Technology Portfolio Management feature of APM is being delivered via a ServiceNow Store application.  

  • From the ServiceNow Store request and activate the following Plugins:
    • Application Portfolio Management Enterprise Architecture Workspace
    • Technology Portfolio Management

Once installed, the new TPM Data model will be available:

mcastoe_4-1687289353525.png

 

Align Technologies

Within the new TPM, you may align technologies using the action from a Business Application record form in EA Workspace or, better yet, schedule the Populate TPM Discovered Technologies and Lifecycles scheduled job.

 

Technology Alignment Process detail

The general process is as follows for each Business Application:

  1. query and fetch the Consumes::Consumed by Application Services.  NOTE: must be an Application Service (not a Service [cmdb_ci_service]) and these Application Service must be "mapped".   That does not imply that you must have a full Top-Down Discovery Service Map defined although that is great if you do.  You may also Calculated, Dynamic CI Group, Manual (manually added entry points), or Tagged based.  The key is that Service Configuration Item Association [svc_ci_assoc] is populated for each Application Service and its Computers.
  2.  For each Computer identified in svc_ci_assoc, evaluate the Software Installation table records.  Also, if a Hardware Model is associated, we create a Hardware type TPM Discovered Technology record.
  3. For each Software Install, evaluate the reference Software Discovery Model.  The Software Discovery Model(s) must be of a Product type Licensable or Unknown and they must ne normalized or manually normalized to get any appropriate information.  NOTE: see the section at teh bottom of this article, you are now able to have good control over the selection of  Software Discovery Models!
  4. For each valid Discovery Model, the job creates a new or updates a TPM Discovered Technology record.
  5. The creation of the TPM Discovered Technology record triggers the creation of an associated TPM Technology Lifecycles record which queries and caches the lifecycle information for the hardware or software technology.

Process Flow diagram (see attachments for a downloadable version)
New TPM Lifecycle Process.png

For successful software alignment records, you must have the following tables populated:

  • Business Application [cmdb_ci_business_app]
  • CI Relationship [cmdb_rel_ci] - Consumes::Consumed by
  • Application Service [cmdb_ci_service_auto, discovered, calculated, query_based, tag_based, manual]
  • Service CI ASsociation [svc_ci_assoc] - note: only table used to find App Service
  • Computers/Hardware Computer [cmdb_ci_computer]
  • Software Installation [cmdb_sam_sw_install]
  • Software Discovery Model [cmdb_sam_sw_discovery_model]
  • Software Product [samp_sw_product]
  • Software Product Lifecycle [sam_sw_product_lifecycle]

Hardware requires the Hardware Model reference on the Computer be populated.

 

Example setup of a demo or proof of concept data set

If you wanted to try this out in a system that did not yet have full Discovery, SAMP Pro etc here are steps (assumes you have full admin rights including security admin because you will have to change some acls):

  1. Create Software product(s)
  2. Create Software Product Lifecycles for above Software product
  3. Create or use an existing Business Application
  4. Create or use an existing Application Service associated to the Business App by a Consumes::Consumed by relationship and the Server(s) below must be "mapped" and showing in the svc_ci_assoc table.
  5. Create or select an existing Server.  Could be Windows, Unix, Linux etc. (note, you will have to have proper privileges) 
  6. From the Server(s) create Software Installation records for the Software Products you created.
  7. Create (should auto-create) Software Discovery Model record(s) for the Software Install records and insure they are normalized either auto or manually.  Also, the Discovery Model must have Product Type equal to Licensable or Unknown.

You now have a path from Business Application -> App Service -> Server -> Software Install -> Software Discovery Model (normalized Software) by which the TPM analysis can create the proper TPM records.  Launch TPM from either your Business Application or better, via the Scheduled Job.

 

Running the alignment Job on an individual Business Application

In EA Workspace, open a Business Application record and in the top right, click the ellipsis and select Update TPM Data.

mcastoe_5-1687289353529.png

 



This will launch a job/process for only this particular Business Application.

mcastoe_6-1687289353533.png

 


If the process is already running, you will see a warning that only one instance of the process can run at a time and you will have to try later.

mcastoe_7-1687289353538.png



You can examine the results in by navigating to the EA Workspace home, selecting Technology Portfolio in the Insights section and then click the View all technology lifecycle risks and filter the list to just the application(s) you are interested in.

mcastoe_8-1687289353545.png

 

 

mcastoe_9-1687289353574.png

 

 

Schedule or Launch the TPM Scheduled Job

The Populate TPM Discovered Technologies and Lifecycles job will analyze all business applications.  To configure the TPM scheduled job:

  1. Navigate to System Definition > Scheduled Jobs
  2. Locate the Populate TPM Discovered Technologies and Lifecycles job.
  3. Open the record and set a schedule OR, launch the job manually.
    mcastoe_16-1687289940005.png

     



You can track the progress of TPM analysis by examining the TPM Discovered Technology Run Log table.  Each time the analysis is run, an entry is added to this table.   Navigate to EA Workspace and click the Portfolios section on the far left.   In the list of views, locate the Technology Portfolio Management section and click the Logs link. 

mcastoe_17-1687289968682.png


The list view for the table will be shown.  Note that if the process is launched from a Business Application, then the Business Application will be shown.  If the job is run on schedule, nothing is shown in the Business Application column since it is run against all business applications.

 

Understanding potential discovery

Both the original and new TPM analysis allow for semi(original) and full automated (new TPM) discovery of technologies.  The model for this discovery depends on

  • Associated/Aligned Application Services
  • Application Services are mapped (top-down, tag-based, dynamic etc.)
  • Discovery + ITAM (SAM and HAM Pro)
  • SAM/HAM Pro

mcastoe_18-1687290021308.png

mcastoe_19-1687290030611.png

 

The common denominator is that:

  • Application Services are mapped to Servers
  • Servers have application SW installation info
  • SW Installation are normalized in Software Discovery Models

 

A Database view can be derived that allows you to “preview” this discovery.  The example Database view below can be used to identify those discovery candidates.

mcastoe_20-1687290091123.png

For the legacy TPM Fetch Models, CMDB Query Builder as shown below can be used to identify potential software identification where CI Relationships are in use and the Application Services are not Mapped Application Services [cmdb_ci_service_discovered].  In this query, we allow the relationship between Application Service and Computer to be any relationship type so this support Depends on as well as Runs on. 

mcastoe_21-1687290134150.png

 



Showing Software Product Lifecycles and how to debug

One of the issues we have seen are cases where using the legacy TPM and possibly even with the new TPM, lifecycles are not show for the associated technology.  This can occur because the TPM system must execute a query to identify the lifecycles.   In both old and new TPM, the query uses the Publisher, Software Product, Version. Edition and Full Version to try and identify a set of lifecycles.

The issues causing missing lifecycles can vary but understanding how lifecycles are queried can help.

 

 

Original TPM

 

New TPM

Uses Software Model to represent a “version” of Software Product

 

Does not use Software Mode but instead expects to find the Publisher, Product, Version, Edition and full version on the Software Discovery Model record

SW Models can be “version-less” or version agnostic therefore all you get is the Publisher and Product.  You MUST have a full version specified to find a lifecycle.

 

Less likely that the Discovery model will be missing a version unless it has not been normalized.

Even with a full version, there may be no exact matching lifecycles.  The SAM API tries to resolve this heuristically to find a best fit match.

 

New TPM captures a TPM audit log record for cases where the heuristic is used to find a lifecycle.

You may have to add new Software Models to represent Software not found in the SAM content library.

 

A later release of new TPM will include means to support addition of manually entered software and lifecycles.

 

Creating Minimum Viable Application Services

As you may notice, it is critcal that you have Application Services and they are mapped to at least servers.   In order for our TPM facilities to do their job in an automated manner, we require the Application Services to be "mapped".  Specifically they are "configured" or managed in such a way that the Service Configuration Item Associations [svc_ci_assoc] table is populated.  

Please see the following article for more information: 

Creating Minimum viable Application Services to support Technology Portfolio Management (TPM)

 

Controlling the Software Discovery Models selected by TPM

The out of the box filtering can be updated and controlled.   Instances on Vancouver or above can update to version 14.0+.   

With that version, the system property, sn_apm_tpm.softwareDiscoveryModelProductFilterForTPM, can be supplied with an encoded query that will allow you to control which software discovery models are selected for TPM.   See the docs here, Filter software results using an encoded query in TPM, and it describes the process.

In prior versions of TPM, you could access and update the system property, sn_apm.discoveryModelProductTypesForTPMSuggestions,  to include  “not licensable” but the downside of this approach is that you will likely get a large number of generally useless detail content such as “Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.40660 12.0.40660.0”.  The new version 14.0 encoded query allows better control.

 

Creating Risk score for use in EA Workspace Rationalization

EA Workspace and our new TPM includes a new technology risk indicator for use in rationalization of applications.  to enable risk calculations and creation of the risk indicator scores, be sure to enable the Populate Technology Lifecycle Risks scheduled job.  this will populate the Technology Lifecycle Risk indicator.

Risk Score calculation

For each Business Application

  • For each App Service
    • For each Discovered Technology record
      If no “Earliest” lifecycle date return maximum risk, 100, for the technology
      Else
      Calculate a value from 0 (no risk because no EOS/EOES/EOL lifecycle in next 540 days)
      to maximum of 100 (imminent risk) for each technology
  • Sum the individual technology risk scores and “set” the App Server risk as sum of its technology risk scores
  • Sum the Application Service risk scores and set the Business Application risk score as sum of its Application Service technology risk scores

 

When calculating individual technology risk, the number of days from the current date to the earliest risk date (i.e. End of Support (EOS), End of Extended Support (EOES), End of Life (EOL)) is determined. 

Depending on what date is earliest, EOS/EOES/EOL, there is a multiplier assigned such that the multiplier is:
EOS = 2
EOES = 3
EOL = 4

 

If the earliest date is sometime after today then the following calculation are used

  • Earliest date is less than or equal to 30 days: risk = multiplier * 20
  • Earliest date is less than or equal to 90 days: risk = multiplier * 10
  • Earliest date is less than or equal to 180 days: risk = multiplier * 6
  • Earliest date is less than or equal to 360 days: risk = multiplier * 4
  • Earliest date is less than or equal to 540 days: risk = multiplier * 2

If the earliest date has already past (i.e. EOS is past)

  • The next risk date is EOES and it is not past, then the multiplier is 3 and above day range calculations apply
  • If EOES has past and EOL is the next date, then the multiplier is 4 and above day range calculations apply
  • If EOL has past, the maximum risk, 100, is returned

For each Business Application, as well as the technology risk scores are all recorded in the TPM Technology Risks table [sn_apm_tpm_technology_risk].

From this table, the Indicator, Technology Lifecycle Risk, will calculate the indicator score using the values for each business application.  To make it all run smoothly, the TPM Technology Risks must be calculated each month (i.e. run the job).  As the indicator expects to capture risk indicators monthly.   

 

_______________________________________________________________________________________________________

Implementing TPM (legacy, see deprecation note above)

The legacy TPM is fairly well documented in Mark Bodman’s original article:

Technology Portfolio Management made easy

For installation, it is installed upon activation of the APM plugin so if you install APM, you have TPM.

Once it is installed the following data model is utilized:

mcastoe_0-1687289353461.png

Simply put, the Software / Hardware Model represents a “version” of the particular product in use by the Application Service (deployment of a Business Application).

 

Manage Technology Models

The legacy TPM includes a means to utilize the information gathered and coordinated by Discovery – Software Asset Management – Service Mapping to semi-automate the determination of the software and hardware alignment of traditional and even cloud deployed applications. 

Steps:

  1. Open a business application OR right click on a business application in All Business Application list view and click Manage Technology Models.
  2. On the Application Services list that is opened, right click the designed Application Service and select Fetch Product Models.

    mcastoe_1-1687289353475.png

     


    Choose the appropriate options, specifically Hardware only or both Software and Hardware.  The Force check option governs if the process will rerun prior analysis.  It will "crawl" all of the application service associated hardware. 

    mcastoe_2-1687289353482.png

     



  3. Once complete, open the Application Service and in the Retrieved Software Models tab, select the applicable Software Models and then select Associate Software Models to create Application Service Software Model records.
    mcastoe_3-1687289353511.png

     

Note that Software Models can be manually aligned to the Application Service by creating records in the Application Service Software Models related list.

 

Comments
Derrick-FMR
Tera Contributor

This may be just a general TPM question, but...  In the new TPM will the open source community get some love with regard to lifecycle dates or is it going to continue to be more focused on the licensed software?

mcastoe
ServiceNow Employee
ServiceNow Employee

 

TPM relies upon "content" from Software Asset Management, TPM does not supply that content but instead is associating the constituent Software technologies to your Application Services and therefore Business Application.  If you are licensed for ServiceNow's Software Asset Management Pro (SAM Pro) product, you will find that it does supply content such as lifecycles for many of open source products.  Whether you have SAM Pro or not, you are always able to add your own Software Content to the Software Product, Lifecycles and Model tables.

nenkoneychev
Tera Guru

@mcastoe Thanks for the topic this should be in the documentation!!! i have tried it manually with the steps and it works for Computers but doesnt seems to work for  Server . Are there any known limitations ? 

Jacques Clement
Kilo Sage
Kilo Sage

Thank you for this article, very useful. How does it work when the software is inside a container, as opposed to a server. Does it need to be modelled a certain way?

Mel Saligumba3
Tera Contributor

Thanks for this update Mark - it appears that the version TPM 1.4.0 requires a an application repair if it was originally installed as part of the APM plugin and not from the store.   Thought I'd share to save time for folks debugging why jobs don't run with missing tables.

fibssy
Tera Guru

@Mel Saligumba3 : Thanks for sharing. What are the effects if I upgrade to 1.4.0 without Repairing?

Mel Saligumba3
Tera Contributor

In our case we upgraded EA Workspace to 3.1 where the new TPM moved to in Xanadu.    

 

At the very least, the scheduled job "Populate TPM Discovered Technologies and Lifecycles"  went missing.  

AMITS2238191374
Tera Contributor

this is an awesome post Mark, while at one of my client, I have already implemented TPM/TRM and have nicely lit up, I am still struggling to get Lifecycle TimeLines Gantt with TPM/TRM Upcoming Risk column populated, as it still showing NOT ASSESSED, even after running Risk jobs and what not..:(

 

if anyone has incurred the same, or have come across please share.

 

regards,

AMITS2238191374
Tera Contributor

Probably shared my query too soon, but I am now able to populate that Lifecycle Timelines Column on TPM, and as well on TRM, only thing for TRM is that it asks for two manual routes 1) have the TRM product created and then 2) Lifecycle Request also to be created for exact Models/Product an Application is using.

 

what if, running Tech. risks population would automatically generate TRM Requests for PRODUCTION apps and its dependent CIs ?

girishs
Tera Explorer

Thanks @mcastoe of this well documented and detailed article, especially with the steps to call out the flow of this module and its latest TRM data model! It takes a lot for brownfield implementation of this depending on the maturity of the organization in stance of APM, TRM and TPM along with CMDB/CSDM. But certainly, a great way to adopt the greenfield implementation of it quite smoothly. One small feedback or question which you can help us while we are implementing this for a brownfield implementation. 

  1. How are customers expected to create 'TRM Product Lifecycle's across all the technologies (imagine 1000's of TRM Products) already in the system and being discovered? Do they have to manually load them from SAM Pro (using content).
  2. As a continuation to the first question, even if we do so as a one-time load with some calculations from content (assuming using SAM Pro), how are the TRM Product Lifecycles planned to be maintained for newer versions from content coming in as BAU until the life of such software/hardware product? Manual intake through workspace or any process around it would be more tedious?
  3. Lastly, though technical debt/risk are indicated on the workspace, if organizations want an ability to report on them along with lifecycle attributes (coming in from content or TRM lifecycle tables), we don’t say any easy way to report them from workspace unless we create DB view from backend. Is this something in the product roadmap?
mcastoe
ServiceNow Employee
ServiceNow Employee

Hi @girishs ,

 

glad the article has helped.  Here are some answers to your questions.

  1. I've advised customer to build a one-time or perhaps occasional script that loads the TRM based upon the Software Discovery Models (or Software Models perhaps).  I discuss the algorithm in this post, 

    Manage Software Technology Standards with APM's Technology Reference Model (TRM)

    I'm hopeful we will eventually have something in the product.
  2. At the moment, we leave that growth and maintenance to the customer implementation.  There are a couple approaches.  First, when a version shows up in SW Discovery Model, you will get a tech debt if there is no match for the Software and version in TRM, you can automate that with a flow and create a placeholder, perhaps notify the TRM Product owner etc.   
    Another approach or perhaps additional process is to examine, periodically, the TRM Product's versions and any future versions not in use, go ahead and make a nominal set for the versions.

    Automate where you can do so!

  3. We have several enhancements in the backlog to help reporting.  Safe Harbor, we are hoping to see some of it in the end of the year or next spring releases.

Hope this helps.   

girishs
Tera Explorer

Thanks @mcastoe , this is quite helpful and provides insight of what current product can do and how future roadmap looks like. So, in short term, probably we have to customize (tailor) some of these missing functionalities and build and maintain for selves is the path forward.

girishs
Tera Explorer

@mcastoe ,

following up on a few more observations that we have experienced as part of our TRM (Enterprise Architecture) roll out within the Technology Lifecycle Management processes. We see some scope for enhancement to be considerate of coupling the 'Technology Retirement Process' within the overall framework. Let me elaborate on this.

 

  • In the current EA (TRM Module), there is framework built to 'Onboard a new Technology' and manage its strategic lifecycle through TRM definitions and its tie back to Software/Hardware Product Lifecycles (from SAM & HAM). Also there is tie back to Business Application/Application Services in terms of 'Technical Debt' upon using of such outdates underlying usage of technologies. But what is missing is the use case of 'How these technical debt's are to be evaluated if the Application/Application Service/Infrastructure' itself is retired ? We don’t see anything in line of 'Retirement Process' tied back to TLM?  Can you please shed some light on this , if it is taken into consideration in the roadmap?
  • Lastly the current technical debt (sn_apm_trm_standards_technical_debt) is designed to be populated as point in time generation of technical debt records but from a timeline of technology lifecycle tied to the Application lifecycle , how is it planned to keep track of such remediation activities or actions by the owners within the EA workspace (this ties back to missing the Technology Retirement process within this framework)?

 

These 2 seems to be quite important for customers to keep track of the end 2 end strategic and operational processes within a single framework and workspace from an TLM standpoint. Thoughts?

mcastoe
ServiceNow Employee
ServiceNow Employee

Hi @girishs ,

 

Safe Harbor.....  both of those callouts are being evaluated as part of the TRM roadmap.   I wrote an internal whitepaper on a more robust general technical debt management capability that focuses on tech debt driving actions.  A tech debt should be persistance and impart the source of tech debt, the impacted entities of tech debt, the mitigation/resolution.  Imagine tie-ins with ARB and Demand/SPM etc. 

 

Please be sure to join us at the Fall 2025 EA Vision Series, register below.   We will be covering roadmap

 

Enterprise Architecture Vision Series - AMS/EMEA - September 2025

Mathew Hillyard
Mega Sage

Great article @mcastoe - saves me having to all the discovery work in the application on TPM and then write an article on it!

Version history
Last update:
‎03-14-2025 08:17 AM
Updated by:
Contributors