State of KubeCon Atlanta 2025.

Why “running service” should be part of the data model in your internal developer portal

Daniel Sinai
Daniel Sinai
October 21, 2025
Daniel Sinai
Daniel Sinai&
October 21, 2025
Why “running service” should be part of the data model in your internal developer portal
Listen to article
00:00 00:00

Introduction

We’re ambivalent. On the one hand, we would like the setup of our internal developer portal to be super quick. We want you to choose some blueprints (which represent the data model in Port), use an exporter to get the data inside, and voila - watch your software catalog come to life. On the other hand, we think it’s important to stop for a moment to think about the data model you want reflected in your internal developer portal. This post will explain why the data model matters, how it makes the software catalog better, and will do all that featuring our favorite data model blueprint: running service. 

Data models and internal developer portals 

An internal developer portal has a software catalog at its core. While you may imagine a relatively “flat” catalog with basic data - ownership, on-call, some logs, software catalogs are actually pretty rich in terms of the data they contain, and can provide significant value. They can serve as a general purpose software catalog containing all metadata and support many use cases, far beyond improving the developer experience, as we’ll show below.

But initially, they are used by developers and operations people to understand the SDLC, in context. 

Spotify’s Backstage set out to solve this very same data model problem and defined 6 kinds of data model elements for a software catalog. They are:

  • Component
  • API
  • Resource
  • System
  • Domain; and 
  • Group

Backstage’s data model is a C4 model adaptation, and covers most data model needs. But one part is missing, and this is the “running service” element. Let’s take a look at it.

{{cta_6}}

What is the running service blueprint?

While it is natural to set up blueprint elements for services and the environments they run in, the running service represents the fact that one single service is usually deployed to multiple environments at the same time. For example, a service can run in a development, staging, or production environment. If it’s a single-tenant architecture, each service is deployed in many customer environments. So if we want the software catalog to track a version of a  service in a given environment, what we want to track is the “running service” - to see a “live” version of a service running in a specific environment. It will include references to the service, environment, and deployment, as well as real-time information such as status, uptime, and any other relevant data. 

A running service entity in the software catalog

Let’s look at a specific example. We have now ingested data from our K8s, GitOps, CI/CD etc - and it has populated into the predefined running service. This service (an “entity” in Port) is called “rating-production”. Some of its properties can only appear in running services. You can see the image tag, the datadog logs and other data showing how the service behaves in this specific environment - all of which can only be shown in the context of the running service. This type of view can’t happen in a “classic” software catalog that doesn’t show running services.

Using CI/CD and Port’s entities to deploy running services 

One of the more interesting use cases for Port’s internal developer portal is accessing its general purpose software catalog within existing CI/CD workflows. We call this workflow automation.

Let’s imagine a developer uses a self-service action - “deploy service in an environment” (you see what it looks like in our live demo). The developer selects the service to be deployed and the environment - test, QA, production. The CI/CD needs to set this up - and it uses Port’s software catalog to pull data about the specific service, environment, cluster and cloud account, check whether it is subject to nightly shutdown, is the service production critical, what is the deployment strategy and more. It then deploys accordingly. Since Port has entities for all such environments, and they are built as a graph, resulting in an elegant solution. 

Tags:
No items found.
{{survey-buttons}}

Get your survey template today

By clicking this button, you agree to our Terms of Use and Privacy Policy
{{survey}}

Download your survey template today

By clicking this button, you agree to our Terms of Use and Privacy Policy
{{roadmap}}

Free Roadmap planner for Platform Engineering teams

  • Set Clear Goals for Your Portal

  • Define Features and Milestones

  • Stay Aligned and Keep Moving Forward

{{rfp}}

Free RFP template for Internal Developer Portal

Creating an RFP for an internal developer portal doesn’t have to be complex. Our template gives you a streamlined path to start strong and ensure you’re covering all the key details.

{{ai_jq}}

Leverage AI to generate optimized JQ commands

test them in real-time, and refine your approach instantly. This powerful tool lets you experiment, troubleshoot, and fine-tune your queries—taking your development workflow to the next level.

{{cta_1}}

Check out Port's pre-populated demo and see what it's all about.

Check live demo

No email required

{{cta_survey}}

Check out the 2025 State of Internal Developer Portals report

See the full report

No email required

{{cta_2}}

Minimize engineering chaos. Port serves as one central platform for all your needs.

Explore Port
{{cta_3}}

Act on every part of your SDLC in Port.

{{cta_4}}

Your team needs the right info at the right time. With Port's software catalog, they'll have it.

{{cta_5}}

Learn more about Port's agentic engineering platform

Read the launch blog

Let’s start
{{cta_6}}

Contact sales for a technical walkthrough of Port

Let’s start
{{cta_7}}

Every team is different. Port lets you design a developer experience that truly fits your org.

{{cta_8}}

As your org grows, so does complexity. Port scales your catalog, orchestration, and workflows seamlessly.

{{cta-demo}}
{{reading-box-backstage-vs-port}}
{{cta-backstage-docs-button}}

Starting with Port is simple, fast, and free.