SEEKERSLAB
Solutions
Products
Services
Resources
Company
Request Demo
SEEKERSLAB

Setting new standards in cloud-native security

Solutions
  • CNAPP
  • CSPM
  • CWPP
  • CIEM
  • SIEM
  • SOAR
Products
  • KYRA AI Agent
  • FRIIM CNAPP
  • Seekurity XDR
  • Seekurity SIEM
  • Seekurity SOAR
Services
  • Security SI
  • Development SI
  • Cloud Migration
  • MSA
  • OEM/ODM
Resources
  • Blog
  • Whitepapers
Company
  • About Us
  • Partners
  • Newsroom
  • Press Kit
  • Contact
Contact Info
  • +82-2-2039-8160
  • contact@seekerslab.com
  • 28 Digital-ro 33-gil, Guro-gu, Seoul, South Korea
Newsletter

Get the latest security trends and news

© 2026 Seekers Inc. All rights reserved.

Privacy PolicyTerms of ServiceCookie Policy

KYRA AI

AI-powered assistant

Hello! 👋

Ask me anything about SeekersLab products and services.

SEEKERSLAB
Solutions
Products
Services
Resources
Company
Request Demo
Home/Blog/Beyond DevOps to Platform Engineering: A Complete Guide to Building a Developer Self-Service Portal (IDP) with Backstage
Tech BlogJuly 20, 2026Chris Jang1 views

Beyond DevOps to Platform Engineering: A Complete Guide to Building a Developer Self-Service Portal (IDP) with Backstage

This guide provides comprehensive instructions for building a Backstage-based Developer Self-Service Portal (IDP), a core component of the transition to Platform Engineering. It thoroughly covers practical strategies and implementation steps for quantitatively improving developer productivity and system stability.

#Platform Engineering#Backstage#IDP#Developer Self-Service#DevOps#SRE#Microservices#Observability#Kubernetes#CI/CD
Beyond DevOps to Platform Engineering: A Complete Guide to Building a Developer Self-Service Portal (IDP) with Backstage
Chris Jang

Chris Jang

July 20, 2026

The modern software development environment has seen increased complexity with the proliferation of Microservices architecture and Cloud Native technologies. Within this complexity, maintaining the productivity of development teams and ensuring system stability is a critical challenge from a Site Reliability Engineering (SRE) perspective. While traditional DevOps culture emphasized collaboration between development and operations, development teams still spend significant time on repetitive operational tasks such as infrastructure provisioning, service deployment, and monitoring setup. This frequently leads to an increased error budget burn-down rate for development teams and negatively impacts service metrics like Time To Fix (TTF) and Mean Time To Recovery (MTTR).

This guide presents a Platform Engineering approach and a method for building an Internal Developer Platform (IDP) using Backstage, its core tool, to address these issues. The target audience includes leaders and practitioners in development, operations, and SRE organizations. Through this guide, readers will acquire practical knowledge and implementation strategies to optimize Developer Experience and quantitatively ensure system stability. Successful IDP implementation contributes not only to improved development productivity but also to maintaining infrastructure consistency and enhancing data accessibility required for root cause analysis during incidents. The overall content of this guide assumes a basic understanding of cloud environments and Kubernetes operations.

Why It Is Necessary: Ensuring Developer Productivity and System Reliability

A limitation of the traditional DevOps model is that development teams dedicate considerable time to platform-related tasks such as infrastructure setup, CI/CD pipeline configuration, and monitoring dashboard construction. This reduces the time available for focusing on service feature development, leading to a decreased Feature Delivery Rate, which directly impacts the speed of business value creation. If development teams provision infrastructure or configure monitoring in non-standardized ways, overall system consistency is undermined, increasing the risk of delayed root cause identification and longer MTTR during incidents. Furthermore, the 'Wild West' phenomenon, where different development teams use disparate tools and processes, leads to increased security vulnerabilities and difficulties in compliance management.

