What is an internal developer platform (IDP)?

One of the primary goals of software engineering is to solve problems and create value, but that focus can get lost in the day-to-day friction of modern development. An internal developer platform (IDP) is designed to unburden developers so they can focus on software development. The main goal of an IDP isn't just to ship software faster, but to reduce the mental strain on developers by creating secure, efficient, and well supported templates and automation—often called "golden paths"—for building and deploying applications.

Build an internal developer platform on Google Kubernetes Engine Enterprise

Internal developer platform (IDP) defined

An internal developer platform integrates a curated set of technologies and tools, built and maintained by a dedicated platform team. This stack often includes solutions for container orchestration, infrastructure as code (IaC) tools, and CI/CD pipelines powered by open source projects.

An internal developer platform (IDP) should be approached as a product, with developers as its users. It's crucial to address their use cases, gather their feedback, and continuously refine the platform through iteration. The IDP is the layer that connects these tools, abstracting away their complexity so developers can perform tasks through a simple, self-service model. The goal is to make the right way the easy way, allowing developers to build and ship with confidence and autonomy.

H2: What is cognitive load?

Cognitive load refers to the total amount of mental effort being used in a person's working memory. Think of it as the mental bandwidth a developer has. When that bandwidth is consumed by non-coding tasks, their ability to focus on complex problem-solving decreases.

Developers often have to switch between dozens of different tools, dashboards, and configuration files just to get a simple change deployed. Each context switch forces the brain to load a new set of information, which is mentally taxing. This constant juggling of tools and processes increases cognitive load, which can lead to burnout, more mistakes, and slower innovation.

The role of platform engineering

Platform engineering is the discipline of designing, building, and maintaining an internal developer platform. Think of it this way: if the IDP is the product, then the platform engineering team is the product team responsible for its life cycle. Their customers are the organization's developers.

This approach means the platform is treated like any other software product. The platform engineering team is responsible for understanding developer needs, defining a roadmap, and providing a reliable, secure, and easy-to-use set of tools.

Internal developer platform versus internal developer portal

A frequent question is the distinction between a platform and a portal. While the terms are sometimes used interchangeably, they represent different layers of the developer experience. Think of the internal developer platform (IDP) as the entire engine, encompassing all the tools, workflows, and infrastructure that power your development life cycle.

The internal developer portal, on the other hand, is the dashboard for that engine. It's the graphical user interface (GUI) that provides developers with a single, centralized place to access the platform's capabilities. A developer portal can help developers discover and use tools, view documentation, scaffold new services, and check the status of their builds without needing to understand the complex machinery running underneath. While a comprehensive IDP often includes a developer portal to improve usability and discoverability, the platform itself is the complete set of underlying technologies and automated processes.

Key components of an IDP

While every company's needs are different, most IDPs are built from a few core components that work together. These components focus on creating a streamlined, secure, and efficient path from development to production.

The developer experience is the central interface that abstracts away the underlying complexity of the infrastructure. It's often a developer portal or a command-line interface (CLI) that gives developers self-service access to the tools, documentation, and resources they need. For example, IDE plugins like Cloud Code help developers write and debug code directly within their familiar tools, while portals built with solutions like Backstage on Google Cloud provide a single, consolidated view of their entire software ecosystem.

App templates, sometimes called golden paths, provide developers with a pre-defined, best-practices structure for new applications. These templates can include boilerplate code, configured CI/CD pipelines, infrastructure-as-code files, and monitoring dashboards. Resources like the App Design Center can help teams create and manage a catalog of these templates, ensuring that best practices are easily discoverable and reusable. This approach accelerates developer onboarding and creates consistency across all services.

This component integrates security directly into the development workflow. It automates the enforcement of security policies, such as Identity and Access Management (IAM), role-based access control (RBAC), network policies, vulnerability scanning, and infrastructure hardening. By embedding security into the platform's foundation, teams can "shift security left" and address potential issues early in the development life cycle. This prevents security from becoming a bottleneck right before production.

