Maximizing Productivity with Spotify Backstage

Henk Kok

Organizing and managing resources with Spotify Backstage

You might know that Spotify is very well know for their Agile methodology. But they are also very much investing in tooling for developers. Backstage is an internal developer portal that was originally built by Spotify and later contributed to the open source community. In recent years, it has gained a lot of attention within the developer community due to Spotify’s marketing efforts. In this blog post, we’ll take a closer look at the features of Backstage and discuss the pros and cons of using it as your internal developer platform. We’ll also provide some information on what you need to consider when evaluating Backstage versus other specialist solutions. By the end of this post, you should have a better understanding of whether or not Backstage is the right choice for your engineering team’s home base.

Backstage has a rich history that is closely tied to the growth and evolution of Spotify as a company. According to Spotify, Backstage was “born out of necessity” as the company’s infrastructure grew rapidly and development teams became distributed across multiple regions. This led to a fragmented and difficult-to-manage system of tools and processes, and engineers found themselves spending more time trying to get started than actually building and testing code. In order to solve this problem, Spotify began building a layer on top of its tools and infrastructure in the 2010s, which made it easier to find, use, and manage services and tooling. However, building a fully-featured internal developer portal requires a significant engineering investment. In 2020, Spotify made the decision to donate core components of Backstage to the open source community and has since worked to build a community around the project to advance its development.

Backstage: a quick introduction

Backstage is an internal developer portal built around a catalog that helps you organize all your services, data pipelines, and other resources in one place. It also includes a scaffolder tool that allows you to spin up new projects using approved architectural blueprints and a docs-as-code solution. With Backstage, you can easily keep track of all your services and key information about them, enable your engineers to quickly create new projects using established templates, and monitor basic analytics on tech health, cloud costs, language usage, and more. In short, Backstage is a powerful and convenient tool that helps you manage and organize your development resources in one central location.

Backstage Components

Backstage consists of four main components: a catalog, analytics, a scaffolder, and docs-as-code.

The Backstage Catalog is a central location for tracking and managing internal applications, libraries, pipelines, and websites. It allows engineering teams to register entities in the catalog via YAML files, which make up an index of components, APIs, and resources. The catalog expects these YAML files to be stored in your git repositories, so it can back up your catalog and make it recoverable with a complete history. You can also declare dependencies among catalog entries manually. The catalog ingests metadata about its entries from your tools via plugins that are configured in the service’s YAML. This makes it easier for teams to manage and maintain their software, provides a consistent view of all their software, and makes all the software in your company indexed and discoverable.

The Backstage Analytics component provides basic analytics on tech health, cloud costs, language usage, and other metrics. It allows teams to track the performance and health of their systems and make informed decisions about resource allocation and optimization. The analytics component also integrates with other tools and services, such as monitoring and logging platforms, to provide a more comprehensive view of your systems.

The Golden Path Scaffolder is a feature that makes it easy for teams to spin up new services while maintaining consistency across projects. You can create templates inside Backstage that, with the click of a button, create new projects in places like GitLab and GitHub. This helps teams start new projects on the right foot without having to follow strict conventions and standards. The scaffolder also integrates with other tools and services, such as infrastructure as code platforms, to streamline the process of creating and deploying new projects.

TechDocs is a component of Backstage that allows you to store your documentation with your code while still making it easy for engineers to view. Engineers write their documentation in Markdown and store it in source control, right next to their code. An MkDocs build step creates a documentation website when your CI pipeline builds the code. Backstage then pulls in the site and displays it in the portal. This makes it easy for engineers to access documentation without having to leave the Backstage interface. TechDocs also integrates with other tools and services, such as search engines, to make it easier to find and access documentation across your organization.

Pro’s and Con’s

One of the main pros of using Backstage is that it provides a central location for tracking and managing internal applications, libraries, pipelines, and websites. This can be especially useful for large organizations with distributed engineering teams, as it helps to provide a consistent view of all the software assets and resources available to the team. The catalog feature also makes it easy to declare dependencies among catalog entries and to ingest metadata from other tools and services via plugins.

Another pro of Backstage is that it includes a scaffolder tool that makes it easy for teams to spin up new projects using approved architectural blueprints. This helps to ensure consistency across projects and can save time and effort for teams that would otherwise have to follow strict conventions and standards.

One potential con of using Backstage is that it requires a significant engineering investment to set up and maintain. This may not be feasible or desirable for smaller organizations or teams with limited resources. In addition, Backstage may not be the right fit for organizations with very specific or unique requirements, as it may not offer all the features or customization options that they need.

Another potential con is that Backstage is a relatively new project, and as such, it may still have some rough edges or areas that need improvement. While the project has a growing community of contributors, it may not yet have the level of support and resources that more established solutions offer. It’s important to carefully evaluate your needs and resources when deciding whether or not to use Backstage.

Conclusion

In conclusion, Backstage is a powerful and convenient tool that can help engineering teams organize and manage their resources in one central location. With its catalog feature, teams can track and manage internal applications, libraries, pipelines, and websites, and declare dependencies among catalog entries. The scaffolder tool makes it easy to spin up new projects using approved architectural blueprints, saving time and effort for teams that would otherwise have to follow strict conventions and standards. And with TechDocs, teams can store their documentation with their code while still making it easy for engineers to view.

Overall, Backstage is a valuable resource for engineering teams looking to streamline their workflows and improve efficiency. Its combination of features and integrations makes it a powerful tool for managing and organizing resources, and its open source nature means that it is constantly evolving and improving. If you’re considering using Backstage for your team, we highly recommend giving it a try. We think you’ll find it to be a valuable addition to your engineering toolkit.