Request access

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Migrate from Backstage to Rely.io

John Demian
John Demian
Head of Product Marketing
Rely.io
John Demian
April 2, 2024
9
 min read
Migrate from Backstage to Rely.io

The title of the article says migrate but it should have said upgrade since going from Backstage to Rely.io feels like a major upgrade.

But before we get into the nitty-gritty, let’s go over the basics to understand what Backstage is and what are some of its advantages and shortcomings.

What is Backstage.io

Back in 2020, the engineers at Spotify decided to open-source their homegrown developer portal and unsurprisingly, it was a big hit right off the bat. It gained significant traction from large enterprises since it makes it fast and simple for developers to build components in a standardized way providing a central pillar that manages all projects and documentation.

What problems does Backstage solve?

Backstage tries to solve the “big infrastructure problem” with a platform that aims to collect all your infrastructure tooling, services, and knowledge under a single roof—everything your software engineers need to be proficient and deliver consistent performance.

As you can imagine, enterprises will often have a massive software and infrastructure stack that can get pretty messy. This means they have loads of developers and teams working on different projects with little to no overlap, creating information silos.

These small silos of information make it difficult for engineers to do their job efficiently. In fact, developers spend an average of 3 hours a day on non-core work just trying to figure things out.

This is what Backstage is trying to solve, by creating a platform that enables software engineers to have a single pane of glass that abstracts away a big chunk of the infrastructure, CI/CD, and knowledge needed to run and develop the software.

Is Backstage the right solution for you?

Backstage can be a powerful tool when you have the resources to develop the IDP and customize it to your needs. The caveat is that you’ll need to dedicate resources to custom-implement and then manage every component.

Depending on the size of the organization, this can be a daunting task that proves to be too difficult to undertake so smaller companies resolve to store information in different Notion and Google Sheets documents.

At the same time, developers come in all shapes and sizes and might not have the specific knowledge needed to develop an IDP using Backstage, requiring them to be proficient in React and NodeJS.

And if that’s not enough to answer your questions about whether or not Backstage is the right fit for you, once you build your IDP you’ll have to constantly maintain it. This particular problem is an issue for both large and small teams since it takes a dedicated team to manage the updates and incentivize the adoption of the IDP throughout the engineering teams.

Alternative to Backstage.io

Stage enter Rely.io, an Internal Developer Platform that takes minutes to set up instead of days or even months. We’ve built Rely.io to empower engineering teams in fostering service ownership and a culture of engineering excellence .

One of the biggest differences between Rely.io and Backstage is that we’ve developed our service specifically for fast-moving teams which means we mitigate the long build times for an IDP by creating an experience that allows engineering teams to get going faster than ever using prebuilt integrations with the most popular third-parties. 

These out-of-the-box integrations come packed full of configuration options that allow you to tweak the most minute details in order to get a dashboard that’s relevant to you and your team.

The seamless integration between Backstage and Rely offers two modes of operations: an one-time export using a dedicated endpoint and a scheduled data export built on top of the Backstage internal scheduler..

Installing the plugin is straightforward using yarn.

> cd packages/backend && yarn add @rely/backstage-plugin-rely-migration-plugin-backend

Following the installation you’ll need to create the plugin file, update the backend index to include the Rely.io plugin, and lastly configure the Proxy in the app-config.yml. A complete rundown of the migration configuration can be seen here.

Why move from Backstage to Rely.io?

Since you are reading this section, I’m sure you might have a reason of your own to make the switch but I’ll cover a couple of the most important ones. 

Software Catalog

At the core of any Internal Developer Portal, the Software Catalog is one of the most used resources by engineers. It should map out every aspect of your software stack, from repositories to monitoring tools, infrastructure, and everything in between. 

Your software catalog is going to provide a real sense of ownership and observability into the entire software development life cycle, leaving little room for unanswered questions when it comes to the development processes of your software engineers.

While both services offer a software catalog, the main difference between the two comes from the process of building and maintaining it. 

With Backstage, the source for the components of your software catalog comes in the form of metadata YAML files.

While there are plenty of plugins in their open-source library that you can use to jump-start the catalog creation process you’ll most likely will have to custom-code the plugins that you’ll need yourself. The process is well-documented but the downside is that you’ll have to maintain the plugins yourself once they’ve been deployed.

Rely.io has developed a much simpler process for integrating your software stack through the use of these out-of-the-box integrations that are available as soon as you sign up to the app. Deploying them takes just a few minutes and the process requires no coding.

