Certified Backstage Associate (CBA)

Backstage Basics

Why Backstage

Developers rarely spend all day writing code. Instead, they juggle a variety of tools:

CategoryExample Tools
Source Code ManagementGitHub, GitLab
CI/CDJenkins, Travis CI, CircleCI
DocumentationConfluence, GitHub Pages, Google Docs
Observability & MonitoringPrometheus, Grafana, OpenTelemetry
AlertingPagerDuty, Alertmanager
Cloud ConsolesAWS Console, Azure Portal, GCP
FinOpsCloudHealth, Kubecost

The image is an infographic titled "Why Backstage?" showing a person at a desk with logos of various tools like GitHub, Travis CI, Prometheus, Grafana, AWS, and Azure. It lists reasons for using Backstage, including source code management, CI/CD tools, service documentation, observability tools, alerting systems, infrastructure management, and resource cost tracking.

Note

Switching between tabs wastes time and mental energy—especially for new hires who must bookmark dozens of URLs.

1. A Single Developer Portal

Imagine all your tools available on one site. A unified portal lets developers log in, find everything they need, and focus on writing code instead of searching for links.

2. Unified Service Documentation

Service docs spread across Confluence, Google Docs, GitHub Pages, or internal wikis create friction.

The image illustrates different teams using various tools like Confluence, Google Docs, Internal Website, and GitHub Pages, with a developer from Team X accessing a unified interface.

The image illustrates different teams using various tools like Confluence, Google Docs, Internal Website, and GitHub Pages, with a developer from Team X accessing a unified interface.

Backstage’s software catalog stores metadata and docs together—searchable, versioned, and always up to date.

3. Clear Ownership and Faster Answers

Outdated docs force developers to track down service owners:

The image shows a developer from Team X asking, "Hey, do you know who owns this service?" to a group labeled as Manager, Teammate 1, Teammate 3, and Teammate 4. It highlights a communication or ownership query.

Even after finding someone, they may have moved on:

The image shows a conversation between a developer from Team X and another person, discussing outdated documentation and redirecting to a manager from Team C for assistance. The title is "Why Backstage?"

Common frustrations:

  1. Hours spent hunting for documentation
  2. Difficulty identifying service owners
  3. Time lost coordinating contacts

The image is a slide titled "Why Backstage?" highlighting three challenges: spending hours searching through platforms, struggling to identify service owners, and wasting time finding documents and contacts instead of coding.

Backstage solves this by displaying ownership details alongside documentation in a central hub:

The image is a diagram explaining the benefits of using Backstage, highlighting a "Central Hub" for searchable locations, documentation, and ownership, with goals to find documents quickly and contact the right person.

4. Visualizing Service Dependencies

Updating a service without insight into downstream dependencies can cause failures:

The image is a flowchart illustrating a software repository (documentation hub) connected to four software components (A, B, C, D), each with its own dependent software.

A portal that visualizes these relationships helps you see which applications rely on your service before deploying changes.

5. Debugging Third-Party Integrations

Troubleshooting email delivery often starts with SendGrid:

The image shows a person sitting with a laptop and a chat conversation discussing the lack of documentation for an email service setup. The text "Why Backstage?" suggests a context of improving documentation or processes.

import os
import sendgrid
from sendgrid.helpers.mail import Mail, Email, To, Content

SENDGRID_API_KEY = os.getenv("SENDGRID_API_KEY")
SENDER_EMAIL = os.getenv("SENDER_EMAIL")
RECEIVER_EMAIL = "[email protected]"
SUBJECT = "Welcome to Our Application!"
BODY = "Thank you for using our app! We are glad to have you onboard."

if not SENDGRID_API_KEY or not SENDER_EMAIL:
    raise EnvironmentError("Missing SendGrid configuration. Check environment variables.")

sg = sendgrid.SendGridAPIClient(api_key=SENDGRID_API_KEY)
from_email = Email(SENDER_EMAIL)
to_email = To(RECEIVER_EMAIL)
content = Content("text/plain", BODY)
mail = Mail(from_email, to_email, SUBJECT, content)

try:
    response = sg.send(mail)
    print(f"Email sent successfully! Status Code: {response.status_code}")
except Exception as e:
    print(f"Failed to send email: {e}")

If that fails, you might switch to SMTP:

