Internal Developer Platform vs. Internal Developer Portal: Why You Need Both
Internal developer platform vs. internal developer portal
In brief, an internal developer platform is the set of tools developers leverage to ship new software in a self-service capacity. An internal developer portal is a central location that individual developers, teams, and managers use to own, operate, and improve software.
In truth, there’s a lot of overlap between these two concepts and they’re not mutually exclusive. When thinking about them, it’s perhaps better to think about the features that each offers - and which features are most important to your team.
Let’s look at each concept in more detail.
What is an internal developer platform?
An internal developer platform is a set of tools that work together to provide flexible abstractions for developers to deliver software faster. It reduces cognitive load by making tasks like deploying workloads or provisioning infrastructure easier, compliant, and more dynamic. It also provides platform engineers with the means to provide self-service capabilities for developers and drive standardization across the entire organization.
There aren't any viable off-the-shelf single-tool internal developer platforms because the space to cover is far too wide, and the requirements for each organization can vary widely. Organizations with simpler requirements (typically small startups with few developers) may opt for a platform as a service (PaaS) alternative instead (for example, Heroku, Cloud Run, etc.) to offer the same self-service experience that internal developer platforms can provide.
Why build an internal developer platform?
Internal developer platforms bring two critical elements to the internal software development process: productivity and standardization.
In our day and age, there are dozens of different ways to ship software. The combination of languages, frameworks, libraries, Continuous Integration/Continuous Deployment (CI/CD) automation, cloud providers, and infrastructure tooling is nearly infinite. That can make it hard for new devs in the company to know where to begin.
By creating an internal developer platform, companies can encapsulate the lessons that other teams have learned in shipping apps into a set of tools. That increases developer productivity by giving everyone the same opinionated, standardized starting point.
Additionally, an internal developer platform helps standardize software development across teams. It specifies common practices for elements such as cloud infrastructure, CI/CD pipelines, code and security testing, and other facets of the software development lifecycle.
Much of what an internal developer platform provides is “undifferentiated heavy lifting.” That is, it’s infrastructure that every application team needs regardless of the specific product it’s building. Consolidating this lifting into a single toolset prevents every team from having to rebuild their own answer to the same problem. That, in turn, enables teams to ship software faster with higher quality and at overall lower cost to the company.
The components of an internal developer platform
What’s included in an internal developer platform may vary from company to company. But most will have some variant of the following:
- Source control to track software revisions and releases. This is usually some form of Git—either self-hosted or provided via a service such as GitHub.
- CI/CD tooling to integrate and test code changes, plus package and deploy a new version release through dev, test, and production stages. Such tools can become quite sophisticated, performing in-depth security testing as well as deploying changes to multiple cloud regions for high availability. A good example of a home-grown corporate CI/CD solution is Etsy’s Deployinator, which enables a single engineer to push a code change in under two minutes.
- Infrastructure to simplify common computing and application development tasks. This can include observability, secrets management, and cluster management, among other features.
- Infrastructure provisioning to stand up the infrastructure—computing resources, storage, etc.—that your application requires. This usually takes the form of tools and templates for creating Infrastructure as Code (IaC), such as AWS CloudFormation and Terraform, along with a library of pre-developed templates.
- Internal developer portal. Yes, an internal developer portal is part of your internal developer platform! In fact, it’s an indispensable component that ties together the components of your platform into a cohesive whole. We’ll dive more into that in the following section.
What is an internal developer portal?
By contrast, an internal developer portal provides a central location within a company for developers to own, operate, and improve software. It helps both new and existing developers discover what services and best practices are currently available to use.
Information discovery for employees is an ongoing struggle at many companies. According to McKinsey, the average worker spends 20% of their time every week looking for information relevant to their jobs. An internal developer portal helps solve this issue for software engineers by serving as the central clearinghouse for all information related to application development.
An internal developer portal can do more than just show developers what internal APIs and services are available at the company. It can provide extensive documentation around internal tools, links to critical internal sites, and even dashboards displaying metrics and issues for critical services. It can also serve as a venue for asking questions and obtaining answers from experts on other teams.
Features of an internal developer portal
An internal developer portal includes the following features:
- Internal service discovery and documentation. Teams that maintain their own services and associated APIs can register their work with the internal developer portal. That enables other teams to find and consume these services easily. For example, a team at an e-commerce company developing a product recommendation service might use the developer portal to find the services for managing user authentication and accessing past orders.
- Service maturity metrics that measure how well various services meet corporate best practices for security, reliability, performance, and other key quality rubrics
- Service-level dashboards for monitoring logs, metrics, and standards compliance - e.g., compliance with the General Data Protection Regulation (GDPR)
- A UI for self-service operations such as creating/managing/retiring a service, requesting a new CI/CD pipeline framework, accessing cloud systems, requesting permissions to APIs and other internal systems, logging issues, paging another team’s on-call, or resolving known production issues via scripted actions
- Feature roadmaps for internal services, so that other teams know when to expect improvements in critical components
- A developer community portal for asking questions about internal services, processes, and best practices
How internal developer platforms and portals work together
There sometimes isn’t a hard and fast line between an internal developer platform and a portal. However, in general, an internal developer platform refers to the tools used to enable self-service software development. Meanwhile, the portal is the UI through which developers find, use, and assist one another with these tools.
To be blunt, a platform without a portal sucks. Your platform and your portal work together to create a single, unified experience for your software engineers. Without this one-two combo, a platform is just a bunch of tools that are hard to find and harder to use.
The internal developer platform provides:
- Faster development and time to market by reduction of effort and establishment of a clear quality bar
- Self-service tools that lower internal developer support costs
- Reduced ramp-up time required for new developers to learn how to create new services
Meanwhile, the internal developer portal gives developers:
- A single unified pane of glass for creating, managing, and monitoring their services
- Tools to observe and manage overall code quality, service security, and compliance with company standards and legal regulations
- A single location to find all services and associated documentation within the company
In some cases, the internal developer portal can enhance the services that the internal developer platform offers. For example, the platform may contain command-line tools for initializing a new Git repo and CI/CD pipeline. The portal could support a feature that provides a Web UI for this toolset, making it easier to find and run for first-time devs.
How to build a combined internal developer platform and portal
If built to work together, an internal developer platform and an internal developer portal can be a powerful combination. They can reduce the time it takes to manage services by centralizing information and reducing redundancy. They can also bring a level of consistency, standardization, and quality to a company’s applications that might be absent if every team built its own solution from scratch.
Internal developer platforms often evolve over time as teams build out new tools and services that satisfy their workflows. Internal developer portals are often harder to build, as they require more of an upfront investment.
Fortunately, there are now a number of commercial internal developer portal solutions available. OpsLevel is a developer portal with a number of built-in features that together improve developer experience, speed to market, and software quality, including:
- A service catalog for registering and discovering company apps, no matter your business’s size and scale
- Service maturity features for level-setting developer quality on a team or organization-wide basis
- A robust integrations system to tie together your various internal developer platforms tools, including source control, CI/CD pipelines, code quality, ticketing, observability, and more
Using OpsLevel, you can stand up an internal developer portal at a fraction of the time and expense it would take to build one from scratch.
Want to see how OpsLevel can bring greater visibility, improved service maturity, and faster speed to market to your application development process? Sign up for a free account and try it today.