Conhecendo o Backstage [Parte I]

Paulo Eduardo Peixoto
4 min readOct 26, 2022

--

Algumas pessoas já me procuraram no LinkedIn, Discord e até no Twitter para tirar dúvidas sobre o Backstage, o processo para sua implementação e o que esta ferramenta pode proporcionar para as empresas aqui no Brasil.

Assim sendo, achei justo — e válido, compartilhar um pouco da experiência que adquiri em mais de um ano estudando e trabalhando com esta ferramenta.

Estarei realizando uma série de posts apresentando a ferramenta e a implementação das core features do Backstage em uma instância local.

Nesta “Parte I” vou apresentar um resumo (bem direto) da ferramenta, objetivos e características principais.

Backstage, o que é?

Antes de iniciar este artigo, acredito que seja válido apresentar (resumidamente) o que é o Backstage e seus objetivos.

Antes de mais nada, é super importante você saber que este é um projeto Open Source de iniciativa do Spotify, e ele — Backstage — nasceu de uma dificuldade enfrentada pela gigante do “streamming de músicas”: a empresa havia crescido demais.

“Ué?! E onde está o problema nisso?”, você provavelmente se perguntou. A resposta é relativamente “simples”: a empresa cresceu em proporções tão grandes que começou a “perder o controle” sobre arquiteturas de código, padrões de projetos, linguagens utilizadas, etc. Ao ponto que um novo desenvolvedor entrava na companhia e não tinha um “norte”.

Diante deste cenário, o Spotify criou uma plataforma que tinha como objetivo inicial catalogar os projetos e separá-los por contexto (API, Recurso…). Essa ferramenta surtiu resultados positivos e a “casa começou a ser organizada” por lá.

Porém, o Spotify (e, principalmente os desenvolvedores responsáveis pelo Backstage) sabiam que esse cenário era, infelizmente, comum em outras companhias. E com o espírito de colaboração mútua, disponibilizaram o projeto para que outras empresas no mesmo cenário começassem a “organizar suas casas” também.

E vale destacar que, atualmente, o Backstage é disparada a ferramenta mais utilizada quando o foco das empresas é a experiência do desenvolvedor (Developer Experience).

Principais características e objetivos

O Backstage possui core features, ou principais características destacadas em plugins específicos que remetem a objetivos claros e concisos, sendo eles:

  • Catálogo de Software;
  • Documentação Técnica (de desenvolvedor para desenvolvedor)
  • Templates de Projetos (nada mais que “modelos” para novos projetos)

Catálogo de Software

A ideia deste plugin é basicamente centralizar todos os projetos, bibliotecas e APIs desenvolvidas na companhia. Além disso, este plugin proporciona que seja criada uma “árvore” de interdependências dos projetos, como também os times/equipes “dono” do mesmo.

Documentação Técnica

Este plugin é denominado “TechDocs” e proporciona que sejam renderizadas as documentações técnicas na própria interface do Backstage. O objetivo central deste plugin é oferecer documentações de desenvolvedores para desenvolvedores. Ou seja, neste caso o foco não é uma “Documentação de Produto” mas apenas a técnica.

Templates de Projetos

Já pensou em criar um projeto em determinada linguagem, mas você acaba pensando duas vezes quando lembra do trabalho que é estrutura um novo? É para resolver este (e tantos outros) problemas que este plugin existe. Com algumas pequenas configurações, você pode determinar qual projeto será usado como base/modelo para novos projetos.

Além disso, você pode utilizar deste plugin para garantir inclusive que a infraestrutura de novos projetos sigam os padrões validados pela sua empresa.

Como iniciar um projeto baseado no Backstage?

Requisitos

Antes de iniciarmos, de fato, o desenvolvimento de um novo aplicativo Backstage é necessário validar se o seu ambiente atende os requisitos (definidos pela própria equipe responsável):

  • Sistema Operacional baseado em Unix, como Linux ou MacOS*;
  • Usuário root;
  • curl ou wget;
  • Versão LTS do Node.js;
  • Gerenciador de pacotes yarn;
  • Docker;
  • Git.

*Usuários Windows, precisam ter o WSL.

Passo a Passo

A equipe responsável pela manutenção do Backstage disponibiliza para a comunidade um CLI exclusivo para uso na criação de novos aplicativos. Assim sendo, basta rodar em seu terminal o comando npx @backstage/create-app, informar um nome para seu aplicativo (no próprio terminal) e, por fim, aguardar que toda a “mágica” seja realizada.

Se tudo ocorrer bem, você deverá visualizar o seguinte cenário em seu terminal:

Basta então acessar o diretório em que o projeto foi criado e rodar o comando yarn dev. Uma instância será gerada e você poderá acessar o seu aplicativo Backstage em http://localhost:3000 em seu navegador favorito, e terá algo muito parecido com isso:

IMPORTANTE: Esta primeira versão possui o mínimo de dados necessários para que a plataforma exiba as informações. Todos estes dados são “mockados”.

Pontos Importantes

  • app-config.yaml é o arquivo central de configurações para seu aplicativo Backstage;
  • Backstage adota uma arquitetura de “Monorepo”, em que você utiliza apenas um repositório que pode conter vários projetos ao invés de distribuir esses projetos em vários repositórios;
  • É possível desenvolver plugins personalizados para o Backstage;
  • É possível você (e qualquer desenvolvedor) contribuir com o Backstage, lembre-se: este é um projeto Open Source.

Concluímos a proposta para esta “Parte I”, enquanto preparo os próximos conteúdos, se você se interessa pelo Backstage te convido a conhecer o servidor brasileiro no Discord.

Se quiser me conhecer melhor, me adicione no LinkedIn ou me siga no GitHub.

Essa é uma série de post’s, então não deixe de ler as outras “partes”:

--

--

Paulo Eduardo Peixoto

I’m a backend developer. I made a career transition in 2020 and today I work as a Full Systems Analyst at Raízen.