Backstage Integration¶
The WebGrip platform leverages Backstage as the central service catalog and developer portal, providing a unified view of all services, APIs, teams, and infrastructure components across the organization.
Backstage Overview¶
Technology: Backstage (Open Source Developer Portal)
Entity Definitions: catalog/
TechDocs Integration: backstage.io/techdocs-ref: dir:./docs/techdocs
Backstage serves as the organizational brain of the platform, providing:
- 📋 Service Catalog: Centralized inventory of all software components
- 👥 Team Directory: Organization structure and ownership mapping
- 📚 Documentation Hub: Integrated TechDocs and API documentation
- 🔍 Service Discovery: Find services, APIs, and their relationships
- 📊 Platform Overview: Unified view of the entire software ecosystem
Architecture¶
Backstage Entity Model¶
Platform Integration¶
Entity Definitions¶
Organization Structure¶
Location: catalog-info.yaml
The catalog-info.yaml file serves as the entry point for Backstage discovery:
1 2 3 4 5 6 7 8 9 10 11 | |
Entity Categories:
- Domains: catalog/domains/ - Business domain boundaries
- Systems: catalog/systems/ - Technical system groupings
- Components: catalog/components/ - Individual services and applications
- Groups: catalog/groups/ - Team and organizational structure
- Resources: catalog/resources/ - Infrastructure resources
Domain Definitions¶
Purpose: Define business domain boundaries and ownership
Example: catalog/domains/operations-domain.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Domain Structure: | Domain | Purpose | Owner | Components | |--------|---------|-------|------------| | Operations | Infrastructure & platform operations | Infrastructure Team | Kubernetes, Ingress, Monitoring | | Telemetry | Observability & monitoring | Platform Team | Grafana, Prometheus, Alerting |
System Definitions¶
Purpose: Group related components into logical technical systems
Example: catalog/systems/kubernetes.yaml
1 2 3 4 5 6 7 8 9 10 11 12 | |
System Hierarchy:
Component Definitions¶
Purpose: Catalog individual services, applications, and platform components
Example: catalog/components/ingress-nginx.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Component Types: - service: Running applications and platform services - library: Shared code libraries and packages - website: Static websites and documentation sites
Lifecycle Stages: - experimental: Early development and testing - production: Stable, production-ready services - deprecated: Services being phased out
Group Definitions¶
Purpose: Define team structure and ownership hierarchy
Example: catalog/groups/c-level-group.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Organizational Hierarchy:
Resource Definitions¶
Purpose: Catalog infrastructure resources and external dependencies
Example: catalog/resources/staging-doks-cluster.yaml
1 2 3 4 5 6 7 8 9 10 11 | |
Resource Types:
- kubernetes-cluster: Kubernetes clusters and environments
- database: Database instances and services
- queue: Message queues and event systems
- storage: File systems and object storage
Annotations and Integrations¶
Key Annotations¶
Backstage entities use annotations to integrate with external systems:
| Annotation | Purpose | Example |
|---|---|---|
github.com/project-slug |
Link to GitHub repository | webgrip/organisation-public |
backstage.io/techdocs-ref |
TechDocs source location | dir:./docs/techdocs |
backstage.io/kubernetes-label-selector |
Kubernetes resource selector | app.kubernetes.io/instance=traefik |
backstage.io/kubernetes-namespace |
Kubernetes namespace | ingress-traefik |
simpleicons.org/icon-slug |
Display icon | kubernetes |
TechDocs Integration¶
This Repository: catalog-info.yaml
1 2 3 4 5 6 7 8 9 10 | |
TechDocs Features: - Automatic Publishing: Docs published on every commit to main branch - Search Integration: Full-text search across all documentation - Version Control: Documentation versioned with code - Navigation: Integrated navigation within Backstage interface
Kubernetes Integration¶
Components can be linked to Kubernetes resources for real-time status:
1 2 3 | |
This enables: - Real-time Status: Pod health and deployment status - Resource Metrics: CPU, memory, and network usage - Log Access: Direct access to container logs - Scaling Controls: Scale deployments from Backstage interface
Service Discovery¶
Catalog Navigation¶
Entity Relationships: Backstage automatically maps relationships between entities:
Search and Discovery¶
Search Capabilities: - Full-text Search: Search across names, descriptions, and documentation - Tag-based Filtering: Filter by technology, team, or environment - Owner-based Views: See all components owned by a specific team - Dependency Mapping: Understand component dependencies and impacts
Common Search Patterns:
1 2 3 4 5 6 7 8 9 10 11 | |
Ownership and Governance¶
Ownership Model¶
Ownership Hierarchy:
Owner Types: - group:webgrip/infrastructure: Platform and infrastructure components - group:webgrip/security: Security-related components and policies - group:webgrip/c-level: Strategic and organizational components
Component Lifecycle¶
Lifecycle Management:
Platform Components Catalog¶
Current Component Inventory¶
| Component | Type | Owner | System | Status |
|---|---|---|---|---|
| Ingress Nginx | service | infrastructure | kubernetes-system | experimental |
| cert-manager | service | infrastructure | kubernetes-system | production |
| Echo Service | service | infrastructure | kubernetes-system | experimental |
| Quote Service | service | infrastructure | kubernetes-system | experimental |
| Metrics Server | service | infrastructure | kubernetes-system | production |
Component Dependencies¶
Best Practices¶
Entity Definition Guidelines¶
1. Descriptive Metadata:
1 2 3 4 5 6 7 | |
2. Comprehensive Annotations:
1 2 3 4 | |
3. Clear Ownership:
1 2 3 | |
4. Relationship Mapping:
1 2 3 4 5 | |
Maintenance Guidelines¶
Regular Updates: - Quarterly Review: Verify entity accuracy and relationships - Lifecycle Updates: Promote experimental to production, mark deprecated - Ownership Changes: Update owners when teams reorganize - Link Validation: Ensure all external links remain valid
Documentation Standards: - TechDocs: Every component should have linked documentation - API Docs: Services should include OpenAPI specifications - Runbooks: Operational procedures documented and linked
Next Steps¶
Explore related service catalog topics:
- 🏗️ Domains & Systems
Understand domain boundaries and system organization
- 📋 Component Registry
Explore individual service and component details
- 🔌 API Contracts
Review API documentation and service contracts
- 👥 Team Structure
Learn about team organization and responsibilities
📋 Catalog Maintenance: Entity definitions should be updated whenever component ownership, lifecycle, or dependencies change. See Operational Standards for maintenance procedures.