Backstage, the open-source framework for building developer portals, has rapidly gained popularity in recent years. But what exactly is it about this platform that has captured the hearts and minds of developers and engineering leaders alike? Let’s dive in.
Understanding Backstage
Before we explore its popularity, let’s briefly define Backstage. Essentially, it’s a platform that provides a unified interface for developers to access all the tools, services, and information they need to build and maintain software. It’s like a one-stop shop for everything development-related.
Out of the box, Backstage includes:
- Backstage Software Catalog for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.)
- Backstage Software Templates for quickly spinning up new projects and standardizing your tooling with your organization’s best practices
- Backstage TechDocs for making it easy to create, maintain, find, and use technical documentation, using a “docs like code” approach
- Plus, a growing ecosystem of open source plugins that further expand Backstage’s customizability and functionality
Backstage is a CNCF Incubation project after graduating from Sandbox.
The Pain Points Backstage Solves
To truly appreciate Backstage’s appeal, we need to understand the challenges it addresses. In large organisations with multiple teams and complex systems, developers often face the following issues:
- Tool sprawl: A plethora of tools for different tasks can lead to confusion and inefficiencies.
- Knowledge silos: Information about services, APIs, and processes is scattered across various documents and platforms.
- Onboarding challenges: New team members struggle to find their way around the development ecosystem.
- Inefficient workflows: Manual processes and lack of visibility into system dependencies hinder productivity.
The Backstage Advantage
Backstage tackles these challenges head-on by offering several key benefits:
- Unified Developer Experience: By providing a consistent interface for accessing various tools and services, Backstage enhances developer productivity and reduces cognitive load.
- Centralized Knowledge Base: It serves as a single source of truth for documentation, code repositories, and other essential information, improving knowledge sharing and collaboration.
- Accelerated Onboarding: New team members can quickly get up to speed with the organization’s development practices and tools.
- Improved Workflow Efficiency: Automation capabilities and integrations with CI/CD pipelines streamline development processes.
- Enhanced Visibility: Backstage offers insights into system dependencies and performance, enabling proactive issue resolution.
- Customization and Extensibility: The platform’s open-source nature allows organizations to tailor it to their specific needs and integrate with existing tools and systems.
Benefits
For engineering managers, it allows you to maintain standards and best practices across the organisation, and can help you manage your whole tech ecosystem, from migrations to test certification.
- For end users (developers), it makes it fast and simple to build software components in a standardized way, and it provides a central place to manage all projects and documentation.
- For platform engineers, it enables extensibility and scalability by letting you easily integrate new tools and services (via plugins), as well as extending the functionality of existing ones.
- For everyone, it’s a single, consistent experience that ties all your infrastructure tooling, resources, standards, owners, contributors, and administrators together in one place.
The Growing Backstage Community
One of the key factors driving Backstage’s popularity is its thriving community. Developers from around the world contribute to the platform’s development, share best practices, and create plugins to extend its functionality. This vibrant ecosystem ensures that Backstage stays relevant and continues to evolve to meet the changing needs of the developer community.
Architecture
Backstage is constructed out of three parts. We separate Backstage in this way because we see three groups of contributors that work with Backstage in three different ways.
- Core – Base functionality built by core developers in the open source project.
- App – The app is an instance of a Backstage app that is deployed and tweaked. The app ties together core functionality with additional plugins. The app is built and maintained by app developers, usually a productivity team within a company.
- Plugins – Additional functionality to make your Backstage app useful for your company. Plugins can be specific to a company or open sourced and reusable. At Spotify we have over 100 plugins built by over 50 different teams. It has been very powerful to get contributions from various infrastructure teams added into a single unified developer experience.
The following diagram shows how Backstage might look when deployed inside a company which uses the Tech Radar plugin, the Lighthouse plugin, the CircleCI plugin and the software catalog.
There are 3 main components in this architecture:
- The core Backstage UI
- The UI plugins and their backing services
- Databases
Running this architecture in a real environment typically involves containerising the components. Various commands are provided for accomplishing this.
The UI is a thin, client-side wrapper around a set of plugins. It provides some core UI components and libraries for shared activities such as config management.
Each plugin typically makes itself available in the UI on a dedicated URL. For example, the Lighthouse plugin is registered with the UI on /lighthouse
Backstage relies heavily on NPM packages, both for distribution of libraries, and structuring of code within projects. While the way you structure your Backstage project is up to you, there is a set of established patterns that we encourage you to follow. These patterns can help set up a sound project structure as well as provide familiarity between different Backstage projects.
Conclusion
Backstage has emerged as a powerful tool for organisations looking to improve developer experience, streamline workflows, and accelerate software delivery. By addressing common pain points and offering a flexible, customisable platform, Backstage has captured the attention of developers and engineering leaders alike. As the platform continues to grow and mature, it is poised to become an even more essential component of modern software development practices.
Would you like to explore in further detail specific aspects of Backstage, such as its architecture, customisation options, or success stories?