Platform Engineering aims to build a platform as a 'product' that integrates and provides all necessary tools and services to developers in an abstracted form to solve these problems. This enables development teams to provision and deploy required resources instantly through standardized self-service interfaces, without directly handling infrastructure complexities. Consequently, it is essential for maximizing developer productivity and enhancing system Reliability by ensuring consistency in infrastructure operations. Especially in large-scale Microservices architectures, the number of services increases exponentially, and the resulting operational complexity becomes a primary cause of rapid error budget exhaustion for development teams. An IDP can be considered a key infrastructure strategy for effectively managing this complexity and achieving SLO/SLI-based stability targets.

Key Checklist: Successful Strategy for Backstage-based IDP Implementation

Building a Backstage-based IDP involves cultural and procedural changes beyond mere tool adoption. The following checklist outlines key considerations and their priorities for successful platform implementation.

  • Initial Goal Setting and Metric Definition (Priority: High, Completion Criterion: SLO/SLI Definition):
    • Clearly define the key metrics intended for improvement through IDP adoption (e.g., developer infrastructure provisioning time, deployment success rate, MTTR).
    • Establish SLO/SLI from the perspective of developer productivity and system stability, and formulate a plan to reflect these in a Backstage integrated monitoring dashboard.
  • Platform Team Formation and Role Definition (Priority: High, Completion Criterion: Dedicated Team Operation):
    • Form a dedicated team for Platform Engineering and define responsibilities for platform development and operation, as well as the collaboration model with development teams.
    • Ensure SRE experts are included to incorporate system stability and Observability elements into the platform design.
  • Analysis of Existing Services and Infrastructure Status (Priority: Medium, Completion Criterion: Draft Service Catalog):
    • Identify all currently operating services, components, and infrastructure resources, and refine their metadata into a format suitable for registration in the Backstage Service Catalog.
    • Collect detailed information including technology stacks, owning teams, and dependencies.
  • Scaffolder Template Standardization (Priority: High, Completion Criterion: Implementation of Key Stack Templates):
    • Define standardized code templates (scaffolders) for new service creation and implement them to inherently include CI/CD pipelines, monitoring configurations, and other essentials.
    • Security best practices and compliance requirements should be embedded within these templates.
  • Observability Integration Strategy Establishment (Priority: High, Completion Criterion: Standard Monitoring Plugin Development):
    • Explore methods to integrate existing Observability stacks, such as Prometheus, Grafana, Jaeger, and OpenTelemetry, with Backstage.
    • Develop plugins to enable direct viewing of each service's SLO/SLI dashboards within Backstage.
  • Gradual Adoption and Feedback Loop Establishment (Priority: High, Completion Criterion: Regular Feedback Session Operation):
    • Rather than applying the IDP to all teams simultaneously, adopt it incrementally with specific pilot teams and improve it through continuous feedback.
    • Establish an agile development process that regularly gathers development team requirements and incorporates them into the platform.
Ad
KYRA MDR - AI/ML 기반 차세대 MDR 솔루션

Step-by-Step Implementation Guide: Building a Backstage-based IDP

1. Backstage Initial Environment Setup and Basic Scaffolder Configuration

Backstage is a Node.js-based application that manages the Service Catalog and other data using PostgreSQL or SQLite databases. Initial setup begins with deploying the backend service and frontend web application. While SQLite can be used in development environments, PostgreSQL is recommended for production environments due to its stability and scalability. After initial setup, scaffolder templates for the technology stacks most frequently used by development teams should be defined to facilitate rapid creation of new services.


# Backstage 프로젝트 초기화
npx @backstage/create-app
# PostgreSQL 설정 (예시)
# app-config.yaml 파일 수정
# app-config.yaml
database:
  client: pg
  connection:
    host: '${POSTGRES_HOST}'
    port: '${POSTGRES_PORT}'
    user: '${POSTGRES_USER}'
    password: '${POSTGRES_PASSWORD}'
    database: '${POSTGRES_DATABASE}'
# 기본 스캐폴더 템플릿 예시 (Node.js 서비스)
# .backstage/templates/nodejs-service/template.yaml
apiVersion: backstage.io/v1alpha1
kind: Template
metadata:
  name: nodejs-service-template
  title: Node.js Service Template
  description: Creates a new Node.js microservice
