When we talk about developer autonomy, cloud-native has brought a new era to app development, allowing dev teams to become independent from the SysAdmin team and provision the resources they need whenever they need. But, while it certainly is an improvement regarding scalability, availability, and ease of operation, not everything is as straightforward as it seems, and in this post, we aim to give you the key to what the benefits of an internal development platform are.
To be able to offer that autonomy, cloud-native uses cutting-edge technologies that need to be integrated with the company’s systems and deployed across several clusters and vendors in different regions, so the customer can receive an up-to-date, seamless experience. With this work scheme, front-end developers have to face the overwhelming cognitive load that is required to understand and use your infrastructure, and end up asking for help from DevOps, which ends up being the same bottleneck SysAdmin was before.
How can we finally give the dev teams the autonomy they need, while reducing the amount of knowledge we require from them to the technologies they actually use to develop our app? Enter the Internal Development Platform.
Benefits of an Internal Development Platform – What is an IDP?
An Internal Developer Platform (IDP) is a platform built by a platform team to create golden paths and enable developer self-service. An IDP consists of many different techs and tools, glued together in a way that lowers the cognitive load on developers without abstracting away context and underlying technologies.
The main goal of an IDP is to provide developer teams with API-driven self-service and supporting tools, so they can deploy and operate systems faster and not worry about the complexity of the underlying system. Organizations that consider establishing such a platform team should be very cautious not to accidentally create a separate DevOps team, nor should they simply relabel their existing hosting and operations structure as a platform. This is something different.
How can it make my life better?
An IDP is an excellent solution for meeting the ever-increasing demand for faster development and release cycles with total automation. IDPs help streamline projects and improve the developer experience overall. The main advantages this approach brings to the organizations that have implemented it are:
- Simplified application configuration management. IDPs are in charge of all internal or external resources related to an application, so app configuration becomes more manageable.
- The dev team isn’t reliant on DevOps. They can handle deployments and environments independently using pre-built platform settings and processes.
- An IDP encourages innovation and creativity on internal configurations since it minimizes load and lead time and increases productivity and visibility.
- IDPs help you introduce faster release cycles for applications, resulting in a shorter time to market.
- Clients receive their products faster and at a lesser cost; also, their feedback is listened to and acted upon in a shorter time, resulting in products that are more adjusted to their desires.
- The organization can centrally manage all the services under one roof. It becomes easy for the team to debug the failures and errors coming in the application.
Napptive enables developer self-service. We encourage you to try our playground and experience accelerated cloud-native development. It’s completely free, all you need to do is simply sign up and get started!
Ok, I’m convinced. How can I create my own IDP?
A platform should be a curated experience for developers, which are the customers of the platform. The fact that the platform is not an external product should not affect the way that it is conceived and implemented: our developers should be treated as well (if not better) as our customers, and so they should receive a product that is functional, up-to-date, and easy to use.
But where do we start? According to Matthew Skelton and Manuel Pais, from Team Topologies, the best way is to find the Thinnest Viable Platform, the platform equivalent to a Minimum Viable Product. This would be the smallest set of APIs, documentation, and tools needed to accelerate teams developing modern software services and systems (a good platform is just big enough but no bigger). One of the keys to creating our own IDP is to take one dev team as our client, and focus on creating the Thinnest Viable Platform for them: overinvest in it, and develop the best product we can with these requirements.
So, the first step is to identify our first “customer” and build the first few services with that customer in mind. This process is very collaborative: the platform team and the customer team work together to design the specifications of the product. It is better to start with one customer and tailor a small product to them than to abstract it and create something huge that is of no use to anybody in particular.
Then, when the customer… I mean, if the dev team, is satisfied and using it frequently, the platform team will gradually intervene less and less, since the services are more stable and the dev team can use them independently.
An IDP is not a one-size-fits-all kind of product. It will depend on a lot of factors: the technologies you already use, the size of your company… even external factors like regulations play a part. That means it will be as unique as your organization is because it’s tailored to it.
How Napptive can help
Napptive provides an ideal environment for an endeavor like this. It gives the dev team the autonomy they need to respond to the client’s feedback faster, while also allowing them to learn about the technologies used under the hood if they so desire. They can also manage the resources available, maintaining isolation between projects and even between different steps of the same project. There is a growing library of services at their disposal that they can easily deploy and even adapt to their needs.
All of this is presented with an intuitive web interface that makes the deployment process unbelievably easy, saving a lot of time that the dev team can dedicate to what really matters, which is developing the actual project.
If you want to propel your development, why not try our playground? It’s free, simply sign up and get started!