AGENT SKILL

platform-engineering

Internal platform development and management

License 许可
MIT
所属仓库
NeuralBlitz/Mito
最近更新
2026-04-21
Stars
★ 0
Forks
0

01 前言 Front Matter

name
platform-engineering
license
MIT
metadata
{ "audience": "platform-engineer, devops-engineer", "category": "devops" }
description
Internal platform development and management
compatibility
opencode

03 SKILL.md 正文

What I do

  • Build internal developer platforms
  • Create self-service infrastructure
  • Implement golden paths for developers
  • Design platform APIs and interfaces
  • Build internal tooling and automation
  • Measure platform effectiveness

When to use me

  • When improving developer experience
  • When standardizing deployments
  • When building self-service capabilities
  • When reducing cognitive load on developers
  • When implementing platform engineering
  • When creating internal developer portals

Key Concepts

Internal Developer Platform

┌─────────────────────────────────────────────────────────┐
│              Internal Developer Portal                  │
│  (Backstage, Port, Cortex)                              │
└──────────────────────┬──────────────────────────────────┘
                       │
    ┌──────────────────┼──────────────────┐
    │                  │                  │
┌───▼────┐        ┌────▼────┐       ┌────▼────┐
│ CI/CD  │        │Runtime  │       │ Data    │
│ Platform│        │ Platform│       │ Platform│
└────┬───┘        └────┬────┘       └────┬────┘
     │                  │                  │
     │      ┌───────────┼───────────┐      │
     └──────►    Infrastructure     ◄──────┘

Backstage Catalog

# catalog-info.yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: my-service
  description: User management service
  tags:
    - java
    - spring-boot
    - postgres
  links:
    - url: https://github.com/company/my-service
      title: GitHub
    - url: https://my-service.dev.company.com
      title: Dashboard
spec:
  type: service
  lifecycle: production
  owner: team-backend
  providesApis:
    - user-api

---
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
  name: user-api
  description: User management API
spec:
  type: openapi
  lifecycle: production
  owner: team-backend
  definition:
    $ref: https://raw.githubusercontent.com/company/apis/main/user-api.yaml

---
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: user-db
  description: Production database
spec:
  type: database
  owner: team-backend
  system: user-management

Golden Path Template

# Template for new services
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: service-template
  title: New Microservice
  description: Create a new microservice
spec:
  owner: platform-team
  type: service
  
  parameters:
    - title: Service Details
      required:
        - service_name
        - description
      properties:
        service_name:
          title: Service Name
          type: string
        description:
          title: Description
          type: string
        owner:
          title: Owner Team
          type: string
          default: team-backend
          
  steps:
    - id: fetch-template
      name: Fetch Template
      action: fetch:template
      input:
        url: ./templates/java-service
        values:
          service_name: ${{ parameters.service_name }}
          description: ${{ parameters.description }}
          owner: ${{ parameters.owner }}
          
    - id: publish
      name: Publish to Git
      action: publish:github
      input:
        repoUrl: github.com?owner=${{ parameters.owner }}&repo=${{ parameters.service_name }}
        
    - id: register
      name: Register in Catalog
      action: catalog:register
      input:
        repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
        catalogInfoPath: catalog-info.yaml

Platform API Design

// Platform SDK
export interface PlatformService {
  // Deployment
  deploy(service: ServiceConfig): Promise<Deployment>;
  rollback(serviceName: string, version: string): Promise<void>;
  getStatus(serviceName: string): Promise<ServiceStatus>;
  
  // Infrastructure
  provisionDatabase(config: DatabaseConfig): Promise<Database>;
  provisionCache(config: CacheConfig): Promise<Cache>;
  
  // Monitoring
  getMetrics(serviceName: string, timeRange: TimeRange): Promise<Metrics>;
  getLogs(serviceName: string, query: LogQuery): Promise<Logs>;
}

// Usage
const platform = new PlatformClient({
  token: process.env.PLATFORM_TOKEN
});

await platform.deploy({
  name: 'user-service',
  image: 'user-service:latest',
  replicas: 3,
  env: { DATABASE_URL: 'postgres://...' }
});

Self-Service Workflows

  1. Service Creation: Developer creates service from template
  2. Infrastructure Provisioning: Platform provisions DB, cache, etc.
  3. CI/CD Setup: Pipeline automatically configured
  4. Monitoring: Dashboards and alerts auto-created
  5. Documentation: Catalog entry created
  6. Access Control: Team permissions configured

Platform Metrics

Metric Description Target
Deployment Frequency How often code is deployed Daily+
Lead Time Time from commit to production < 1 day
MTTR Mean time to recovery < 1 hour
Self-Service Rate % of actions done by developers > 80%
Platform Uptime Platform availability 99.9%
Developer Satisfaction NPS score > 50

Golden Paths

  • Build: Standardized project templates
  • Deploy: Single command deployment
  • Configure: Declarative configuration
  • Monitor: Built-in observability
  • Secure: Integrated security scanning
  • Test: Standardized test patterns

04 同仓库更多 Skills