Backstage is a widely used, open-source developer portal platform. It encapsulates and streamlines infrastructure, CI/CD, and operational expertise needed for seamless product operation. Furthermore, it stands as a central point of information for an organization's inventory of services including how to operate and maintain them.
The Challenges Backstage Addresses
Companies can easily get trapped in a maze of fragmented information and manual processes. In these cases, the journey from conceptualizing a new service to developing it, deploying it and ensuring that it meets all the requirements and is working as intended becomes a Herculean task.
Creating a service is not merely about coding; it's an intricate dance involving provisioning infrastructure, setting up CI/CD, ensuring proper logging, monitoring, and alerting systems. Information is scattered across platforms like GitHub, LogDNA, Datadog, or PagerDuty, demanding extensive legwork by developers – the process is tedious.
The result is often increased knowledge silos, increased complexity, and inefficiency.
How IDPs Transform Developer Experience
The importance of user experience is well understood - if users aren’t happy they won’t continue to use your product - but what about developer experience? Equip engineering teams with tools like IDPs, and watch a cascade of benefits: superior products, minimal outages, swift feature rollouts, shorter engineering ramp-ups and let’s not forget: happier engineers.
Backstage addresses this need by presenting a platform that can tailor to your unique software ecosystem if you allocate the time and resources for that customization - which can be considerable.
Out of the box Backstage features
Backstage includes several features for organizing software and related documentation:
1. Service Catalog:
Core Purpose: Organize and Manage Development Assets
At the heart of Backstage lies the Service Catalog. It acts as a comprehensive directory, listing all of your organization's services, applications, pipelines, and other essential components. Not only does it provide a clear view of service ownership, but it also simplifies the discovery of services within large organizations, fostering improved collaboration.
2. Software Templates:
Core Purpose: Standardized and Rapid Service Creation
One of Backstage's compelling features is its ability to facilitate the creation of bespoke software product templates tailored for your company's unique needs. These templates encapsulate both standards and tooling required for different applications or components. The result? A streamlined process that enables teams to initiate new projects swiftly and within predefined guidelines.
3. Tech Docs:
Core Purpose: Centralized and Updated Technical Documentation
With Tech Docs, Backstage eliminates the often chaotic management of technical documentation. Instead of sifting through disparate repositories or outdated wikis, teams can effortlessly maintain and access their documentation, right from their respective code repositories. This ensures that the documentation is not only current but also aligned with the codebase.
Core Purpose: Enhance Functionality and Integration
Backstage's architecture is inherently extensible. Its open platform readily accepts plugins, both developed by the vast open-source community and by internal teams. This provides an avenue to seamlessly integrate a multitude of systems essential for building, deploying, and operating applications. And with the introduction of paid plugins in late 2022, there's now even more flexibility and options at users' fingertips.
The Realities of Implementing Backstage
As great a tool as Backstage is, it's not a plug-and-play solution. It requires a dedicated team equipped with diverse skills. Even post-deployment, infrastructure configuration, integration setups, and end-user support are inevitable responsibilities. This results not only in tangible costs but also in intangible ones, as its maintenance demands attention away from primary business goals, potentially impacting high-impact projects.
Let’s dig a bit deeper into the particular struggles of configuring maintaining Backstage:
1. Customization Overhead:
Each organization's requirements are unique, because of that, Backstage allows for a wide range of customization regarding pretty much all aspects of the tool. Picking the right thing for your organization can require research as well as strong alignment between different stakeholders. The wrong choice can have unforeseen negative ramifications down the line.
Customization options include but are not limited to the following areas:
- User Interface: Tailoring UI components and views, updating the menu and sidebar items, and even adjusting the application's theme, branding, and general aesthetics.
- Workflow Customizations: Teams often need to develop custom code to automate processes and achieve their intended purposes.
- Security and Governance: Establishing intricate permissions policies, encompassing role-based access control (RBAC), governance frameworks, and more.
- Plugins and Integrations: Besides the platform's inherent customization capabilities, Backstage has an extensive list of plugins. Each comes with its distinct set of features and considerations that you need to account for.
Basically, while some customization is good, sometimes you want something that “just works” - that’s designed with the best practices in mind and will help you answer the questions that you already have instead of raising new ones.
2. High Maintenance Costs:
When organizations embrace the Backstage platform, they aren’t simply adding another tool to their stack; they’re committing to a journey.
On the tangible side, there’s the immediate investment in infrastructure to host and run the platform. But more notably, setting up, configuring, and continuously maintaining Backstage can become a monumental task - so much so that it is not unusual for organizations to assign an entire team solely for this purpose.
Among the community it’s highlighted that updating Backstage versions can be particularly tricky due to plugin compatibility among other things. Planning an update must be done with the proper amount of planning in place to avoid catastrophic consequences. In the worst case scenarios plugins that have become important to the workflows of your organization may stop being maintained which leaves the company at a crossroad, should they: 1) avoid updating Backstage forever? 2) Drop their dependence on the plugin? Or 3) Pick up the maintenance themselves?
The intangible costs can be even heavier depending on the context. Time spent on maintaining Backstage is time diverted from core business projects and initiatives. This shift in focus can manifest as opportunity costs. When teams are pulled away from high-impact projects to handle Backstage maintenance, the organization misses out on pivotal advancements, innovations, and market opportunities.
3. Ensuring the consistency of the software catalog as a source of truth:
One of the core promises of Backstage is to provide a unified view, acting as a singular source of truth for your software landscape. However, ensuring this continuous truthfulness and keeping it in sync with the remaining tools and platforms used by an organization isn't a straightforward task.
Various plugins exist to try to streamline and automate this process, but they aren't flawless. The varying nature of tools, their unique specifications, and frequent updates can lead to inconsistencies and discrepancies between what's represented in Backstage and the real state of affairs in different tools.
This challenge is aggravated by the fact that Backstage is self-hosted - with ownership comes responsibility. When something breaks or an integration goes awry, it falls upon the organization to remedy the situation. Consequently, many enterprises, recognizing the intricacies of their environments and the importance of accurate representations, choose to develop their own plugins. This tailored approach, while potentially addressing specific challenges, brings even more of the same potential problems already mentioned: an overhead in terms of development, maintenance, and updates.
To summarize, and as a Backstage user put in a public forum: “The idea of backstage is super cool, but for me, as a DevOps engineer, the fact that I need to write a lot of React code and continuously fix things made me leave the project.”