Contents
    Internal Development Platforms (IDP)

    What is an Internal Developer Platform (IDP)?

    The internal developer platform (IDP) is a multi-layered ecosystem designed to provide a framework and set of tools to support software development within an organization. Its core components and capabilities include:

    • application configuration management
    • infrastructure orchestration
    • environment management
    • deployment management
    • role-based access control

    These components are necessary to optimize the software development process, enhance collaboration, and accelerate the delivery of high-quality applications.

    Why do we want an IDP?

    The main goal of platform engineering is to drive developer autonomy and to make things simple. If a developer needs a database, there should be a mechanism to get it easily regardless of the person's level of database-related skills. If a developer needs to manage an application in Kubernetes, there should be no need to know everything about how Kubernetes works.

    The High-Level Design of an IDP (7 Core Elements)

    An internal developer platform needs several parts to become fully operational:

    • A control plane that will be in charge of managing all the resources
    • A control plane interface to enable everyone to interact with the control
    • Git to store the desired states
    • Database and schema management
    • Secrets manager for any confidential information
    • An internal developer portal/ GUI in case users don’t want to push manifests directly to git
    • CI/CD pipelines to execute one-shot actions

    The final setup may require some additional tools, but the ones listed above are mandatory.