Building a production Docker image for Backstage
Host build versus multi-stage build, matching the local Node.js version to the base image, which app-config files go into the image, and keeping secrets out of image layers.

Packaging and running Backstage in production: container images, Kubernetes, PostgreSQL, caching, splitting the backend and serving the frontend.
Host build versus multi-stage build, matching the local Node.js version to the base image, which app-config files go into the image, and keeping secrets out of image layers.
Running Backstage as a Kubernetes Deployment: namespace, Secrets and encryption at rest, the Service and ingress, health probes, replicas, and moving PostgreSQL off node-local storage.
Database choices for Backstage: per-plugin logical databases, managed PostgreSQL versus an in-cluster operator, connection settings, version requirements such as PostgreSQL 12 for search, and upgrade planning.
When one backend process is not enough: running plugin groups as separate services, routing by plugin ID, a custom DiscoveryService, and why multi-region copies make sense only for single plugins.
Choosing a shared cache store for multiple Backstage instances: Redis, Valkey, Memcache, Infinispan or in-memory, what plugins cache, and sizing and availability of the cache.
Splitting the static frontend from the backend: removing the app-backend plugin, serving the bundle from NGINX or a CDN, and handling the frontend configuration the backend no longer injects.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.