If you've heard the term 'Developer Portal' a few times and wonder what all the fuss is about, this article is for you. Zohar Einy, CEO of Port, is on hand to run through everything you need to know about DevPortals.
As DevOps matures and becomes more complex, in software as in infrastructure, developers require easy access to an ever-increasing number of moving parts. Microservices, DevTools, CI, CD, Scripts, Saas, Cloud resources, IaC - the list goes on. Today, in most cases, it’s difficult to determine if and where a random part fits in the big DevOps picture just by its name or server name.
The ecosystem became chaotic for Developers, and simple things like microservice ownership or deploying new versions become a time-draining challenge. This isn't a productive or cost-effective way of working.
What is a Developer Portal?
For all the reasons above, the need for a developer portal naturally evolved - a unified self-service view of the developer’s ecosystem.
The best portal will provide a platform that acts as a single source-of-truth for all infrastructure assets and operations existing in an organization's tech stack.
Why Do You Need a Developer Portal?
Working with a developer portal improves many different aspects of your organization:
- Unified platform - concentrating the organization's assets and tasks in one place provides an end-to-end experience for developers, thus helping all involved parties to stay on the same page throughout development;
- Clarity - software development is becoming more and more complex with an ever-growing variety of microservices that need to be architected in the organization’s software. To help with that, a developer portal provides a single, unified experience that simplifies the process;
- Documentation - a developer portal automatically documents all performed actions, thus keeping all company records in an orderly fashion for easy future review;
- Developer experience - having a developer portal improves developer experience, as they are faced with less dependencies, confusion and uncertainty. With the portal, you give your developers a holistic understanding of your development lifecycle and underlying architecture.
Who Interacts With a Developer Portal?
Developer portals are not only for developers. In fact, multiple players can interact in the ecosystem the portal creates. Let’s take a closer look at the different players and their roles in the portal:
- Developers - using IDP in order to be able to navigate through the Software Development Lifecycle within their organization;
- SRE - Get relevant data across the infrastructure to troubleshoot effectively and execute relevant run-books and remediation automations;
- DevOps - organize all their DevOps assets in one place, from microservice, environments, clusters, etc. As well as using the DevPortal to enhance developer’s agility;
- Managers - receive aggregative data regards R&D KPIs such as DORA Metrics;
- NOC - understand affected assets by security incidents. For example, being able to track affected k8s clusters by the log4j open source vulnerability;
- CI/CD - Fetching data from the Software Catalog to make real-time automated decisions such as deploying a service if it passed the maturity test (operations, security, etc.).
Components of a Developer Portal
Now that we have understood the meaning of having a developer platform, let’s dive deeper into the developer portal components.
As a holistic platform, DevPortals have many components to take into account:
Software Catalog Layer
The Software Catalog Layer is where Developers go to discover the answer to any software question they might have. It's a unified view of the different software components within the organization.
Software components you might find in the Software-Catalog layer often include:
- Cloud Resources (K8S, Lambda, RDS, etc…);
- Cloud Providers (AWS, GCP, Azure);
- Environments (Production, Staging, QA, Security, DevEnvs…);
And that's just the beginning. The many components can also have dependencies between them. For example, managing the Software Catalog layer in a visual representation is essential to answering complex questions.
Once you have organized your software components, the self-service layer is where Developers can come to perform actions.
"Deploy this Microservice" or "Add Cloud Resource" are daily tasks for Developers. This is where they can perform actions on the assets you manage within your catalog. This is the front door for everything a developer might need.
With a great DevPortal comes great responsibility. Without proper controls in place, security, compliance, and cost controls become chaos.
It's possible to implement a number of control measures across the Software Catalog and Self Service layers.
- Permissions: manage access to the data shown in the Software Catalog;
- Actions: allow different self-service actions based on a role within the organization;
- User Tracking: all actions within the DevPortal are tracked to ensure you stay compliant with current certifications.;
- Automation: revoke, remediate, revert, and cron-job automations will help set proper processes around DevPortal provisions.
Product Management Layer
This just might be my favorite layer. When designing a DevPortal, think like a Product Manager. One that actually understands Developers. Here are a few things to include if your DevPortal is going to be successfully adopted:
- Wizards and tutorials for new users;
- Embedded documentation to explain the DevPortal glossary;
- Custom views for different teams depending on their business function;
- Chat and support functions are easily accessible at all times;
- Analytics dashboards to learn the strengths and weaknesses of the DevPortal.
Stakeholders in a Developer Portal
Developer Portals are unusual in that they are used as internal products. The 'customers' are colleagues of the team that adopt it.
The team often responsible for the DevPortal could be the:
- DevEx team;
- Platform team;
- DevOps team.
These teams are responsible for the success of the DevPortal. Making it a successful means selling their colleagues on the new platform. Encouraging colleagues to adopt new ways of working can be challenging – they have to see the benefits in the short term and the long term.
DevPortal' customers' can be:
- Data Engineers;
- Customer Success.
Each one has a unique set of needs. Therefore, it's essential to design the DevPortal with each group of users in mind to see the platform's immediate benefit.
A recommended book for the Technical Managers reading it is Team Topologies, talking about the NG architecture of R&D teams when thinking about IDP (Internal Developer Portal).
Benefits of a Developer Portal
Hopefully, you can see why Developer Portals are becoming an integral part of an effective tech stack. Forward-looking companies like Spotify and Lyft have already implemented and advocated for DevPortals. They will soon become a standard feature in more and more organizations.
However, if you need a few short, snappy sentences to sell this concept to your manager - we've got you covered:
Take the Developer Experience to peak performance
R&D is one of the most strategic units within any company. Ensure Developers can easily navigate through the software stack, and you'll allow them to reach peak agility and performance.
Eliminate infrastructure clutter. Deliver faster
Save valuable time spent understanding, communicating, and managing the different assets R&D rely on. Remove the clutter, chaos, and ownership headaches around microservices, cloud resources, and databases. Time-consuming and complex tasks become one-click operations allowing the team to get results faster.
Lower operating costs
Being more organized means lowering costs. A unified, self-service interface allows teams to efficiently classify and manage costs. Break down resource consumption by each team to make better decisions and optimize costs.
Reduce technical debt
Technology is here to change, and it's time to become futureproof. The DevPortal's user interface is decoupled from the underlying infrastructure. This means that the constant updates and changes made 'under the hood' don't impact the user interface - internal customers get a consistent experience.
The Developer Portal is becoming an essential part of every R&D tech stack. When designing yours, work your way through the various layers, considering how they will work together. Stay agile, don't over-complicate it, and you'll be ok!
At Port, we are passionate about Developer Portals. Our dedicated team of expert DevEx Engineers & Product Managers are on hand to help and advise your DevPortal strategy.