Internal Developer Platform
An Internal Developer Platform (IDP) is a system of workflows and tools assembled to create streamlined, standard paths for developers, promoting a self-service approach. To facilitate these "golden paths (opens in a new tab)", an IDP integrates a variety of technologies and tools in a cohesive manner, organized to reduce the cognitive load on developer end-users.
The key here is that an IDP isn't just slapped together. Platform teams treat their platform like a product. They use user research to build an IDP and are committed to maintaining and continually improving it.
An IDP is comprised of five core components [1 (opens in a new tab)], described in the table below, which are designed to standardize configurations, automate processes, and enforce role-based access. Uffizzi facilitates the 5 core components of an IDP as follows:
|5 Core Components||Component Description||How Uffizzi Facilitates This Component|
|Application Configuration Management||Dynamically handle scalable application settings||Supports configurations like Helm, kustomize, and Docker Compose|
|Infrastructure Orchestration||Smart, context-aware infrastructure arrangement||Utilizes container and cloud-native, Kubernetes-based infrastructure|
|Environment Management||Empower devs with on-demand, ready-to-use environments||Offers secure, self-serve ephemeral environments, managed via CLI or CI/CD|
|Deployment Management||Establish continuous delivery/deployment pipelines||Enables automated deployment, rollback/clean-up, and versioning|
|Role-based Access Control||Scale permission settings efficiently||Provides secure, isolated environments for each team member (with admin controls)|
Is Uffizzi an IDP? Yes and no. For many teams these 5 components provided by Uffizzi satisfy their requirements for enabling developer self-service. Yet other teams may need to incorporate more tools to address their particular needs. In either case, Uffizzi acts as a secure, customizable foundation upon which you can build out your IDP.
For Ops Teams:
- Streamlines resource allocation and management
- Standardizes application configurations through templates
- Enhances access control
- Automates setup of environments and resources
- Simplifies operational setup
- Increases autonomy in resource management and deployment
- Integrates with existing workflows
- Simplifies environment provisioning
- Facilitates autonomous deployments and rollbacks