06. What's a Cloud Native IDP
Platform engineers must develop their IDPs quickly, because developers can't deliver apps until the IDP is ready.
By Chris Munford, CEO/Founder of Nethopper.io
Platform Engineers must develop their IDPs quickly, because developers can’t deliver applications until the IDP is ready. Building an IDP from scratch takes a team of platform engineers several years, so almost all Platform Engineers leverage open-source software (OSS) tools.Â
Many OSS tools have been proven to work at large software successful organizations, like Google, Intuit, Netflix and others. Therefore, it is a reasonable assumption that the OSS tools will meet the platform engineers needs.
The #1 source of open source tools for the cloud is the CNCF (Cloud Native Computing Foundation) with over 150 OSS projects. However, it is estimated that there are over 50 million OSS projects globally, so the CNCF is certainly not the only source. Â
Why are there so many OSS tools? Isn’t there one OSS tool that a platform engineer can just download and use as an IDP?Â
The answer is no, an IDP requires a collection of integrated OSS tools. The reason is a time-tested software development principle called ‘modularity.’ Modularity is the concept of building a small program that does just one thing very well, and can be leveraged, like a building block, in many other projects.Â
Almost all OSS tools follow this principle, and therefore one single tool cannot stand alone as a complete IDP. In fact, most IDPs are made of 10 or more OSS tools. So, OSS integration becomes an area of focus for platform engineers. Â
So, what is a Cloud-Native IDP? Â
A Cloud-native IDP is an IDP built using Cloud-native open source tools.
Because all the best OSS tools are containerized, the IDP is best run and integrated in a Kubernetes environment. Since Kubernetes is purpose built for container communication and API integration, it is an ideal home for creating an IDP control plane.
Consider the following diagram which shows how a Cloud-Native IDP fits into a modern application software stack.
A modern application software stack:
Layer1: Infrastructure.Â
The foundation layer is cloud infrastructure. Compute, storage, and networking. IDP users should be able to choose any public or private cloud they like, or multiple.
Layer2: Kubernetes.Â
It is often easiest to choose the Kubernetes type that your cloud provider offers or recommends. However, IDP users should be able to use any Kubernetes or multiple.
Layer3:Â IDP (Internal Developer Platform).Â
Because cloud native tools are containerized, they run on top of Kubernetes. Platform Engineers can decide on which tools they choose, based on the needs of the application team. Good IDPs are multi-faceted, and incorporate tools for Deployment, GitOps, Observability, Networking, Security, CI/CD software releases, Upgrades, and even AI Operations.
Layer 4: The modern business applications (and microservices) that Developers are creating.Â
Once Layer 1, 2, and 3 are in place, these applications are ready to run. Application developers can simply deploy and upgrade their applications, without any knowledge (or cognitive load) of the bottom 3 layers of the stack. Just as importantly, operators should be able to manage those applications without the help of the developers.
Keep on reading!