Once your services are connected to Rely.io, the data will flow automatically and will update the pre-built dashboards in real-time. Besides having the benefit of getting these integrations pre-built, not managing them is a huge resource saver for your team especially when it comes to operational cost.

Developer Self Service

Backstage Scaffolder allows developers to create templates that can be used to deploy actions like initializing repositories or launching infrastructure assets. These help organizations promote standardization throughout their entire engineering team.

DevOps engineers define these templates that can be used by developers to save time by starting new projects “the right” way without having to go from scratch every time.

The downside is that most configurations will require the use of Typescript(and lots of it) especially if you are trying to expand the functionality to cover day-2 operations.

With Rely.io, your engineers are going to be able to deploy services and resources faster and easier without sacrificing company standards. The templates can be easily created without having to mess with any JavaScript and platform engineers can import their already-built APIs and back-offices straight into the platform.

The visual Workflow Builder and AI Assistant can help you deploy the processes effortlessly but in some cases, the complexity of the workflow will require more finessing for it to be efficient. In that case, we have the Wofkflow as Code option ready to go which can tackle even the most complex tasks.

Once the new service or resource is launched, the Software Catalog will automatically find it and update any dashboard or scorecard that it will impact.

Scorecards and leaderboards

Scorecards are an important tool in software development as they ensure engineers adhere to the development standards employed throughout the company. They provide a method to quantify the maturity of a product which increases the quality of the end product.

Backstage doesn't have scorecards by default you can use a third party to create these scorecards. This is where Rely.io comes into play with its highly customizable Scorecards which allow your teams to define and follow standards.

From DORA metrics to observability maturity, production readiness, and operational maturity, these scorecards can provide simple answers to complex questions. 

The cost

This is where things get interesting. On paper, Backstage is an open-source solution that you can host on your infrastructure with virtually 0 cost. The reality is very different from that since the cost of ownership is quite high. 

The cost of ownership for Backstage is reported to be about 150K USD for every 20 developers. Operating Backstage will require a serious commitment of both time and resources which for an average-sized company might put a real dent into their company wallets.

One thing to note is that with Backstage there’s an added opportunity cost of missing features on top of the operating cost. These missing features and functionalities can directly impact the engineer's capacity to perform or react to critical issues promptly.

Furthermore, there is also a cost associated with premium plugins like Soundcheck which is used for analytics and reporting, RBAC which is used to control who gets access to your IDP, and Insights which benchmarks Backstages adoption.

On the other hand, Rely.io comes out of the gate with a price tag of 25 USD/developer for yearly contracts or 30 USD/developer/month which is all a company would end up paying for. The transparent pricing makes it easy for our customers to figure out the true cost of ownership and budget accordingly.

Another benefit comes in the form of the ever-expanding library of pre-built plugins which Rely.io users get for free. You can keep an eye on the change log and the Rely.io Blog to get a sense of the updates and roadmap.

Plugin Example

Plugins are essential for Backstage as they are the medium through which you get your data into your Backstage IDP. They are treated as self-contained web apps and can be virtually anything you can think of provided you can build them yourself.

So let’s look at an example of how you could create a plugin that would get data into Backstage from Datadog, a popular monitoring tool, and Github which will handle your repositories.

I assume at this point that you already have Backstage running on your end but if you haven’t done that yet, this quick tutorial will show you how that’s done.

GitHub is pivotal for repository management and while there are other solutions out there, I’ll just over the setup for GitHub as most of them will work the same. Integrating Github with Backstage will allow your team to consolidate their development operations by getting repository information directly in their developer portal.

You’ll begin with finding a solution that will manage the secured tokens and that’s going to be handled by Hasicorp’s Vault. 

Install the Vault by using the following code: 

> yarn add --cwd packages/app @backstage/plugin-vault

Once the plugin is installed you’ll have to configure it by changing the app config in app-config.yml to to include the secrets engine by adding the following block of code: 

> vault:
baseUrl: ${VAULT_ADDR}
token: ${VAULT_TOKEN}
secretEngine: secret # This is the name of your secrets engine. By default, vault uses "secrets
kvVersion:2

Once we have a way to manage the access tokens we can move on to installing the Gihub integration into our Backstage. Run the code:

yarn add @roadiehq/backstage-plugin-github-pull-requests

This is an enhanced version that will add a UI with dedicated views for monitoring pull requests and reviewing code changes effectively. 

