Backstage: O que é e quais benefícios traz?
Introdução
Em março de 2020, a Spotify lançava a versão de código aberto do Backstage – um portal local de desenvolvedores. A missão principal era ajudar a solucionar um problema em sua infraestrutura interna e facilitar a vida dos seus desenvolvedores. Imagine que uma equipe deseja implantar algo na nuvem e nem todos os engenheiros têm conhecimento aprofundado dos provedores de nuvem utilizados pela sua empresa. É aí que entra o Backstage, unificando todas as suas ferramentas, serviços e documentação de infraestrutura em uma única interface de usuário.
Como o Backstage surgiu?
Nos últimos anos, vimos a Cultura DevOps crescer como uma forma de conter o aumento da complexidade e conflitos no ecossistema do desenvolvimento de software. Era o primeiro passo para tentar resolver um problema, que se agravou com a explosão de ferramentas para desenvolvedores. Controlar uma enorme gama de ferramentas de infraestrutura, SaaS, Plug-ins, k8s etc, exigiria mais do que apenas uma cultura de processo sólida, passou a ser necessário a criação de IDP’s.
E foi a partir disso que surgiu a plataforma de desenvolvimento mais utilizada, criada pela impressionante equipe de engenharia do Spotify da Suécia, chamada Backstage.
O que é o Backstage?
Backstage é uma plataforma aberta que permite a personalização de portais dos times de desenvolvedores para criar, gerenciar e explorar software a partir de uma única interface web. Suas funcionalidades incluem catálogo e modelos de software, documentos como código e uma variedade de plug-ins que podem estender a plataforma.
O Backstage conta com um front-end para toda a sua infraestrutura, oferecendo aos desenvolvedores uma visão geral uniforme de todos os seus recursos, independentemente de como e onde eles estão sendo executados, bem como uma maneira fácil de integrar e começar a usar essas ferramentas. Tudo isso sem a necessidade de sair da interface do Backstage.
Recursos do Backstage
O Backstage inclui vários recursos para organizar software e documentação relacionada:
– Catálogo de software: é uma fonte unificada de metadados e informações de propriedade sobre todos os softwares em que sua equipe trabalha, como microsserviços, APIs, pipelines de dados, bibliotecas e muito mais. O catálogo é baseado em arquivos YAML. Você também pode rastrear software de terceiros e ter um local para visualizar todas as ferramentas externas usadas para gerenciar seu código;
– Modelos de software: permitem definir um esqueleto de código com variáveis que podem ser preenchidas. Em seguida, você pode enviar seu modelo para GitHub ou GitLab, onde ele pode ser usado pela equipe para padronizar a criação de novos serviços;
– Pesquisa: permite escolher componentes modulares de front-end e back-end para criar a ferramenta de pesquisa certa para sua organização. Além de pesquisar seu catálogo de software, você pode adicionar suporte para outras fontes, como plug-ins, wiki, Stack Overflow ou até mesmo ChatGPT. Todos esses resultados aparecerão diretamente no Backstage para reduzir a troca de contexto;
– Documentos técnicos: permite que os engenheiros escrevam documentação técnica como arquivos Markdown que convivem com o código. A ideia é remover todo o atrito na criação de documentos e torná-los realmente fáceis de encontrar, para que os documentos sejam realmente usados. Um plug-in do Backstage criará e renderizará automaticamente um site de documentos + metadados;
– Plug-ins Backstage: por ser um projeto de código aberto, o Backstage possui um número crescente de plug-ins que podem ajudá-lo a personalizar a plataforma de acordo com suas necessidades. Plug-ins são componentes React adicionados à página de cada serviço. É possível, inclusive, construir seu próprio plug-in.
Quais problemas o Backstage resolve?
Sem uma plataforma ou portal centralizado como o Backstage, as equipes de desenvolvedores ficam à própria sorte. Isso não só prejudica a experiência do desenvolvedor, como também reduz sua produtividade.
Usar um IDP como o Backstage auxilia em:
– Visibilidade e descoberta: o Backstage fornece uma plataforma centralizada onde todos os serviços e componentes de software são registrados. Isso torna mais fácil para os desenvolvedores descobrirem os recursos existentes e entenderem como eles se encaixam na arquitetura mais ampla do sistema, aumentando a visibilidade entre equipes e projetos;
– Documentação e colaboração: ao integrar a documentação diretamente ao fluxo de trabalho de desenvolvimento, o Backstage garante que as informações relevantes sejam facilmente acessíveis a todos os membros da equipe. Também facilita a colaboração, fornecendo ferramentas para compartilhar conhecimento, feedback e melhores práticas dentro da comunidade de desenvolvedores;
– Padronização: o Backstage fornece modelos e estruturas para a criação de novos serviços e componentes. Isso ajuda a garantir a consistência nas práticas de desenvolvimento e reduz a complexidade do gerenciamento de múltiplas tecnologias;
– Gestão de infraestrutura: a plataforma oferece uma visão unificada da infraestrutura de uma organização, permitindo que os desenvolvedores gerenciem e monitorem seus serviços em um só lugar. Isso simplifica as tarefas de gerenciamento de infraestrutura, ajudando a identificar e resolver problemas rapidamente;
– Personalização: reconhecendo que não existem dois ambientes de desenvolvimento exatamente iguais, o Backstage foi projetado para ser altamente personalizável, permitindo que as equipes adaptem a plataforma para atender às suas necessidades e fluxos de trabalho específicos. Essa flexibilidade garante que os desenvolvedores possam otimizar o uso da plataforma para obter produtividade máxima.
Em resumo, criar uma Plataforma Interna de Desenvolvimento usando o Backstage oferece uma série de benefícios, incluindo centralização de recursos, padronização de processos, automação de fluxo de trabalho, visibilidade e transparência, integração com ferramentas de terceiros, colaboração aprimorada e escalabilidade. Esses benefícios combinados ajudam a impulsionar a eficiência, a qualidade e a inovação no desenvolvimento de software dentro da organização.