Delivery
Catalogs and portals
A developer portal is the interface on top of the platform, and a service catalog answers who owns a service, where its code lives, and how to reach them at 3 a.m. Start with ownership, not with the portal's chrome.
An internal developer portal is the interface layer of a platform. It is a place to find services, start a template, see who owns what, and open the runbook, the CI pipeline, the logs and the deploys from one page. Backstage, which started at Spotify and is now a CNCF project, is the most common open-source shape for one. The portal is not the platform itself. Without real paved roads behind it, a portal is a well-decorated directory of problems.
A service catalog is the part that answers the questions people ask during an incident. What exists? Who owns it? Where is the code? How is production doing? How do I reach someone at 3 a.m.?
The big idea
Think of a building directory in a large office. It shows which floor each team is on and who to call. The directory is useful only if it is up to date. A directory that someone has to update by hand falls behind within a month. The catalog stays current when registering a service is part of creating it.
Walking through it
Start small. Ownership, the repository and the on-call schedule answer most urgent questions. Add more fields when people search for them:
- Lifecycle: experimental, production or deprecated.
- Tier: how critical the service is.
- SLO link and dependency list.
- API spec, and a link to the dashboard.
Ownership metadata works best as a file in the repository, such as catalog-info.yaml, or an OWNERS file. Compulsory metadata beats wiki pages that rot. Ownership is the difference between "someone should fix the pager" and "team X gets the page".
Tip
Make catalog registration a side effect of the golden-path template, not a separate task. People forget homework, but a template does not forget.
Common mistakes
- Building a portal before the paved roads. A beautiful portal with nothing behind it gets ignored.
- Keeping ownership in a wiki. It goes stale. Put it next to the code.
- Adding fields no one searches for. Each field is a maintenance cost.
Check yourself
- During an incident, which catalog fact matters most? Ownership and the on-call route. They tell you who gets the page, which is the first question.
- Why register the catalog entry from the template? So every new service is registered without anyone remembering to do it.
Key takeaways
- The portal is the interface. The catalog is the ownership and discovery data behind it.
- Start with owner, repository and on-call, and expand as people search for more.
- Make registration automatic, through the template.
Further learning
Spotify's KubeCon talk covers the move from spreadsheets to a catalog and portal, and how adoption was handled.
The Backstage documentation explains what the portal is for.
Backstage documentation, what is BackstageWhat is Backstage? | Backstage Software Catalog and Developer Platformbackstage.ioRelated
Platform engineering
Internal developer platforms, golden paths and treating infrastructure as a product. Cut cognitive load without building a second Kubernetes.
Golden paths
A golden path is an opinionated, maintained way to create, ship and observe a service. It should be the easy default, not a prison, and the test is whether a new hire can reach production in a day.
Designing on-call
Sustainable rotations, executable runbooks, toil budgets and a paging policy that keeps humans healthy while production stays covered.