Cosa Sono i Golden Paths
I Golden Paths (o Golden Roads) sono percorsi standardizzati e ottimizzati che guidano gli sviluppatori attraverso i flussi di lavoro più comuni: dalla creazione di un nuovo servizio al deployment in produzione, dalla configurazione dell'infrastruttura al setup del monitoring. Rappresentano le best practice dell'organizzazione condensate in template, automazioni e workflow riutilizzabili.
Il concetto di Golden Path e stato reso popolare da Spotify come parte della propria Internal Developer Platform. L'idea fondamentale e semplice: invece di lasciare ogni sviluppatore libero di reinventare la ruota (con risultati inconsistenti), si definiscono percorsi ottimali che incorporano tutte le best practice di sicurezza, performance, osservabilità e compliance.
E cruciale sottolineare che i Golden Paths non sono gabbie dorate. Non impediscono agli sviluppatori di deviare dal percorso standard quando necessario, ma rendono la scelta standard cosi semplice e attraente da essere la scelta naturale nella stragrande maggioranza dei casi.
Cosa Imparerai
- Il concetto di Golden Path e perchè riduce il cognitive load del 60%
- Come definire Golden Paths per web apps, API, microservizi e infrastruttura
- Templating engines: Cookiecutter, Helm, Kustomize e soluzioni custom
- Scaffolding automatizzato con Yeoman, Nx generators e CLI personalizzate
- Governance dei template: versioning, approvazione, manutenzione
- Metriche di adozione e come evitare le trappole dell'over-standardization
Definire Golden Paths per Tipologia di Applicazione
Il primo passo nella costruzione dei Golden Paths e identificare le tipologie di applicazione più comuni nell'organizzazione e creare percorsi ottimizzati per ciascuna. Le categorie tipiche sono:
- Web Application: frontend React/Angular/Vue con SSR, CDN, monitoring frontend e A/B testing
- REST API: servizio backend con database, caching, rate limiting, documentazione OpenAPI e health checks
- Event-Driven Worker: consumer Kafka/RabbitMQ con retry policy, dead letter queue, metriche di throughput
- Scheduled Job: CronJob Kubernetes con alerting, logging strutturato e retry automatico
- Infrastructure Module: modulo Terraform/Pulumi riutilizzabile con testing, documentazione e versioning semantico
Per ogni tipologia, il Golden Path definisce: la struttura del progetto, le dipendenze, la configurazione CI/CD, il Dockerfile, i manifest Kubernetes, il monitoring, il logging e la documentazione.
# Golden Path: definizione per REST API service
golden-path-rest-api:
name: "REST API Microservice"
description: "Percorso standard per creare un nuovo microservizio REST"
version: "2.1.0"
scaffolding:
language: TypeScript
framework: NestJS
structure:
- src/
- controllers/ # Route handlers
- services/ # Business logic
- models/ # Data models
- middleware/ # Auth, logging, validation
- config/ # Environment configuration
- test/
- unit/
- integration/
- e2e/
- docs/ # API documentation
- .github/workflows/ # CI/CD pipelines
included-features:
- health-check: "/health and /ready endpoints"
- openapi-docs: "Swagger UI at /api/docs"
- structured-logging: "JSON logs with correlation ID"
- metrics: "Prometheus metrics at /metrics"
- tracing: "OpenTelemetry auto-instrumentation"
- error-handling: "Centralized error handler with standard format"
- authentication: "JWT validation middleware"
- rate-limiting: "Per-client rate limiting"
ci-cd:
pipeline: GitHub Actions
stages:
- lint-and-format
- unit-tests (coverage > 80%)
- integration-tests
- security-scan (Snyk/Trivy)
- build-docker-image
- push-to-registry
- deploy-staging
- smoke-tests
- deploy-production (manual approval)
Templating e Scaffolding
I template sono il cuore tecnico dei Golden Paths. Consentono di generare in pochi secondi un progetto completo, già configurato con tutte le best practice dell'organizzazione. I principali strumenti di templating sono:
- Cookiecutter: template engine Python-based, semplice e diffusa, ideale per progetti multi-linguaggio
- Backstage Software Templates: sistema di scaffolding integrato in Backstage con UI web e workflow di approvazione
- Yeoman: generatore Node.js con prompt interattivi, sub-generatori e composizione
- Nx Generators: generatori integrati nel monorepo tool Nx, ideali per progetti Angular, React e Node.js
- Custom CLI: strumenti CLI interni costruiti con Commander.js, Inquirer.js o Click (Python)
# Backstage Software Template: scaffolding REST API
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: rest-api-template
title: REST API Microservice
description: "Crea un nuovo microservizio REST con NestJS, Docker e CI/CD"
tags:
- typescript
- nestjs
- rest-api
- recommended
spec:
owner: platform-team
type: service
parameters:
- title: Service Info
required: [name, description, owner]
properties:
name:
title: Service Name
type: string
pattern: "^[a-z][a-z0-9-]*$"
description: "Nome del servizio (lowercase, hyphens)"
description:
title: Description
type: string
owner:
title: Owner Team
type: string
ui:field: OwnerPicker
- title: Technical Options
properties:
database:
title: Database
type: string
enum: [postgresql, mysql, mongodb, none]
default: postgresql
cache:
title: Cache Layer
type: string
enum: [redis, memcached, none]
default: redis
messageQueue:
title: Message Queue
type: string
enum: [kafka, rabbitmq, none]
default: none
steps:
- id: fetch-template
name: Fetch Template
action: fetch:template
input:
url: ./skeleton
values:
name: 