spec:
  owner: platform-team
  type: service
  parameters:
    - id: name
      title: Service Name
      type: string
      description: Unique name for the service
      ui:
        autofocus: true
    - id: description
      title: Description
      type: string
      description: Description of the service
    - id: owner
      title: Owner
      type: string
      description: Owner of the service (team-name)
  steps:
    - id: fetch-base
      name: Fetch Base
      action: fetch:template
      input:
        url: ./copyWithoutRender:
      copyWithoutRender: ['.github/workflows/*']
    - id: publish
      name: Publish to GitHub
      action: publish:github
      input:
        repoUrl: github.com?owner={{ parameters.owner }}&repo={{ parameters.name }}
    - id: register
      name: Register in Catalog
      action: catalog:register
      input:
        repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}'
        catalogInfoPath: '/catalog-info.yaml'

As illustrated in the example above, by defining scaffolders through template.yaml files, developers can create new services in a standardized environment by simply entering a few pieces of information via the web UI. This reduces the risk of incidents caused by manual configuration errors and shortens initial development time, thereby increasing development teams' SLO compliance rates.

2. Service Catalog Construction and Existing Service Migration

One of the core functionalities of Backstage is the Service Catalog. This centralizes the management and searchability of all services, libraries, APIs, and infrastructure components within an organization. To register existing services in the Backstage Catalog, a catalog-info.yaml file must be added to each service project. This file contains metadata such as the service's name, owner, tags, dependencies, and API definitions. Services registered in this manner can be visually explored and managed within the Backstage UI.


# catalog-info.yaml 예시
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: my-microservice
  description: A critical backend service for user authentication
  annotations:
    github.com/project-slug: my-org/my-microservice
    # 기타 Observability 대시보드 링크 등
    prometheus.io/rule: my-microservice-slo-rules
  tags: ['go', 'microservice', 'authentication']
spec:
  type: service
  lifecycle: production
  owner: team-alpha
  system: core-services
  consumesApis: ['user-management-api']
  providesApis: ['authentication-api']
  dependsOn: ['resource:database-user-data']

Through the Service Catalog, developers can easily locate required services and ascertain their owner, API documentation, related repositories, and even current deployment status and SLO/SLI metrics at a glance. This plays a decisive role in resolving information asymmetry between teams and clarifying areas of responsibility during incidents, thereby shortening MTTR.

3. CI/CD and Observability Integration

To enhance the completeness of developer self-service, existing CI/CD pipelines and Observability stacks must be tightly integrated with Backstage. Backstage offers integration plugins for various CI/CD tools such as Jenkins, GitLab CI, GitHub Actions, and ArgoCD, and also supports integration with Observability tools like Prometheus, Grafana, and Jaeger. This allows developers to directly view a service's deployment status, build logs, error rates, latency, and trace information within the Backstage UI. Specifically, by integrating SLO/SLI dashboards into Backstage, it becomes possible to quantitatively monitor whether each service's reliability targets are being met.


# app-config.yaml 에 GitLab CI 플러그인 추가 예시
integrations:
  gitlab:
    - host: gitlab.com
      token: '${GITLAB_TOKEN}'
# packages/app/src/plugins.ts 또는 packages/app/src/App.tsx 에 플러그인 추가
// import { GitlabCI } from '@backstage/plugin-gitlab-ci';
// ...
// <Route path="/gitlab-ci" element={<GitlabCI />} />
# 각 서비스의 catalog-info.yaml 에 Observability 링크 추가 예시
# annotations:
#   grafana/dashboard-selector: 'service=my-microservice'
#   grafana/overview-dashboard: 'https://grafana.example.com/d/abc1234/my-service-overview'
#   prometheus.io/alert-rules-url: 'https://prometheus.example.com/rules?search=my-microservice'

Such integration provides an environment where developers can immediately ascertain operational status after deploying a service and respond swiftly when performance issues arise. If the error budget burn-down rate for a service with an SLO set to 99.9% exceeds its threshold, the Backstage dashboard should be configured to immediately display the service's monitoring metrics and alert status. The conditions that trigger alerts must be directly linked to each service's SLO.

4. Plugin Development and Extension

