![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
Internal developer portals are fairly new. As with all things new, there are multiple theories about what exactly should be accomplished using them. There is one thing that everyone can agree on: Internal developer portals and platforms are a core interface for developers, and they need to be easy to maintain and easy to evolve. After all, if people, processes and technology evolve, so do the interfaces serving developers.
How can you tell whether your choice of portal can evolve and be maintainable? Let’s explore all about that.
An effective internal developer portal is made up of several elements: the software catalog, developer self-service, scorecards, automations and visualizations. While all are part of delivering developer experiences, we’ll examine two:
A flexible data model means being able to model your engineering DNA and use cases in the portal, both to:
A good portal lets you define, change or add entity kinds in the software catalog as well as the different relationships between those entity kinds.
Let’s look at both of those in more detail.
Entity kinds are things like resources, components and APIs. The entity kinds form what we call the data model of the software catalog. This is the map the software catalog uses to explain the SDLC world to its users. What is left out of the map doesn’t exist in the portal.
Here are some examples of entities that you may want to include in your portal:
Being able to include these entities without significant coding is key.
What to look out for: portals that have a fixed number of entity kinds (for instance, only the C4 model) or that require coding to change them.
Rather than assuming there are fixed relationships between entities, you need the ability to distinguish between different types of dependencies, such as separating runtime cloud resources (compute instances) from storage resources (databases and AWS S3 buckets).
You also want your portal to be able to specify multiple, distinct relationships between entities, providing granularity and clarity in understanding resource dependencies.
What to look out for: a portal where you cannot control the relationships between entity kinds
Without the ability to use custom entity kinds or distinguish dependencies, your software catalog falls short in representing key aspects of the SDLC. As a result, it offers less context and utility to your stakeholders. This is crucial because developers are less inclined to fully adopt a portal that fails to meet many of their needs.
Internal developer portals, and specifically the software catalog in them, need to remain current. To be maintainable and trusted, this needs to happen automatically. By using auto-discovery, real-time data updates and multiple ways to input data, you can avoid the time-consuming task of manual maintenance, ensuring your portal’s information is always current and accurate.
Here are the basic requirements:
These features are vital for keeping a catalog accurate and up to date in a dynamic, large-scale environment, helping to streamline operations and improve efficiency. Without these capabilities, the manual effort needed to maintain the catalog becomes impractical and error-prone, which can significantly slow down the organization. Additionally, requiring developers to manually update the catalog without offering them clear benefits can make it difficult to get them to use the portal.
What to look out for: Portals that require developers to carry out a lot of manual work with YAMLs. This isn’t just inconvenient, it can create serious maintainability issues and require too much of developers, without giving them anything in return.
There is a tendency to want to solve the problems we just described with plugins. Can’t represent additional types of entities (“kinds”) in the software catalog because of an inflexible data model? No problem, let’s use a plugin.
However, plugins can sometimes exacerbate the problem by lacking the functionality and flexibility you might expect, ultimately hindering the effectiveness of the internal developer portal.
Why is this an issue?
The purpose of a developer portal is to provide developers with relevant, abstracted information tailored to their specific needs. To achieve this, two key elements are necessary:
You want your portal to be able to directly provide self-service for a wide range of actions such as: deploying services, rolling back, triggering incidents, creating cloud resources, toggling feature flags, adding secrets, gaining temporary database permissions and setting up development environments.
This means that developers can do more than scaffold new services but also use self-service actions for Day 2 operations.
Existing CI/CD pipelines like GitHub Workflows, GitLab CI, Argo Workflows, AWS Lambda and Kubernetes operators come with powerful, ready-to-use actions that enable quick and reliable execution of various tasks.
For instance, GitHub Workflows provides hundreds of built-in actions available in its marketplace, which can be used to efficiently manage a wide range of operations. Even for scaffolding, the Cookiecutter library can be incorporated into CI/CD pipelines to customize and create repositories according to specified standards with greater ease and flexibility.
Given these capabilities, an internal developer portal should focus on enhancing the UI layer of the self-service action forms and strengthening integration with these existing CI/CD engines. This approach ensures a seamless experience for developers, leveraging the strengths of established tools while providing a user-friendly interface.
What to look out for: portals that have only one way to trigger self-service actions, forcing you to rip and replace your previous work, and that do not have a strong integration with your current CI/CD pipelines.
An effective internal developer portal hinges on integrating a robust software catalog and comprehensive self-service actions. A flexible data model that supports custom entity types and accurately represents dependencies is essential for creating a useful and dynamic catalog.
Automated, real-time data ingestion ensures that the information remains current, reliable and free from the burdens of manual maintenance. These features collectively enable developers to efficiently find and use the resources they need, fostering a more productive and streamlined development environment.
Moreover, while plugins may offer quick fixes, they often fall short in flexibility and functionality, potentially hindering the overall effectiveness of the portal. Instead, focusing on enhancing the UI layer of self-service action forms and strengthening integration with existing CI/CD pipelines ensures a seamless and efficient experience for developers.
By leveraging the strengths of established tools and providing a user-friendly interface, organizations can build a developer portal that not only meets current needs but also adapts and scales as those needs evolve, ultimately driving greater adoption and satisfaction among developers.
Learn more about internal developer portals at Portal Talks on June 26-27, which The New Stack’s Jennifer Riggins will be hosting.