What Is an Internal Developer Platform?
Even though tech giants like Google, Twitter, and Spotify have been using internal platforms since way back, IDP is a relatively new concept among young tech stakeholders and startups. This article gives an elaborate view of what an internal developer platform is about, the benefits, and how it impacts your DevOps team.
The software development industry is fast-moving and dynamic. As technology matures, software organizations are required to meet up and deliver complementing solutions. Sequel to the popularity of cloud computing, organizations are forced to invent several practices to keep up the speed and complexities involved. Such a practice is DevOps, which aims to streamline the communication and collaboration between Operations and development teams. Complimentary to DevOps in meeting the ever-growing demand for faster development and release cycles with improved automation, the internal developer platform (IDP) has come to stay.
What Is an Internal Developer Platform?
An internal developer platform, IDP, is a self-service layer on top of an engineering team's existing tech tooling. IDP is a platform developed by the operations team to enable developers to configure, deploy, and spin up application infrastructure without depending on the Ops team. The Ops team gets to set the baseline configurations, templates, roles, and permissions of the organization's infrastructure to allow developers to self-serve their infrastructure requirements. IDP helps further automate the Ops workflow and cover their inefficiencies by streamlining application configuration and infrastructure management. It also gives the developers autonomy by enabling them to handle their work right from writing the code to delivering it to users.
How Internal Developer Platform Impact Your DevOps Team
DevOps teams in organizations are typically burdened with many operational responsibilities, including security, scaling, infrastructure management, among others. In addition to abstracting complex infrastructure components away from software developers, IDPs ease the operational burden on the DevOps team by providing a simple, scalable platform for developers to truly "build and run" their code. It also further helps the DevOps team in achieving its goal of automating the software delivery process. Especially in an organization with microservice architecture where different teams manage different services. An internal developer platform will reduce the infrastructure provisioning workload on the DevOps team and help the company deliver software faster—because developers don't have to wait for a DevOps or Ops engineer to come provision the infrastructure for their code.
A 2020 State of DevOps report by Puppet shows a strong correlation between the adoption of IDPs and DevOps evolution.
The adoption of IDP shows a direct proportionality to the maturity of DevOps in organizations.
A survey of 53 teams by Humanitec also compliments this report. The survey shows that teams where an Ops/DevOps engineer spends over 8 hours per week maintaining infrastructure scripts and integration experienced a drastic improvement; spending only 1.5hours per week to do the same task after adopting IDP. The survey also shows that a single Ops/DevOps engineer is also able to serve more developers after the team adopts IDP.
Why Enterprises Need an Internal Developer Platform
A successful modern software enterprise thrives on scalability, reliability, and fast time to market. These are some of the key values an enterprise stands to benefit from adopting an internal developer platform.
IDP is an avenue to improve the autonomy and accountability of all stakeholders in the software delivery process by helping the development team self-serve their resources and infrastructure needs, manage deployments, and implement rollbacks without dependence on an external team.
By self-serving their infrastructure needs, IDPs eliminate waiting for an ops operation to start the software delivery pipeline. It also makes it easy to set up and manage the environment, thereby reducing the time it takes to create one, resulting in frequent and faster release cycles.
By abstracting the complexities of application configuration management and infrastructure orchestration tools used by the Ops/DevOps team, IDP provides developers with a platform to manage and version application configurations and orchestrate new and existing deployments across multiple cloud platforms. It also helps fulfill one of the most important pillars of DevOps, automation, to streamline the workflow.
By easing the complexities and automating the iterative process of infrastructure creation and management, IDP also helps increase developers and DevOps productivity and allows them to focus more on business-critical tasks.
Internal Developer Platform Tools
There are two approaches to adopting Internal Developer Platforms: buying a framework or building it from scratch.
Whether you're using an in-house or third-party solution, a full-fledged IDP framework must actively provide five core features: Application configuration management, infrastructure orchestration, environment management, deployment management, and role-based access control.
IDPs are built on top of core DevOps toolings and a true internal platform must portray that.
An IDP must enable the developer to manage the application configuration with scalability, reliability, and flexibility in view. It must integrate into your existing infrastructure and provide visibility and easy monitoring of the infrastructure. It must abstract the complexity of creating a new environment, thereby saving the developers time and improving productivity. An IDP solution must integrate continuous integration, deployment, and delivery in the developers' workflow and provide an easy role-based access control (RBAC) to manage “who” can do “what” on the infrastructure.
Even though you still have to customize and configure it to suit your team's needs, using as-a-service frameworks is the quickest and easiest way to build your internal developer platform. As a relatively new category of tools, there are not so many frameworks available yet. Some of the IDP frameworks available include;
Humanitec:Humanitec is one of the front-liners preaching IDP adoption in enterprises and large software teams. Humanitec offers a lightweight platform API that connects to your underlying infrastructure to enable developer self-service. It is developed by a group of ex-Google platform engineers to give developers a pleasant experience in provisioning and managing their infrastructure.
Backstage:Backstage is an open-source platform for building developer portals. Made by Spotify, Backstage helps very large teams efficiently create and manage thousands of services and provide visibility into each developer and team's resource usage from a central control plane.
Gimlet:Gimlet is a partial IDP that offers a simple infrastructure orchestration, environment, and deployment management platform that enables developers to operate infrastructure independently.
It is a SaaS platform focused on operating Kubernetes Kubernetes deployment for mid-sized companies without any offer in application configuration management, thereby making it a partial IDP.
Upbound: Offered in an API, GUI, and command-line interface, Upbound is an infrastructure orchestration and environment management platform that allows developers to self-serve their infrastructure needs and manage infrastructure across multiple clouds. Like Gimlet, Upbound does not offer a full-featured application configuration management which makes it a partial IDP.
DevOpsBox:DevOpsBox is a NoOps platform built on top of comprehensive DevOps tools that provides an abstraction layer to help developers provision and manage their infrastructure on the go. It is a full-fledged IDP tool that offers application configuration management, infrastructure orchestration, environment management, and adequate RBAC.
How To Build an Internal Developer Platform
An internal developer platform should be specific to a team's infrastructure, culture, and existing tools, and building one from scratch might be a more efficient way to implement that. Building your IDP also gives you more flexibility to use a wide range of tools according to your organizational culture compared to an as-a-service framework. Building your custom IDP from scratch will require a considerable amount of effort, labor, and cost.
To build your IDP, you should start by breaking down complex infrastructure components and designing an easier way to define the infrastructure; similar to how developers handle their code in Git. For your IDP to be successful, it has to integrate with the CI/CD pipelines, monitoring, security, and incident management tools in your current tech stack.
This will in turn increase application delivery velocity, improve developers' productivity, reduce operational burden on the Ops and DevOps teams and allow each member of the team to scale their application easily.
Case Study: Spotify Backstage
Before it was open-sourced in 2020, Backstage was an in-house solution built by popular music streaming platform Spotify and tailored to their requirement of a structured and central infrastructure management portal.
More appropriately referred to as a service catalog, Backstage is an "open-source platform for building developer portals." As defined in a recent article on FAUN (Spotify Backstage: Service Catalogs Explained), a service catalog is a means of centralizing all services that are important to the stakeholders of an organization that implements and uses it".
However, Backstage offers several functionalities that qualify it as an internal developer platform framework.
Backstage affords teams to build a central pane for managing all software and services, provide visibility into each service's resources and resource usage, and establish autonomy in the organization's workflow with improved accountability. Backstage Kubernetes, another feature of Backstage built on Kubernetes, provides an easy monitoring and management tool for developers and service owners to manage their Kubernetes services across multiple cloud platforms easily. Even though service catalogs and IDPs are quite different concepts, Backstage seems to find a serene confluence between the two. Spotify Backstage: Service Catalogs Explained is a great read to help you further understand what service catalogs are and their harmony with the internal developer platform.
Get similar stories in your inbox weekly, for free
Share this story:
If you are still determining which option to implement DevOps is good for you or …