¿Qué es Backstage?
Como indican en su web, Backstage es una plataforma abierta para construir portales de desarrollo, aunque seguramente con esta definición os hayáis quedado como me quedé yo la primera vez 😃
Backstage unifica las herramientas de infraestructura, servicios y documentación para crear un entorno de desarrollo racionalizado E2E.
Seguramente si le echáis un ojo a su demo os hagáis una idea algo más concreta de lo que ofrece.
El core de Backstage está formado por estas piezas:
- Backstage Software Catalog para gestionar todo el software (microservicios, librerías, pipelines de datos, sitios web, modelos ML, etc.)
- Backstage Software Templates para poner en marcha rápidamente nuevos proyectos y estandarizar las herramientas con las mejores prácticas de la organización.
- Backstage TechDocs para facilitar la creación, el mantenimiento, la búsqueda y el uso de la documentación técnica, utilizando un enfoque "docs like code".
- Además, un completo ecosistema de plugins open source que amplían aún más la personalización y funcionalidad de Backstage
Actualmente Backstage es un proyecto de incubación de CNCF tras graduarse de Sandbox.
¿Por qué Backstage?
Visto su propuesta, las ventajas de Backstage son claras:
– Para los responsables de ingeniería, permite mantener los estándares y las mejores prácticas en toda la organización, y puede ayudar a gestionar todo el ecosistema tecnológico, desde las migraciones hasta la certificación de pruebas.
– Para los usuarios finales (desarrolladores), agiliza y simplifica la creación de componentes de software de forma estandarizada, y proporciona un lugar central para gestionar todos los proyectos y la documentación.
– Para los ingenieros de plataforma, permite la extensibilidad y escalabilidad al permitir integrar fácilmente nuevas herramientas y servicios (mediante plugins), así como ampliar la funcionalidad de los existentes.
– Para todos, se trata de una experiencia única y coherente que reúne en un único lugar todas las herramientas, recursos, normas, propietarios, colaboradores y administradores de la infraestructura.
Arquitectura Backstage
Backstage consta de 3 partes. Backstage se separa de esta manera en función de los grupos de colaboradores que trabajan con Backstage:
- Core – Funcionalidad base creada por los desarrolladores del proyecto.
- Aplicación – La aplicación es una instancia de una aplicación Backstage que se despliega y se ajusta. La aplicación une la funcionalidad básica con plugins adicionales. La aplicación es creada y mantenida por desarrolladores de aplicaciones, normalmente un equipo de productividad dentro de una empresa.
- Plugins – Funcionalidad adicional para hacer que la aplicación Backstage sea útil para un cliente concreto. Los plugins pueden ser específicos de una empresa o de código abierto y reutilizables. En Spotify hay más de 100 plugins creados por más de 50 equipos diferentes. Este modelo es muy potente, permitiendo que las contribuciones de varios equipos de infraestructura se añadan a una única experiencia unificada para desarrolladores.
El siguiente diagrama muestra el aspecto de Backstage cuando se despliega en una empresa que utiliza el plugin Tech Radar, el plugin Lighthouse, el plugin CircleCI y el catálogo de software.
Hay 3 componentes principales en esta arquitectura:
- El núcleo de la interfaz de usuario de Backstage
- Los plugins de interfaz de usuario y sus servicios de apoyo
- Las bases de datos
La ejecución de esta arquitectura en un entorno real suele implicar el despliegue de los componentes en contenedores.
User Interface
La interfaz de usuario es una fina envoltura del lado del cliente alrededor de un conjunto de plugins. Proporciona algunos componentes básicos de la interfaz de usuario y bibliotecas para actividades compartidas, como la gestión de la configuración.
Cada plugin suele estar disponible en la interfaz de usuario en una URL específica. Por ejemplo, el plugin Lighthouse está registrado en la interfaz de usuario en /lighthouse
Arquitectura de Plugins
Hay 3 tipos de plugins:
- Standalone
- Service backed
- Third-party backed
Standalone Plugins
Estos plugins se ejecutan completamente en el navegador. El complemento Tech Radar, por ejemplo, simplemente muestra información codificada. No realiza ninguna petición API a otros servicios.
Service backed plugins
Estos plugins realizan solicitudes API a un servicio que se encuentra dentro del ámbito de la organización que ejecuta Backstage.
El plugin Lighthouse, por ejemplo, realiza peticiones al servicio lighthouse-audit. El servicio lighthouse-audit es un microservicio que ejecuta una copia de la biblioteca Lighthouse de Google y almacena los resultados en una base de datos PostgreSQL.
Third-party backed plugins
Estos plugins son similares a los plugins Service backed. La principal diferencia es que el servicio que respalda el plugin está alojado fuera del ecosistema de la empresa que aloja Backstage.
El plugin CircleCI es un ejemplo de plugin respaldado por terceros. CircleCI es un servicio SaaS que puede ser utilizado sin ningún conocimiento de Backstage. Tiene una API que un plugin de Backstage consume para mostrar contenido.
Las peticiones que van a CircleCI desde el navegador del usuario pasan a través de un servicio proxy que Backstage proporciona. Sin esto, las peticiones serían bloqueadas por las políticas Cross Origin Resource Sharing que impiden que una página del navegador servida en https://example.com sirva recursos alojados en https://circleci.com.
Marketplace de Plugins
En esta URL podéis encontrar todo un completo ecosistema de plugins open-source usables en tu despliegue Backstage: https://backstage.io/plugins









Deja un comentario