Skip to content

Backstage Infrastructure: CBA practice questions

Backstage infrastructure is about how the platform is assembled and what it needs to run. The architecture overview splits it into three parts: core, the base functionality provided by the open-source project; the app, an instance of Backstage that an organization configures and deploys; and plugins, which add the features.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Backstage Infrastructure covers in CBA

Backstage infrastructure is about how the platform is assembled and what it needs to run. The architecture overview splits it into three parts: core, the base functionality provided by the open-source project; the app, an instance of Backstage that an organization configures and deploys; and plugins, which add the features. The frontend is a client-side application that is a thin wrapper around a set of plugins, each of which usually owns a route such as /catalog.

Plugins differ in what they talk to. Standalone plugins run entirely in the browser without API calls. Service-backed plugins call a service that the organization operates, and third-party-backed plugins call an external service, for example a hosted CI system. To avoid browser CORS restrictions, calls to third-party services are passed through a proxy that Backstage provides.

The backend wires things together. Backend plugins operate independently of each other, and the documentation stresses that there can be no direct communication between plugins through code. The backend entry point is packages/backend/src/index.ts, where createBackend from @backstage/backend-defaults creates the backend, backend.add registers each plugin through a dynamic import such as import('@backstage/plugin-catalog-backend'), and backend.start runs it. Modules extend a single plugin, which must be installed in the same backend.

State lives in databases accessed through Knex, and each plugin gets its own logical database so it stays isolated and can migrate its schema independently. SQLite is mainly for development and testing, and PostgreSQL is the production choice, configured under backend.database with client pg and connection details supplied from environment variables. Plugins also get their own cache connection; memory is intended for local development, while stores such as Redis, Valkey or memcache are recommended in production.

Authentication is configured under auth.providers in app-config, with settings kept per environment and selected by auth.environment. Backstage ships providers including GitHub, GitLab, Google, Okta, Microsoft Azure, Auth0 and others. Sign-in must be configured in the frontend, with a SignInPage component that must yield a valid Backstage user identity, and in the auth backend, where sign-in resolvers map the external identity to a user; when several providers are enabled they must resolve to the same identity. Guest access helps when testing and is not meant for production.

The Kubernetes deployment guide shows a minimal production shape. It creates a backstage namespace, runs PostgreSQL with a Secret holding POSTGRES_USER and POSTGRES_PASSWORD, a PersistentVolume and claim, and a ClusterIP Service on port 5432. Backstage itself runs as a Deployment of the container image, which serves frontend and backend together on port 7007, with a second Secret for values such as a GitHub token, both loaded with envFrom. A Service maps port 80 to the pod's http port, and the guide leaves exposure outside the cluster to an Ingress or external load balancer. It also reminds readers that Kubernetes Secrets are base64-encoded, not encrypted.

Key points

  • Each backend plugin gets its own logical database, so schemas stay isolated.
  • Backend plugins are isolated and cannot communicate with each other directly through code.
  • Browser calls to third-party services go through the Backstage proxy to avoid CORS failures.
  • The Backstage container serves both frontend and backend on port 7007.

Three sample questions

27 CBA questions on Backstage Infrastructure, 27 with explanations. How practice works

Question 1

Which of the following best describes Backstage's architecture?
  1. A.A monolithic application with embedded plugins
  2. B.A client-server architecture with plugin-based frontend and backend
  3. C.A serverless architecture running on cloud functions
  4. D.A microservices-based application with each plugin as an independent service

Correct answer: B

Backstage follows a client-server architecture with a React-based frontend and Node.js backend, both of which use a plugin system for extensibility.

Question 2

What statement best describes the Backstage client-server architecture?
  1. A.The frontend and backend are completely isolated and communicate solely through REST APIs
  2. B.A React-based frontend communicates with a Node.js backend through HTTP, both sharing a plugin system that maps frontend plugins to backend plugins
  3. C.The frontend is a thin client that only renders data, while the backend contains all business logic
  4. D.Each plugin has its own dedicated frontend and backend microservice that operate independently

Correct answer: B

Backstage uses a React frontend and Node.js backend that communicate over HTTP. The plugin system is shared between frontend and backend, with frontend plugins often having corresponding backend plugins that provide necessary APIs and services.

Question 3

What is the recommended database for a production Backstage deployment?
  1. A.SQLite
  2. B.MongoDB
  3. C.PostgreSQL
  4. D.MySQL

Correct answer: C

PostgreSQL is the recommended database for production Backstage deployments due to its reliability, feature set, and compatibility.

Practice this topic

Focus mode keeps every question on Backstage Infrastructure until you leave it. 10 free guest answers, then a free account; no credit card.

Or open CBA practice across all topics.

Sources

The explanation above was checked against these official documents.