How To Create A Complete Internal Developer Platform (IDP)?

DevOps Toolkit

DevOps Toolkit

27 min, 1 sec

A detailed walkthrough of creating a fully operational Internal Developer Platform (IDP) using various tools and services.

Summary

  • The video demonstrates the process of building an IDP that includes a control plane, user-friendly interfaces, and synchronization with Git for resource management.
  • The IDP enables the management of Kubernetes and cloud resources, using Crossplane for the control plane and Argo CD for synchronization.
  • Additional components such as schema management with Schema Hero and secret management with a Secret store and External Secrets are integrated into the IDP.
  • A graphical user interface is provided through Port to allow users to interact with the IDP easily, and GitHub Actions are used for CI/CD pipelines.
  • The presenter outlines the IDP's architecture, demonstrates the setup process, and shows how to initiate the deployment of an application with associated resources.

Chapter 1

Introduction to the IDP Build

0:00 - 53 sec

The presenter introduces the concept of building an internal developer platform (IDP) and the motivations behind the video.

The presenter introduces the concept of building an internal developer platform (IDP) and the motivations behind the video.

  • The presenter has been exploring tools and processes to create an IDP tailored to meet almost everyone's needs.
  • The IDP will enable developers to focus on writing code while automating backend processes like application deployment and database creation.

Chapter 2

Control Plane and Resource Management

0:53 - 6 min, 58 sec

A look at the control plane setup using Crossplane and how it manages resources across Kubernetes and cloud providers.

A look at the control plane setup using Crossplane and how it manages resources across Kubernetes and cloud providers.

  • Crossplane is used as the control plane, pre-loaded with providers to manage Kubernetes and cloud resources from AWS, Google Cloud, and Azure.
  • Custom Resource Definitions (CRDs) are used to extend Kubernetes API and provide user-friendly interfaces for managing complex resources.

Chapter 3

GitOps and Argo CD Integration

7:50 - 3 min, 11 sec

The integration of Argo CD for GitOps practices to synchronize the desired state in Git with the control plane.

The integration of Argo CD for GitOps practices to synchronize the desired state in Git with the control plane.

  • The presenter installs Argo CD and sets up projects and applications to sync the desired state from Git to the control plane.
  • Argo CD's UI is not intended for end-users, but it's crucial for pushing the desired state into Git and letting Argo CD synchronize with the control plane.

Chapter 4

Database Schema Management with Schema Hero

11:02 - 1 min, 53 sec

Setting up Schema Hero to manage database schemas as part of the application definitions in a GitOps model.

Setting up Schema Hero to manage database schemas as part of the application definitions in a GitOps model.

  • Schema Hero is used to extend Kubernetes API with CRDs to define database schemas.
  • Database schemas are managed as Kubernetes resources to fit into the GitOps model.

Chapter 5

Secret Management with External Secrets

12:55 - 1 min, 47 sec

External Secrets is configured to manage sensitive data, pulling secrets from a cloud provider's secret manager and synchronizing them with the control plane.

External Secrets is configured to manage sensitive data, pulling secrets from a cloud provider's secret manager and synchronizing them with the control plane.

  • External Secrets is installed and configured to pull secrets from a secret manager provided by a hyperscaler.
  • Secrets are not stored in Git for security reasons, and the control plane's compositions are set up to retrieve secrets from the secret manager.

Chapter 6

Graphical User Interface with Port

14:42 - 1 min, 56 sec

Port is introduced as a graphical user interface to provide a service catalog and execute actions for resource creation.

Port is introduced as a graphical user interface to provide a service catalog and execute actions for resource creation.

  • Port provides a user-friendly GUI for users to interact with the IDP.
  • Blueprints for environments and applications are added to Port to streamline the process of creating resources.

Chapter 7

CI/CD Pipelines with GitHub Actions

16:37 - 3 min, 17 sec

GitHub Actions are used to create CI/CD pipelines, enabling automation for application setup, image building, and deployment.

GitHub Actions are used to create CI/CD pipelines, enabling automation for application setup, image building, and deployment.

  • GitHub Actions automate the process of code checkout, repository creation, manifest creation, and pushing changes to Docker Hub and Git.
  • The pipelines handle the initial setup of applications, including source code repositories, manifests, and Docker files.

Chapter 8

Final Demonstration and Wrap-Up

19:54 - 7 min, 1 sec

The presenter demonstrates the entire process of creating and deploying a backend application with the integrated IDP components.

The presenter demonstrates the entire process of creating and deploying a backend application with the integrated IDP components.

  • A backend application with a database is created through a single action in Port.
  • The resources are deployed, and the final outcome is a running application with all necessary components in place.

More DevOps Toolkit summaries

The Best DevOps Tools, Platforms, and Services In 2024!

The Best DevOps Tools, Platforms, and Services In 2024!

DevOps Toolkit

DevOps Toolkit

A comprehensive guide to the tools and technologies recommended for use in 2024 across various development categories.