An application-centric foundation creates a standardized abstraction layer over the underlying infrastructure. It provides a unified model for key operational concerns, offering one approach to networking, security, and observability that works across all environments. This consistency simplifies management and reduces the cognitive load on developers, who don't need to worry about the unique details of each deployment target, such as a specific Google Kubernetes Engine (GKE) cluster configuration.

An IDP manages the application runtimes where the code executes. These runtimes can be container orchestration platforms like GKE, serverless platforms like Cloud Run, or other compute environments. The IDP automates the provisioning, configuration, and maintenance of these runtimes. This allows developers to deploy their applications quickly and reliably without needing deep expertise in the underlying compute services.

The cloud application platform is the integrated set of cloud services that serves as the backbone for the entire IDP. It brings together compute, storage, networking, Cloud APIs, CI/CD tooling, and observability into a cohesive system. Building an IDP on a comprehensive foundation like Google Cloud can allow teams to leverage powerful, managed services to accelerate development, improve reliability, and ensure the platform can scale to meet demand.

Benefits of IDPs

Adopting an internal developer platform can offer significant advantages for engineering organizations.

Improved developer experience

By reducing cognitive load and providing simple self-service workflows, IDPs can help to improve the developer experience.

Faster time to market

Automation and standardization can help speed up the process of building and deploying software, allowing teams to deliver value to customers more quickly.

Increased reliability and consistency

IDPs can help enforce best practices through golden paths, and can lead to more consistent and reliable application deployments.

Enhanced security and compliance

Security policies can be baked directly into the platform's templates and automated workflows, ensuring that all new services meet compliance requirements from the start.

Greater developer autonomy

Centralizing platform management can help free up developers to focus on features and gives them the autonomy to manage their applications' life cycle.

How an IDP connects your existing stack

To see how an IDP works in practice, let's look at a common internal developer platform example using Google Cloud. Imagine a developer needs to spin up a new microservice that requires its own database and CI/CD pipeline.

Without an IDP

The developer would need to manually create a Cloud Source Repository, write a Terraform module to provision a Cloud SQL database, create and configure a Google Kubernetes Engine (GKE) deployment file (YAML), set up a new trigger in Cloud Build, and manage IAM permissions for everything. This could take days and involve multiple teams.

With an IDP

The process is much simpler.

Request from the portal: The developer logs into the developer portal and finds a pre-built template for a "Python microservice with a Cloud SQL database."

Simple inputs: They fill out a short form with the service name and their team name.

Orchestration begins: The developer clicks "Create," and the platform orchestrator takes over.

Automated actions: Behind the scenes, the orchestrator performs a series of automated tasks using Google Cloud APIs:

  • It creates a new repository in Cloud Source Repositories from the template
  • It runs a Terraform plan to provision a new Cloud SQL for PostgreSQL instance
  • It creates the necessary manifests and applies them to the Google Kubernetes Engine (GKE) cluster to create a new deployment environment
  • It configures a new CI/CD pipeline in Cloud Build to automatically build and deploy the service

Completion: Within minutes, the process is complete. The developer gets a notification with links to their new repository, their running application in the GKE staging environment, and the database credentials, all without writing a single line of configuration.

Solve your business challenges with Google Cloud

New customers get $300 in free credits to spend on Google Cloud.
What problem are you trying to solve?
What you'll get:
Step-by-step guide
Reference architecture
Available pre-built solutions
This service was built with Vertex AI. You must be 18 or older to use it. Do not enter sensitive, confidential, or personal info.

Additional resources

To learn more about the concepts and technologies that make up an internal developer platform, check out these additional resources:

  • Platform engineering on Google Cloud: Learn about the discipline of designing and building the toolchains and workflows that enable developer self-service
  • DevOps: Take a deeper dive into the culture, practices, and tools that help organizations deliver applications and services at high velocity

Take the next step

Start building on Google Cloud with $300 in free credits and 20+ always free products.

Google Cloud