Concepts Flashcards
Backstage 3 main projects
Core
Plugins
App
What is core?
Base functionality built by core developers in the open source project
The 3 main components of a simple backstage architecture
Core backstage UI
UI Plugins and their backing services
Database
Architecture of the Backstage UI
thin, client-side wrapper around a set of plugins
How does a plugin makes itself available in the UI?
Through a dedicate URL such as /lighthouse
Where are plugin deployed?
backstage/plugins
How are plugin installed?
As React components in your Backstage application
What is CatalogIndexPage?
a plugin for full-page view to browse entities in the Backstage catalog
Steps to install a plugin
1) Import it in the app
2) Add it as an element like this
Code for installing a plugin
import { CatalogIndexPage } from ‘@backstage/plugin-catalog’;
…
const routes = (
<FlatRoutes>
...
<Route path="/catalog" element={<CatalogIndexPage></CatalogIndexPage>} />
...
</FlatRoutes>
);
What are the 3 possible plugin architectures?
Standalone
Service backed
Third-party backed
What is standalone plugin?
A plugin that run entirely in the browser
Example of standalone plugin
Tech Radar plugin
Explain service backed plugins
Plugins that make API requests to a service within the purview of the organisation running Backstage
Example of service backed plugins
Lighthouse plugin
Software catalog
Architecture of lighthouse-audit-service.
Microservice
Copy of Google’s Lighthouse library
Stores the results in a PostgreSQL database
Explain software catalog plugin
Retrieves a list of services, or “entities”, from the Backstage Backend service and renders them for the user.
Explain third-party backed plugins
similar to service backed plugins
backing service is hosted outside of the ecosystem of the company
Example of third-party backed plugins
CircleCI
What is the difference between serviced backed plugins and third-party backed plugins
Third-party backed plugins need a proxy
Why do third-party backed plugins need a proxy?
Requests going to the third-party backed plugin from the user’s browser are passed through the proxy service. Without this, the requests would be blocked by CORS
What technology does Backstage use for packaging?
NPM
What are the two ways Backstage uses NPM?
1) distribution of libraries
2) structuring of code within projects
What are the classes of packages within Backstage?
1) Frontend packages
2) Common packages
3) Backend packages
4) Plugin packages
5) External plugin packages