One of the most powerful features of Backstage is its plugin architecture. Beyond the natively provided plugins, custom plugins can be developed to extend functionality in accordance with an organization's specific requirements. For example, integrations with internal infrastructure tools, displaying results from specific security scanning tools, or custom cost management dashboards can be added as plugins. Plugin development is based on React and TypeScript and can be easily initiated via the Backstage CLI.


# 새로운 플러그인 생성
cd packages/app
yarn backstage-cli create --scope plugin
# 플러그인 예시 (간단한 커스텀 위젯)
# packages/plugin-custom-widget/src/components/CustomWidgetCard/CustomWidgetCard.tsx
import React from 'react';
import { InfoCard } from '@backstage/core-components';
export const CustomWidgetCard = () => (
  <InfoCard title="Custom Widget">
    <p>This is a custom widget displaying specific internal data.</p>
  </InfoCard>
);

Through custom plugins, Backstage evolves from a mere portal into a true IDP that reflects an organization's unique requirements. This provides developers with richer information, automates repetitive tasks, and ultimately elevates developer experience and productivity. When developing plugins, it is crucial to write optimized code to avoid performance degradation and to clearly handle timeouts and errors during API calls.

5. Strengthening Security and Access Control

As an IDP aggregates information about all of an organization's services and infrastructure resources, robust security and access control are essential. Backstage supports integration with various authentication providers (e.g., GitHub, Google, Okta) and allows fine-grained control over user and group access permissions through Role-Based Access Control (RBAC). Specifically, access to critical information (e.g., production environment access, sensitive log data) must strictly adhere to the Least Privilege Principle. Regular security vulnerability assessments of the Backstage application itself should also be conducted to ensure the IDP does not become an attack vector.


# app-config.yaml 에 인증 설정 예시 (GitHub OAuth)
auth:
  providers:
    github:
      development:
        clientId: '${AUTH_GITHUB_CLIENT_ID}'
        clientSecret: '${AUTH_GITHUB_CLIENT_SECRET}'
# packages/backend/src/plugins/auth.ts 에서 OAuth 설정
import { createRouter } from '@backstage/plugin-auth-backend';
import { github } from '@backstage/plugin-auth-backend/dist/providers/github';
// ...
router.use(
  await createRouter({
    logger,
    config,
    database,
    providers: [
      github.create({
        signIn: {
          resolver: async ({ profile }, ctx) => {
            // Custom sign-in logic based on GitHub profile
            return ctx.signInWithCatalogUser({
              entityRef: { name: profile.username || 'unknown', kind: 'User' },
            });
          },
        },
      }),
    ],
  }),
);

By implementing an RBAC model, it is possible to restrict specific teams from using certain scaffolders or modifying information for particular services. This contributes to maintaining platform reliability and minimizing the potential for incidents caused by unintended changes. Alongside regular security audits, it is crucial to monitor all access attempts and configure alerts to be triggered for SRE teams upon detection of unusual activity.

Advanced Tips: Platform Expansion and Automation Strategies

  • Deepening Integration with Infrastructure as Code (IaC): Integrate IaC tools like Terraform and Ansible with Backstage scaffolders to automatically provision infrastructure resources requested by developers via the UI. For instance, enable direct creation of new database instances or Kubernetes Namespaces from the self-service portal. This reduces the error budget burn-down rate for infrastructure changes and enhances the level of automation for change operations, thereby ensuring system stability.
  • Chaos Engineering Integration: Develop plugins that allow scheduling or executing Chaos Engineering experiments on Microservices registered in the Backstage Service Catalog. This enables development teams to easily verify how their services behave under various failure scenarios and proactively identify potential weaknesses to strengthen system reliability. Experiment results should be visually verifiable within the Backstage UI.
  • Introduction of AI/ML-based Recommendation Systems: Analyze usage data from the service catalog to integrate an AI/ML-based system as a Backstage plugin that recommends relevant services, documentation, and templates that developers might need. This can significantly shorten developers' information discovery time and innovatively improve platform usability.
  • Disaster Recovery Plan (DRP) Management Integration: Link each service's disaster recovery plan documentation to the Service Catalog and add functionality to Backstage for recording and managing periodic DRP exercise results. This visualizes the disaster recovery readiness, a critical component of system reliability, and contributes to minimizing MTTR in the event of an incident.

