the-zoo icon indicating copy to clipboard operation
the-zoo copied to clipboard

Backstage plugin PoC

Open aexvir opened this issue 4 years ago • 2 comments

As we discussed internally the day it was launched, Spotify has launched Backstage, which aims to offer the same experience to the devs as we wanted. Obviously, our resources are much smaller, so we should probably evaluate repurposing Zoo as a plugin (or series of plugins) for Backstage instead.

I had a call with some engineers from Spotify, and after seeing what they have and sharing what we have, it seems really overlapping. As they are heavily invested into it, and our project is much less essential to our developers, the most logical approach would be to use their solution and provide our logic to it.

So far Spotify has only released the frontend for Backstage, which means that we'll have to supply our own backend, this is fine in my opinion, as we wanted to refactor our own UI either way, although this time is React, and not Vue.js.

I opened an issue in their repository yesterday, and based on the comments we'll check how complicated would it be to re-build our frontend as Backstage plugins.

https://backstage.io https://github.com/spotify/backstage https://github.com/spotify/backstage/issues/454

Scope of this PoC

We are going to cover five of our current views, in read-only mode for now

  • /services
  • /services/{service}
  • /resources
  • /resources/{resource}
  • /auditing

For this views, we'll have to:

  • [x] Remove templates, webpack server and client-side assets
  • [ ] Repurpose current views as util methods where it makes sense
  • [ ] Make sure that the GraphQL API returns the data needed for those views
  • [ ] Create a Backstage app that will hold our plugins (deployable independently)
  • [ ] Create three plugins, services, resources and auditing to interact with our GraphQL API
  • [ ] Deploy it internally and gather feedback about it

aexvir avatar Apr 03 '20 12:04 aexvir

Let us know how we (Spotify) can support!

stefanalund avatar Apr 03 '20 12:04 stefanalund

@stefanalund I updated the description with what we'll cover and the steps that we'll be taking. For now we are aiming to keep the same logic we have regarding service discovery, as there wasn't anything that would suggest otherwise in the RFC

@paveldedik will start working on it from the backend side

aexvir avatar Apr 22 '20 08:04 aexvir