But before you can start using the plugin there are a few things you’ll need to configure. Most of these configurations can be done in the EntityPage.tsx file and if you really want to see how it’s done you can follow along this tutorial.

Once the configurations is done you’ll have to tackle the data ingestion and setup. The GitHub plugin automatically fetches data about pull requests, branches, and commits. This is typically going to happen when you first integrate them and usually requires minimal manual intervention afterward.

Next up is the DataDog integration which will require us to integrate each of the different products it has into Backstage. So for this example lets look at an easier example which is the DataDog Real User Monitoring (or RUM) which will allow you to monitor the real-time performance of your users.

We start off by installing the Datadog plugin into Backstage:

cd packages/app
yarn add @roadiehq/backstage-plugin-datadog

Next, there’s a little bit of configuration that you’ll need to do in the plugins.ts and TntityPage.tsx files you can get full details here.

Once configured you’ll need to create a public URL for your dashboard. 

You’ll then have to add the Datadog Dashboard URL to the plugin’s metadata:

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: sample-service
description: |
A sample service
annotations:
datadoghq.com/dashboard-url: <DATADOGURL>

And that should get your your first Dashboard from Datadog to Backstage.

How to integrate Rely.io with Github and Datadog

Github

Installation is done by using the Rely.io integration page where you'll be redirected to GitHub App's integration form, login to your GitHub account. Submit the form by providing the necessary permissions (official docs here).

Once you’re done, rely will be able to ingest the repositories, issues, pull-request, and workflows that it has access to.

The best thing about this process is that your entire repository is discovered in a few short minutes.

That’s it. 

You have your GitHub integration with Rely.io ready to go. From this point forward you can either go with the out-of-the-box rules or if you are feeling adventurous you can tweak the settings to your liking.

Upon installing Rely offers OOTB automation rules to best map the assets that are discovered in Github into entities in your software catalog. This will allow you to populate and meaningfully link entities in your software catalog automatically.

You can also choose whether you want to use these rules that will automatically update your software catalog or create suggestions so you can manually accept what goes in there and what is filtered out - your call.

The output of these automation rules will look something like this in your software catalog:

Datadog

To get Datadog installed into Rely.io you’ll need to create an Application key in Datadog with the necessary scopes and permission (official docs here) and paste them into the two-step wizard in Rely.io.

Once that’s done, the installation is done. It’s that simple!

Now you’ll be able to ingest the services, hosts, cloud assets, metrics, and SLOs that your Datadog has access to.

The default automation rules for the Datadog plugin work as follows:

When you import your Datadog users and teams  into Rely.io you can either merge them into the teams that have previously been created by the Github plugin or you can create entirely new entities from the ones 

Similarly to teams and users they can either create new entities or be merged into previously existing ones, thus fleshing them out even further with the relevant information found in Datadog:

  • Metrics
  • SLOs
  • Links to Documentation
  • Links to observability dashboards
  • The different environments the service is deployed to
  • Etc.

By default, if you you have the appropriated labels in place cloud assets can automatically be merged to the and environments they’re supporting and are populated with relevant information found in Datadog:

  • Cloud Provider
  • Asset Type
  • IaC tooling
  • IaC code definition
  • Links to observability dashboards

Conclusion

There is no right or wrong answer to what is the perfect IDP since it all comes down to your team's needs. The process of choosing one over the other should revolve around the resources your company can dedicate to an IDP and whether or not it fits the requirements of your engineers.

John Demian
John Demian
Head of Product Marketing
Rely.io
John Demian
On this page
Contributors
Previous post
There is no previous post
Back to all posts
Next post
There is no next post
Back to all posts
Our blog
See related articles
Why does improving Engineering Performance feel broken?
Why does improving Engineering Performance feel broken?
Improving engineering performance often feels broken due to challenges like misaligned goals and resistance to change. Explore insights and strategies to effectively enhance performance and foster growth.
Samir Brizini
Samir Brizini
December 17, 2024
10
 min
Top Backstage Alternatives
Top Backstage alternatives
The top alternatives and respective trade-offs to the traditional IDP experience offered by Spotify's Backstage
Samir Brizini
Samir Brizini
December 11, 2024
5
 min
Internal Developer Portals: Autonomy, Governance and the Golden Path
Internal Developer Portals: Autonomy, Governance and the Golden Path
Explore how to empower development teams by balancing autonomy and governance, enhancing productivity, and enforcing standards with Internal Developer Portals
Tiago Barbosa
Tiago Barbosa
October 31, 2024
15
 min