The landscape of software development is constantly evolving. The Cloud Native Computing Foundation (CNCF), a non-profit organization fostering open source technologies, plays a crucial role in this evolution. The CNCF acts as a hub, bringing together developers and companies to create and refine technologies specifically designed for building and running applications in the cloud. These "cloud-native" technologies emphasize scalability, resilience, and agility–essential qualities for modern software that needs to adapt to ever-changing demands.
However, the very features that make cloud-native development powerful also introduce layers of complexity. As software development teams leverage a growing ecosystem of services, APIs, and tools, developers can find themselves overwhelmed. Juggling documentation scattered across various sources, navigating complex workflows, and constantly searching for the right tools can significantly hinder productivity and developer experience (DX).
Enter Backstage, an open source project under the CNCF's incubation program. It offers a compelling solution to these challenges. It empowers developers by providing a central platform to build customizable developer portals. These portals streamline workflows, provide a single source of truth for crucial information, and foster collaboration within development teams. In short, the Backstage project aims to transform the developer experience in the ever-growing realm of cloud-native development and is responsible for the glue that makes up an internal developer platform (IDP).
What is Backstage?
Imagine a world where developers have a single, organized hub for everything they need to build and maintain software. Backstage aims to create exactly that. It's a platform designed specifically for building customizable developer portals. These portals act as central nervous systems for development teams, bringing all the necessary resources and functionalities together in a unified and user-friendly interface.
Info alert: Notes on terminology
As noted, Backstage is a framework to build internal developer portals. There’s other technologies and approaches out there to make infrastructure more digestible and manageable by developers. One of them is the amazing Red Hat OpenShift console. What primarily differentiates core Backstage from Console is that Backstage offers deep customization to integrate other user interfaces for a complete platform view.
In simple words: Backstage is the foundation for building full-blown portals like Red Hat Developer Hub (more on that later). The OpenShift console aims primarily at making DevOps teams insanely productive, and other portal products have their own perspective. The integrated developer platform combines these capabilities, making it an especially powerful tool for developer productivity. Compare an overview and a first definition in my earlier article.
Software Catalog
Back to the portal framework. At the heart of Backstage lies the concept of the so-called Software Catalog. This is essentially a centralized repository that houses information about all the software building blocks used within an organization. It encompasses various entities like services, websites, libraries, data pipelines, or even machine learning models–everything gets documented and cataloged. This eliminates the time-consuming struggle of searching for scattered documentation or trying to piece together information from various sources. What is interesting to point out is that it could easily be considered a lightweight configuration management database (CMDB). But a CMDB usually captures the organizational aspects of hardware and software components, while the Backstage Software Catalog is aimed primarily at what software developers need.
Software Templates
While application developers are the main users of an IDP, initial setup and ongoing maintenance often fall to ops or platform teams. Backstage empowers those teams to create baseline IDP configuration templates. These visual templates consolidate development process elements and define permissions, laying the groundwork for efficient workflows. Once established, developers can readily adjust configurations and spin up tailored development environments that perfectly match their project needs.
Software Templates offer a smooth entry point for organizations adopting a platform engineering approach, especially when starting with a limited set of components. The templates streamline the creation process by assisting in generating component source code, establishing repositories, and publishing them to predefined URLs. This approach not only saves valuable developer time, but also ensures consistency and adherence to best practices across projects. Components created with templates are automatically added to the searchable catalog, making them readily discoverable and reusable within the system. Ultimately, software templates minimize tedious tasks, contributing significantly to developer satisfaction and a more enjoyable work experience.
TechDocs
Similarly, documentation for components and APIs resides within the portal, eliminating the need for external searches. This is achieved through TechDocs.
TechDocs simplifies technical documentation by leveraging MkDocs, a static site generator. MkDocs transforms plain text Markdown files into user-friendly documentation websites. With Markdown, developers can use a mostly already familiar and easy-to-learn syntax to document their projects and artifacts. Developers and technical writers utilize Markdown to author documentation within their preferred text editor. The Markdown files are organized into a logical directory structure that reflects the overall documentation hierarchy. A YAML configuration file specifies the location and structure of the Markdown source files. This configuration file acts as a bridge between MkDocs and TechDocs, defining how the documentation website should be generated. The generated static files integrate seamlessly within the portal, which provides easy access to all technical documentation.
Plug-ins
Beyond information storage, Backstage streamlines developer workflows. A plug-in mechanism allows it to integrate with existing development and deployment tools. This open and extensible architecture is probably one of the most powerful features. You can use plug-ins to extend Backstage's functionalities to fit the specific needs of development teams. Think of them as building blocks that allow platform engineering teams to tailor the portal to seamlessly integrate with the tools and workflows their developers already use. Whether it's a CI/CD pipeline integration or a plug-in for a specific infrastructure management tool, the extendable architecture allows its features to be customized and optimized for various use cases and team needs.
From Spotify to the CNCF
Backstage's story began at Spotify, where it was developed in-house to manage the company's complex software development environment. Recognizing its potential to benefit a broader developer community, Spotify transitioned Backstage to an open source project under the CNCF, making it readily available for anyone to adopt and contribute to.
I’ve talked a lot about the main components of Backstage itself. Let’s take a step back and look at the more general advantages of a developer portal and why it is important for productive development teams.
Backstage benefits for developers: A streamlined path to success
The modern developer landscape offers a ton of possibilities, but this can lead to information overload and inefficient workflows. Backstage tackles these challenges head-on with a developer-centric approach, delivering significant benefits to the developer experience.
Reduce cognitive overload
Backstage eliminates information chaos by acting as a single source of truth for all development artifacts. No more scattered documentation or wasted time searching. This reduces information overload and lets developers focus on doing what they love the most: writing code!
Boost development speed and developer autonomy
Backstage can also empower developers with self-service access to tools and documentation. Forget waiting for colleagues or IT support. The developer portal should also provide access to environment information and even creation, ideally through IaC (Infrastructure as Code) approaches or via software templates and encapsulated provisioning. This not only makes developers faster but also fosters autonomy and ownership.
Improve code quality with standardized worklows
Consistent development practices are crucial for code quality and streamlined workflows. Necessary steps to implement, reach, and monitor the quality heavily vary between companies and sometimes even projects. Defining standard CI/CD workflows combined with scaffolding of prest practices backed software templates creates highly efficient development cycles. Everybody uses the same frameworks, approaches, and technologies, leading to easier collaboration, higher quality, less worries, and quicker development.
Ease onboarding and collaboration
But this isn’t only about technologies and integrating them in a central place. Teams consist of various specialists, including more nontechnical members. They can also use the developer portal to collaborate closer within teams. Information and knowledge sharing happens on the same platform and best practices, discussions, and troubleshooting become a cross-team collaboration effort on the same platform. This can also help break down silos between teams working on different parts of an application.
Getting started with Backstage
Eager to kick the tires with your own developer portal? Try Red Hat Developer Hub. It provides an enterprise-strength version of the open source Backstage project. Developer Hub provides an out-of-the-box configured version of Backstage that comes preconfigured with a number of plug-ins that make developing and distributing cloud-native applications far simpler than it has been to date.
The majority of plug-ins, with the exception of Keycloak, provide visualization content ported from the OpenShift platform itself. Notably, the ability to visualize:
- The topology of an application deployed to OpenShift with the Application Topology for Kubernetes plug-in;
- Pipelines and pipeline execution with the Pipelines with Tekton plug-in;
- The contents of a container image registry with the Container Image Registry for Quay plug-in;
- The topology of a multi-cluster setup including application deployment with the Multicluster View with Open Cluster Manager plug-in;
- GitOps deployment with the GitOps with Argo CD plug-in.
The list of plug-ins that the Red Hat Developer Hub is shipped with are under constant evaluation; here is a list of the available ones. Be sure to compare the support level for the individual plug-ins.
These plug-ins are significant because they give developers all of the tools and visualizations they need at their fingertips. Before the advent of Backstage and Developer Hub, in order to do all of the development tasks needed in the example above, you would need to log into at least three different systems. From there, you would probably have to rely on extensive Google searches and keep a number of tabs open on your browser—all of which are a distraction.
Red Hat Developer Hub hands-on learning
You can get your own Red Hat Developer Hub playground up and running within minutes on the Developer Sandbox for Red Hat OpenShift. Just head over to the learning path and register your free environment to kick the tires. In the learning path, you will install the Developer Hub from a Helm chart, configure access to your GitHub repository, and start with some software template basics. You learn all of this in under an hour.
You’ve learned how Backstage and Red Hat Developer Hub tackle the challenges of modern software development by streamlining workflows, fostering collaboration through a central hub, and empowering developers with self-service tools. This translates to a more efficient, productive, and ultimately, enjoyable development experience. The value proposition is clear, and its adoption within the developer community is rapidly growing.
We invite developers of all experience levels to explore Red Hat Developer Hub and discover how it can revolutionize their workflows. You can contribute and share your expertise and ideas–you can help shape the future of this powerful platform by joining the Backstage community.
Ready to move on and deploy yourself? Get an evaluation version from access.redhat.com and start it on your own cluster. For context and further information, be sure to check the documentation.