import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

SMTP_SERVER = os.getenv("SMTP_SERVER")
SMTP_PORT = int(os.getenv("SMTP_PORT", 587))
SENDER_EMAIL = os.getenv("SENDER_EMAIL")
SENDER_PASSWORD = os.getenv("SENDER_PASSWORD")
RECEIVER_EMAIL = "[email protected]"
SUBJECT = "Welcome to Our Application!"
BODY = "Thank you for using our app! We are glad to have you onboard."

if not SMTP_SERVER or not SENDER_EMAIL or not SENDER_PASSWORD:
    raise EnvironmentError("Missing SMTP configuration. Check environment variables.")

message = MIMEMultipart()
message["From"] = SENDER_EMAIL
message["To"] = RECEIVER_EMAIL
message["Subject"] = SUBJECT
message.attach(MIMETText(BODY, "plain"))

try:
    with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
        server.starttls()
        server.login(SENDER_EMAIL, SENDER_PASSWORD)
        server.sendmail(SENDER_EMAIL, RECEIVER_EMAIL, message.as_string())
        print("Email sent successfully!")
except Exception as e:
    print(f"Failed to send email: {e}")

Without dependency tracking, downstream services can break. Backstage’s graphing prevents these surprises.

6. Automating New Project Scaffolding

Launching a new service manually requires many steps:

  • Creating a GitHub repository
  • Provisioning Kubernetes clusters
  • Setting up linting, formatting, tests, and CI/CD
  • Configuring repository permissions
  • Creating databases and DNS entries
  • Deploying to production

The image is a flowchart illustrating the steps involved in using Backstage for software development, including creating a GitHub repo, setting up tooling, provisioning a Kubernetes cluster, and deploying an application.

Backstage templates automate all of this with a single button click:

The image is a flowchart explaining the benefits of using Backstage, highlighting the elimination of manual tasks, ease of project creation with a button click, and automation through predefined templates.

Template Benefits

  • Centralized template management
  • Enforced best practices
  • Language- and framework-specific scaffolds

The image is a slide titled "Why Backstage?" highlighting four benefits: Centralized Template Management, Standardized Practices, Language Support, and Framework Support.

7. Self-Service Infrastructure Requests

Filing tickets for S3 buckets or VMs can take days:

The image shows an illustration of a developer working on a laptop and a chat conversation with an infrastructure team discussing setting up an S3 bucket.

With Backstage, developers fill out a form:

The image shows a developer sitting at a desk with a laptop, next to an infrastructure request form detailing virtual machine specifications and a "Submit Request" button.

The infra team reviews, approves, and the portal provisions resources automatically with correct policies.

8. Internal Developer Portals (IDPs)

All these scenarios led to Internal Developer Portals—central hubs that aggregate tools, documentation, and resources so teams can build, test, and deploy software efficiently.

The image is a flowchart illustrating the concept of "Internal Developer Portals," showing a development team accessing tools, documentation, and resources, leading to coding, testing, and deployment stages.

Core IDP Features

FeatureDescription
Software CatalogSearchable registry of all company services
Documentation HubLinked docs for each service
Ownership & Dependency TrackingClear ownership and live dependency graphs
Scaffolding TemplatesAutomated project boilerplates
Admin ControlsPolicy enforcement and governance

The image lists features of IDPs, including a catalog, documentation hub, ownership tracking, templates, and admin controls, each with a brief description.

Key Benefits

  • Streamlined access and searchability
  • Consistent, up-to-date documentation
  • Enhanced collaboration and community
  • Faster development with pre-built code samples
  • Quicker onboarding for new team members
  • Self-service provisioning with guardrails
  • Governance via policies and templates

The image lists the benefits of IDPs, including streamlined accessibility, effective documentation, enhanced collaboration, accelerated development, faster onboarding, and self-service capabilities.

Backstage: Your Open Source IDP Framework

Backstage is an open source platform for building Internal Developer Portals. It provides:

  • A software catalog with metadata and search
  • Built-in support for Markdown, MkDocs, and TechDocs
  • An extensible plugin architecture
  • Scaffolding tools for project templates
  • Role-based access control and policy enforcement

We’ll dive into Backstage’s architecture, core plugins, and best practices for running your own portal.

Watch Video

Watch video content

Previous
Exam Overview