Caveats and Common Mistakes: Preventing Stability Degradation

  • Excessive Feature Development: Platform team resources are finite; attempting to immediately implement all development team requirements can delay core feature development and compromise platform stability. Priorities must be clearly defined, and development should focus on features that yield the greatest impact, expanding gradually. Root cause analysis often shows that the overall system error budget burn-down rate can rapidly increase when many features are deployed in an unstable state.
  • Insufficient Documentation: Although Backstage promotes self-service, developers will find it difficult to fully utilize without clear and detailed documentation for all features and templates. This lowers platform adoption rates and ultimately hinders the achievement of improved developer productivity. All scaffolders and plugins must be provided with user guides.
  • Lack of Monitoring and Observability: The IDP itself is a critical system, thus monitoring the stability and performance of the Backstage application is essential. Key metrics such as Backstage backend service CPU/memory usage, API response times, and database connection status must be continuously checked for SLO compliance. It is crucial to configure alerts to be automatically triggered if these metrics exceed predefined thresholds.
  • Unilateral Platform Push: Building an IDP solely from the platform team's perspective, without adequately incorporating the actual requirements of development teams, can lead to resistance from developers or low adoption rates. Post-mortem analysis has frequently shown that a lack of developer engagement is a root cause of platform implementation failure. Regular feedback sessions should be conducted to gather development team input and integrate it into the platform improvement roadmap.
  • Insufficient Security Review: As an IDP manages access permissions to an organization's core assets, security vulnerabilities can have severe consequences. The overall security architecture, including authentication/authorization settings, API security, and data transmission encryption, must be thoroughly reviewed, and regular security vulnerability scanning and penetration testing should be conducted.

Summary: Ensuring System Reliability Through Platform Engineering

The transition to Platform Engineering and the implementation of a Backstage-based IDP represent an essential strategy for simultaneously ensuring developer productivity and system stability in modern complex software systems. Through the key checklist and step-by-step implementation guide presented herein, organizations can standardize development workflows, automate repetitive manual tasks, and foster an environment where development teams can focus on business value creation.

Successful IDP implementation demands a cultural shift that views the platform as a 'product' and continuously improves it, rather than merely adopting a tool. SLO/SLI-based quantitative goal setting, robust Observability integration, and close collaboration with development teams are critical success factors for this endeavor. By leveraging Backstage with a deep understanding of stability and performance from an SRE perspective, organizations can effectively manage development teams' error budget burn-down rates and quantitatively ensure system reliability. Platform Engineering will contribute to continuously enhancing system reliability by optimizing developer experience and operational efficiency.

As a next step, it is recommended to introduce Backstage to pilot teams and progressively improve the platform's functionality and stability through regular feedback. An effective starting point involves registering all services in the Service Catalog, completing core scaffolder templates, and integrating Observability plugins. The essence of system reliability lies in predictability and consistent operations, and an IDP will serve as a powerful tool to achieve this.

Stay Updated

Get the latest security insights delivered to your inbox.

Tags

#Platform Engineering#Backstage#IDP#Developer Self-Service#DevOps#SRE#Microservices#Observability#Kubernetes#CI/CD
Back to blog
SEEKERSLAB

Setting new standards in cloud-native security

Solutions
  • CNAPP
  • CSPM
  • CWPP
  • CIEM
  • SIEM
  • SOAR
Products
  • KYRA AI Agent
  • FRIIM CNAPP
  • Seekurity XDR
  • Seekurity SIEM
  • Seekurity SOAR
Services
  • Security SI
  • Development SI
  • Cloud Migration
  • MSA
  • OEM/ODM
Resources
  • Blog
  • Whitepapers
Company
  • About Us
  • Partners
  • Newsroom
  • Press Kit
  • Contact
Contact Info
  • +82-2-2039-8160
  • contact@seekerslab.com
  • 28 Digital-ro 33-gil, Guro-gu, Seoul, South Korea
Newsletter

Get the latest security trends and news

© 2026 Seekers Inc. All rights reserved.

Privacy PolicyTerms of ServiceCookie Policy

KYRA AI

AI-powered assistant

Hello! 👋

Ask me anything about SeekersLab products and services.