KoderKoder.ai
PrezziEnterpriseIstruzionePer gli investitori
AccediInizia ora

Prodotto

PrezziEnterprisePer gli investitori

Risorse

ContattaciAssistenzaIstruzioneBlog

Note legali

Informativa sulla privacyTermini di utilizzoSicurezzaNorme di utilizzoSegnala un abuso

Social

LinkedInTwitter
Koder.ai
Lingua

© 2026 Koder.ai. Tutti i diritti riservati.

Home›Blog›“You Build It, You Run It” di Werner Vogels spiegato
29 set 2025·8 min

“You Build It, You Run It” di Werner Vogels spiegato

Scopri cosa intendeva Werner Vogels con “You Build It, You Run It” e come applicarlo: ownership, on-call, SLO, risposta agli incidenti e rilasci più sicuri.

“You Build It, You Run It” di Werner Vogels spiegato

Cosa significa davvero “You Build It, You Run It”

“You build it, you run it” è una di quelle frasi che restano perché è diretta. Non riguarda poster motivazionali o “essere più DevOps”. È una dichiarazione chiara di responsabilità: il team che distribuisce un servizio è anche responsabile di come quel servizio si comporta in produzione.

L'idea centrale: spedire e gestire è lo stesso lavoro

In pratica, significa che lo stesso team di prodotto che progetta le funzionalità e scrive il codice inoltre:

  • monitora il servizio in produzione
  • risponde quando si guasta
  • migliora l'affidabilità nel tempo
  • valuta i compromessi tra lavoro nuovo e lavoro operativo

Non vuol dire che tutti diventino esperti di infrastruttura da un giorno all'altro. Vuol dire che il ciclo di feedback è reale: se rilasci qualcosa che aumenta outage, rumore dei pager o disagio per i clienti, il tuo team lo sente direttamente—e impara in fretta.

Un modello operativo pratico, non uno slogan

Questa filosofia è facile da ripetere e difficile da implementare a meno che non la tratti come un modello operativo con aspettative esplicite. “Run it” tipicamente include essere on-call (in qualche forma), gestire la risposta agli incidenti, scrivere runbook, mantenere dashboard e migliorare continuamente il servizio.

Implica anche vincoli: non puoi chiedere ai team di “gestirlo” senza fornire strumenti, accessi e autorità per correggere i problemi—oltre al tempo nel loro roadmap per fare quel lavoro.

A chi serve

  • Team di prodotto/servizio: per creare vera responsabilità end-to-end e apprendimento più rapido.
  • Engineering manager: per stabilire confini chiari (“questo team possiede questo servizio”) e pianificare capacità per il lavoro operativo.
  • Team di piattaforma: per rendere la proprietà più semplice fornendo percorsi già battuti—senza però togliere silenziosamente la responsabilità di produzione ai team che costruiscono i servizi.

Perché questa filosofia ha cambiato il modo in cui i team rilasciano software

Prima di “You Build It, You Run It”, molte aziende organizzavano il lavoro software come una staffetta: gli sviluppatori scrivevano codice, poi lo “lanciavano oltre il muro” a un team ops che lo distribuiva e lo teneva in esecuzione.

Quel passaggio risolveva un problema a breve termine—qualcuno esperto guardava la produzione—ma creava problemi più grandi.

Il problema del passaggio: feedback lento e responsabilità offuscata

Quando un team ops separato possiede la produzione, gli sviluppatori spesso scoprono i problemi tardi (o mai). Un bug può emergere come un ticket vago giorni dopo: “servizio lento” o “CPU alta”. A quel punto il contesto è perso, i log sono ruotati e chi ha fatto la modifica è passato oltre.

I passaggi sfumano anche la proprietà. Se capita un outage, dev può pensare “ops lo prenderà in carico”, mentre ops pensa “dev ha rilasciato qualcosa di rischioso”. Il risultato è prevedibile: risoluzioni di incidenti più lunghe, modalità di falla ripetute e una cultura in cui i team ottimizzano localmente invece che per l'esperienza utente.

Perché la proprietà accelera la consegna e riduce i guasti ripetuti

“You Build It, You Run It” accorcia il ciclo. Lo stesso team che rilascia una modifica è responsabile di come si comporta in produzione. Questo spinge miglioramenti pratici a monte: alert più chiari, rollout più sicuri, dashboard migliori e codice più semplice da gestire.

Paradossalmente, spesso porta a consegne più veloci. Quando i team si fidano del processo di rilascio e comprendono il comportamento in produzione, possono spedire cambiamenti più piccoli più frequentemente—riducendo il raggio d'azione degli errori e rendendo i problemi più facili da diagnosticare.

Non è una soluzione unica per tutti

Non tutte le organizzazioni partono con personale uguale, requisiti di conformità o sistemi legacy. La filosofia è una direzione, non un interruttore. Molti team la adottano gradualmente—partendo da on-call condiviso, osservabilità migliore e confini di servizio più chiari—prima di arrivare alla piena proprietà end-to-end.

Da dove viene: Werner Vogels e la mentalità del servizio

Werner Vogels, CTO di Amazon, ha reso popolare la frase “You build it, you run it” descrivendo come Amazon (e poi AWS) voleva che i team pensassero al software: non come un progetto da consegnare, ma come a un servizio da gestire.

Lo spostamento chiave fu tanto psicologico quanto tecnico. Quando un team sa che verrà contattato per i guasti, le decisioni di design cambiano. Ci si preoccupa di default sensati, alert chiari, degradazione elegante e percorsi di deploy che si possono ripristinare. In altre parole, costruire include pianificare le parti disordinate della vita reale.

Perché l'era cloud ha alzato l'asticella

Il pensiero dei servizi nell'era AWS ha reso affidabilità e velocità non negoziabili. I clienti cloud si aspettano API disponibili 24/7 e miglioramenti continui—non solo grandi rilasci trimestrali.

Quella pressione ha incoraggiato:

  • servizi più piccoli e duraturi con proprietari chiari
  • cicli di feedback rapidi tra modifica del codice e comportamento in produzione
  • abitudini operative trattate come funzionalità di prodotto (monitoraggio, pianificazione della capacità, runbook)

Idee correlate (senza riscrivere la storia)

Questa filosofia si sovrappone al movimento più ampio DevOps: ridurre il divario tra “dev” e “ops”, diminuire i passaggi e rendere gli esiti (disponibilità, latenza, carico di supporto) parte del ciclo di sviluppo. Si integra anche con l'idea di piccoli team autonomi che possono rilasciare indipendentemente.

Ispirazione, non una copia-incolla

È allettante considerare l'approccio di Amazon come un modello da copiare. Ma “You Build It, You Run It” è più una direzione che un organigramma rigido. Dimensione del team, vincoli normativi, maturità del prodotto e requisiti di uptime possono richiedere adattamenti—rotazioni on-call condivise, supporto della piattaforma o adozione graduale.

Se vuoi un modo pratico per tradurre la mentalità in azione, vai a blog/how-to-adopt-you-build-it-you-run-it-step-by-step.

Proprietà: cosa assumono i team quando “lo gestiscono”

“You Build It, You Run It” è in realtà una dichiarazione sulla proprietà. Se il tuo team rilascia un servizio, il tuo team è responsabile di come quel servizio si comporta nel mondo reale—non solo se supera i test il giorno del rilascio.

Cosa copre realmente la “proprietà”

Gestire un servizio significa curarsi degli esiti end-to-end:

  • Affidabilità: gli utenti possono farci affidamento e i guasti vengono gestiti rapidamente.
  • Prestazioni: rimane sufficientemente veloce in condizioni normali e di picco.
  • Costi: non diventa di nascosto la voce di spesa più grande del budget.
  • Sicurezza & conformità: i rischi vengono affrontati durante la delivery, non dopo.
  • Supporto: clienti e utenti interni ricevono aiuto chiaro e tempestivo.

Cosa include il “run it” nella pratica

In una settimana normale, “run it” riguarda meno gli eroi e più le operazioni di routine:

  • Impostare monitoraggio e dashboard in modo che il team veda lo stato a colpo d'occhio.
  • Definire alert azionabili (non rumorosi) e legati all'impatto utente.
  • Gestire incidenti: triage, mitigazione, comunicazione e lavoro di follow-up.
  • Gestire la capacità: piani di scaling, test di carico e limiti di risorse.
  • Mantenere runbook aggiornati così chiunque sia on-call possa rispondere in modo coerente.

Responsabilità non è colpevolizzazione

Questo modello funziona solo quando responsabilità significa “noi risolviamo il problema”, non “cerchiamo qualcuno da punire”. Quando qualcosa si rompe, l'obiettivo è capire cosa nel sistema ha permesso l'errore—alert mancanti, limiti poco chiari, deploy rischiosi—e migliorare quelle condizioni.

Confini chiari e un proprietario nominato

La proprietà diventa caotica quando i servizi sono sfumati. Definisci confini del servizio (cosa fa, da cosa dipende, cosa promette) e assegna un team proprietario nominato. Questa chiarezza riduce i passaggi, accelera la risposta agli incidenti e rende le priorità evidenti quando affidabilità e funzionalità competono.

On-call fatto bene (e senza bruciare le persone)

L'on-call è centrale in “You Build It, You Run It” perché chiude il ciclo di feedback. Quando lo stesso team che rilascia una modifica sente anche l'impatto operativo (picchi di latenza, deploy falliti, lamentele dei clienti), le priorità diventano più chiare: il lavoro di affidabilità smette di essere “problema di qualcun altro” e il modo più rapido per spedire di più è spesso rendere il sistema più stabile.

Rendere l'on-call umano per design

Un on-call sano riguarda soprattutto prevedibilità e supporto.

  • Rotazioni adatte alla dimensione del team: evita programmi eroici. Se la copertura è sottile, riduci l'ambito (meno servizi per rotazione) o aggiungi un secondario condiviso.
  • Percorsi di escalation: risponditore primario, poi secondario, poi un esperto di dominio—così nessuno resta solo alle 3 di notte.
  • Tempo di recupero dopo notti difficili: comp time o inizio posticipato dopo le pagine, e giorni liberi dopo incidenti importanti. Il riposo fa parte dell'affidabilità.
  • Runbook e checklist dei “primi 15 minuti”: i responder dovrebbero avere una guida chiara, non dover improvvisare.

Livelli di severità: pager solo quando conta

Definisci livelli di severità così il sistema non sveglia per ogni imperfezione.

  • Sev 1 (page): outage che impatta i clienti, rischio perdita dati, incidente di sicurezza o grave violazione di SLO.
  • Sev 2 (page durante l'orario lavorativo o se sostenuto): servizio degradato con impatto utente reale.
  • Sev 3 (ticket): bug non urgenti, alert fluttuanti, piccoli aumenti di error rate, trend di capacità.

Una regola semplice: se svegliare qualcuno non cambierebbe l'esito, dovrebbe essere un ticket, non una pagina.

L'obiettivo reale: meno pagine il mese prossimo

L'on-call non è una punizione; è un segnale. Ogni alert rumoroso, ogni fallimento ripetuto o ogni correzione manuale dovrebbe trasformarsi in lavoro di ingegneria: alert migliori, automazione, rilasci più sicuri e cambiamenti che eliminano la necessità di paginare.

SLO, SLI e error budget: i guardrail pratici

Ship smaller changes faster
Passa dall'idea a un servizio web funzionante senza aspettare una pipeline di sviluppo completa.
Start Building

Se “lo gestisci” è reale, i team hanno bisogno di un modo condiviso per parlare di affidabilità senza trasformare ogni discussione in opinione. Questo è il ruolo di SLIs, SLOs e error budget: obiettivi chiari e un compromesso equo tra velocità e stabilità.

SLI vs SLO vs SLA (in parole semplici)

  • SLI (Service Level Indicator): una misura del comportamento del servizio. Pensa: “Cosa vediamo realmente in produzione?”
  • SLO (Service Level Objective): un obiettivo per un SLI. Pensa: “A quale livello di affidabilità puntiamo?”
  • SLA (Service Level Agreement): una promessa ai clienti, spesso con penali o crediti. Pensa: “Cosa garantiamo contrattualmente.”

Un modo utile per ricordare: SLI = metrica, SLO = obiettivo, SLA = impegno esterno.

Esempi di SLI misurabili

Buoni SLI sono specifici e legati all'esperienza utente, per esempio:

  • Latenza: “Il 95% delle richieste completa in meno di 300ms.”
  • Disponibilità: “Le richieste hanno successo (non-5xx) il 99.9% del tempo.”
  • Tasso di successo dei job (per sistemi asincroni): “Il 99.5% delle esportazioni notturne termina con successo entro le 6am.”

Error budget: come bilanciare velocità e stabilità

Un error budget è la quantità di “malfunzionamento” che puoi permetterti rimanendo entro l'SLO (per esempio, se l'SLO è 99.9% di disponibilità, il budget mensile è lo 0.1% di downtime).

Quando il servizio è sano e sei dentro il budget, i team possono prendere più rischi di delivery (rilasciare funzionalità, esperimenti). Quando stai bruciando budget troppo velocemente, il lavoro di affidabilità diventa prioritario.

Come gli SLO guidano la pianificazione

Gli SLO trasformano l'affidabilità in un input di pianificazione. Se il tuo error budget è basso, lo sprint successivo potrebbe enfatizzare rate limiting, rollout più sicuri o riparare dipendenze fluttuanti—perché mancare l'SLO ha un costo chiaro. Se il budget è abbondante, puoi dare precedenza al lavoro di prodotto senza indovinare se “ops se la caverà”.

Rilasciare in sicurezza: prontezza per la produzione e pratiche di release

“You build it, you run it” funziona solo se distribuire in produzione è routinario—non un evento ad alto rischio. L'obiettivo è ridurre l'incertezza prima del lancio e limitare il blast radius dopo il lancio.

Must-have prima del lancio

Prima che un servizio sia considerato “ready”, i team in genere hanno bisogno di alcune basi operative:

  • Dashboard che mostrino la salute user-facing (latenza, error rate, traffico) e le dipendenze principali.
  • Alert azionabili (soglie chiare, proprietario chiaro, niente pagine rumorose “FYI”).
  • Runbook per i guasti comuni: cosa controllare prima, come mitigare e quando scalare.
  • Backup e drill di restore (la prova conta tanto quanto il backup) più una politica documentata di retention.

Progressive delivery: rilasciare in passi più piccoli e sicuri

Invece di rilasciare tutto a tutti in una volta, la progressive delivery limita l'impatto:

  • Feature flag permettono di spedire codice controllando l'esposizione, con un piano chiaro per la pulizia.
  • Canary release inviano una piccola percentuale di traffico alla nuova versione e confrontano metriche con il baseline.
  • Rollback veloci (o roll-forward) sono provati e automatizzati così il recupero non è improvvisato sotto pressione.

Se il tuo team standardizza il rollback, trattalo come una capacità di prima classe: più veloce è il revert sicuro, più realistico diventa “you run it”.

Costruire fiducia con test di carico e failure

Due test riducono gli “unknown unknowns”:

  • Load testing valida le ipotesi di capacità e rivela colli di bottiglia prima che li scoprano i clienti.
  • Failure testing (per esempio timeout delle dipendenze, istanze killate, connessioni perse) verifica che il servizio degradi in modo elegante e che gli alert si attivino quando dovrebbero.

Una semplice checklist di production readiness

Tienila leggera: una pagina nel repo o nel template del ticket (es. “Observability,” “On-call readiness,” “Data protection,” “Rollback plan,” “Capacity tested,” “Runbooks linked”). Considera “non pronto” uno stato normale—molto meglio che scoprirlo in produzione.

Incidenti e postmortem: trasformare gli outage in apprendimento

Choose the right tier
Scegli il piano che si adatta al tuo team, dal free all'enterprise mentre la proprietà cresce.
Compare Plans

Gli incidenti sono il luogo in cui “you run it” diventa reale: un servizio degrada, i clienti notano e il team deve rispondere in modo rapido e chiaro. L'obiettivo non è l'eroismo—è un flusso ripetibile che riduce l'impatto e produce miglioramenti.

Un workflow semplice per gli incidenti

La maggior parte dei team converge sulle stesse fasi:

  • Detect: alert di monitoring, segnalazioni clienti o rilevamento automatico di anomalie.
  • Triage: confermare cosa è rotto, stimare la severità, assegnare un incident lead e iniziare una timeline.
  • Mitigate: fermare l'emorragia (rollback, spegnere feature flag, scalare, bloccare traffico malevolo), poi ripristinare il servizio completo.
  • Communicate: mantenere aggiornamenti coerenti—cosa è impattato, stato attuale e prossimo orario di aggiornamento. La comunicazione è parte della mitigazione.
  • Learn: dopo che il servizio è stabile, analizzare i fattori che hanno contribuito e prevenire ripetizioni.

Se vuoi un template pratico per questo flusso, tieni a portata di mano una checklist leggera (vedi blog/incident-response-checklist).

Postmortem senza colpe (e cosa annotare)

Un postmortem senza colpe non significa “nessuno ha sbagliato.” Significa concentrarsi su come il sistema e il processo hanno permesso all'errore di arrivare in produzione, non sul dare la colpa alle persone. Questo incoraggia la condivisione precoce dei dettagli, essenziale per l'apprendimento.

Documenta:

  • Impatto cliente: chi è stato coinvolto, per quanto tempo e con che gravità.
  • Timeline: eventi chiave, decisioni e quando sono apparsi i segnali.
  • Cause radice e contributive: fattori tecnici e di processo (es. ownership poco chiara, alert mancanti).
  • Cosa è andato bene / cosa no: inclusa la comunicazione.

Azioni che prevengono davvero le ripetizioni

I buoni postmortem finiscono con follow-up concreti, tipicamente in quattro categorie: miglioramenti degli strumenti (alert/dashboard migliori), test (regressioni e casi limite), automazione (deploy/rollback più sicuri, guardrail) e documentazione (runbook, passi operativi più chiari). Assegna un proprietario e una scadenza—altrimenti l'apprendimento resta teorico.

Strumenti che rendono la proprietà del servizio più semplice

Gli strumenti sono la leva che rende sostenibile “You Build It, You Run It”—ma non possono sostituire la vera proprietà. Se un team tratta le operazioni come “problema di qualcun altro”, anche la dashboard più sofisticata documenterà solo il caos. Buoni strumenti riducono l'attrito: rendono più facile fare la cosa giusta (osservare, rispondere, imparare) rispetto a quella sbagliata (indovinare, incolpare, ignorare).

L'essenziale di cui ogni team ha bisogno

Al minimo, i proprietari del servizio hanno bisogno di un modo coerente per vedere cosa fa il loro software in produzione e agire rapidamente quando non va.

  • Log centralizzati: ricercabili, conservati abbastanza a lungo per indagare gli incidenti e strutturati quando possibile.
  • Metriche: golden signals (latenza, traffico, errori, saturazione) più metriche critiche di business.
  • Distributed tracing: per seguire una richiesta attraverso i servizi e individuare i colli di bottiglia.
  • Alerting: alert azionabili legati all'impatto cliente, non sintomi rumorosi.
  • Ticketing / workflow per incidenti: un posto per tracciare il lavoro, collegare incidenti ai follow-up e assicurare che le correzioni vengano rilasciate.

Se la tua storia di monitoring è frammentata, i team passano più tempo a cercare che a correggere. Un approccio unificato all'osservabilità aiuta; vedi product/observability.

Rendere la proprietà visibile su larga scala

Con la crescita dell'organizzazione, “chi possiede questo?” diventa un rischio per l'affidabilità. Un catalogo dei servizi (o portale sviluppatori interno) risolve questo tenendo ownership e contesto operativo in un unico posto: nome del team, rotazione on-call, percorso di escalation, runbook, dipendenze e link alle dashboard.

La chiave è metadata di ownership che resti aggiornato. Rendilo parte del workflow: i nuovi servizi non possono andare live senza un proprietario e i cambi di ownership sono trattati come cambi di codice (reviewati, tracciati).

Gli strumenti dovrebbero rafforzare le abitudini

Le configurazioni migliori spingono i team verso comportamenti sani: template per runbook, alert automatici legati agli SLO e dashboard che rispondono in pochi secondi alla domanda “gli utenti sono impattati?”. Ma il sistema umano conta ancora—i team hanno bisogno di tempo per mantenere questi strumenti, ripulire gli alert e migliorare continuamente come operano il servizio.

Il ruolo dei team di piattaforma: supportare senza togliere proprietà

I team di piattaforma rendono più facile vivere con “You Build It, You Run It”. Il loro compito non è gestire la produzione per tutti—è fornire una strada ben illuminata (a volte chiamata “paved roads”) così i team di prodotto possono possedere i servizi senza reinventare le operazioni a ogni sprint.

Paved roads, template, guardrail

Una buona piattaforma offre default facili da adottare e difficili da sbagliare:

  • template golden-path per nuovi servizi (struttura del repo, logging, alert, dashboard)
  • pipeline CI/CD standard con opzioni di deploy sicure (canary, blue/green, rollback automatico)
  • basi runtime pronte per la produzione (health check, rate limit, convenzioni di config)

I guardrail dovrebbero prevenire comportamenti rischiosi senza bloccare il rilascio. Pensare “secure by default” piuttosto che “apri un ticket e aspetta”.

Servizi condivisi vs proprietà condivisa

I team di piattaforma possono gestire servizi condivisi—senza però prendersi la proprietà dei servizi di prodotto.

  • Servizi condivisi: autenticazione/authorization, gestione segreti, piattaforma container, registry di artifact, stack di osservabilità.
  • Proprietà del prodotto: ogni team è comunque responsabile per l'affidabilità, le prestazioni e l'integrità dei dati del proprio servizio.

Il confine è semplice: il team di piattaforma possiede l'uptime e il supporto della piattaforma; i team di prodotto possiedono come il loro servizio la usa.

Come le piattaforme riducono il carico cognitivo

Quando i team non devono diventare esperti di CI/CD, auth o segreti dal primo giorno, possono concentrarsi sul comportamento del servizio e sull'impatto utente.

Esempi che rimuovono lavoro indifferenziato:

  • setup pipeline con un clic e gate di test coerenti
  • auth centrale che supporta l'identità servizio-a-servizio
  • gestione segreti con politiche di rotazione
  • monitoring base che auto-instrumenta metriche comuni

Il risultato è consegna più rapida con meno “snowflake ops” personalizzati, mantenendo però la promessa centrale: il team che costruisce il servizio lo gestisce ancora.

Trappole comuni e quando adattare il modello

Plan ownership up front
Definisci i confini del servizio, i proprietari e le aspettative di rollout prima di scrivere codice.
Use Planning Mode

“You build it, you run it” può migliorare affidabilità e velocità—ma solo se l'organizzazione cambia le condizioni attorno al team. Molti fallimenti sembrano adottare lo slogan, ma non le abitudini di supporto.

Modalità di fallimento da tenere d'occhio

Alcuni schemi ricorrono spesso:

  • Gli sviluppatori sono on-call, ma non hanno mai tempo per risolvere le cause radice. Il pager diventa una fatica serale, mentre il backlog continua a rimandare il lavoro di affidabilità. Questo crea rassegnazione: la gente smette di credere che gli incidenti porteranno miglioramenti reali.
  • Ownership vaga (“tutti lo possiedono”). Se un incidente coinvolge cinque team e nessuno può prendere decisioni end-to-end, non hai proprietà—hai una riunione.
  • Troppe dipendenze condivise. Quando ogni servizio dipende da un database centrale, una libreria condivisa o un team “core” per le modifiche, i team non possono davvero gestire ciò che costruiscono. Ereditano i guasti senza avere leve per ridurli.
  • On-call come punizione o eroismo. Se la cultura premia il firefighting più della prevenzione, il sistema tende verso emergenze frequenti.

Quando il modello potrebbe non andare bene (e come adattarlo)

Alcuni contesti richiedono un approccio su misura:

  • Conformità pesante o operazioni regolamentate. Potrebbe servire separazione dei compiti, controllo formale delle modifiche o accesso limitato alla produzione. Adatta mantenendo i team responsabili degli esiti di affidabilità, usando però workflow approvati (runbook auditati, cambi pre-approvati, break-glass access).
  • Monoliti legacy. Un unico codebase con ownership intrecciata rende difficile il “run it”. Inizia assegnando ownership operativa chiara a moduli specifici, job o percorsi utente, e investi in osservabilità e sicurezza del deploy prima di riorganizzare tutto.
  • Piattaforme condivise critiche. Se una piattaforma supporta molti team di prodotto, il team piattaforma può gestire la piattaforma—ma i team di prodotto dovrebbero comunque possedere il comportamento e gli obiettivi di affidabilità dei loro servizi.

Il lavoro della leadership: proteggere la capacità per l'affidabilità

Questa filosofia fallisce più rapidamente quando il lavoro di affidabilità è trattato come “extra.” La leadership deve riservare esplicitamente capacità per:

  • ridurre il debito operativo (alert, runbook, automazione)
  • correggere le cause ricorrenti degli incidenti
  • ridurre dipendenze rischiose

Senza questa protezione, l'on-call diventa una tassa—invece che un ciclo di feedback che migliora il sistema.

Come adottare “You Build It, You Run It” passo dopo passo

Implementarlo funziona meglio come un cambiamento a fasi, non come un annuncio aziendale. Inizia in piccolo, rendi visibile la proprietà e poi espandi.

1) Pilota con un servizio

Scegli un singolo servizio ben delimitato (idealmente con utenti chiari e rischio gestibile).

Definisci:

  • Un SLO che rifletta l'esperienza utente (es. “99.9% delle richieste riescono”)
  • Copertura on-call per quel servizio (anche se inizialmente solo ore lavorative + escalation)
  • Runbook per le principali modalità di guasto: “cosa controllare”, “come rollbackare”, “chi chiamare”

La chiave: il team che rilascia le modifiche possiede anche gli esiti operativi di quel servizio.

2) Aggiungi guardrail prima di scalare

Prima di estendere ad altri servizi, assicurati che il team pilota possa operare senza eroismi:

  • Alert base che pageano per problemi che impattano gli utenti (non ogni picco di metrica)
  • Una checklist leggera di production readiness (logging, dashboard, rollback)
  • Revisione regolare delle pagine e degli incidenti per rimuovere alert rumorosi e correggere problemi ripetuti

3) Traccia le metriche giuste di adozione

Usa un piccolo set di indicatori che mostrino se la proprietà sta migliorando rilascio e stabilità:

  • Change failure rate (quanto spesso un deploy causa un incidente/rollback)
  • MTTR (tempo medio di ripristino)
  • Volume di pagine (pagine a settimana, incluse quelle fuori orario)
  • Frequenza di deploy (quanto spesso riesci a rilasciare in sicurezza)

Piano 30/60/90 giorni di esempio

  • Giorni 1–30: Scegli servizio pilota, definisci SLO, politica di paging, scrivi i primi runbook, crea dashboard.
  • Giorni 31–60: Affina gli alert (riduci il rumore), esercita la risposta agli incidenti, aggiungi sicurezza al rilascio (passi di rollback, canary dove possibile).
  • Giorni 61–90: Espandi a 1–2 servizi in più, standardizza template (runbook/doc SLO), rivedi metriche e equità del carico di lavoro.

Dove si inserisce Koder.ai (se stai modernizzando il modo in cui rilasci)

Se stai adottando “you build it, you run it” mentre cerchi anche di accelerare la consegna, il collo di bottiglia spesso è lo stesso: passare dall'idea → a un servizio pronto per la produzione con ownership chiara e una storia di rollback sicura.

Koder.ai è una piattaforma vibe-coding che aiuta i team a costruire app web, backend e mobile tramite un'interfaccia chat (React per il web, Go + PostgreSQL per il backend, Flutter per mobile). Per i team che puntano alla proprietà del servizio, alcune funzionalità si allineano chiaramente al modello operativo:

  • Planning mode per definire confini del servizio, dipendenze e aspettative di runbook/SLO prima di scrivere codice.
  • Snapshots e rollback per rendere il revert una mossa standard durante gli incidenti.
  • Export del codice sorgente così la proprietà resta con il team (e il repo), non con lo strumento.

Prossimo passo

Scegli il tuo servizio pilota questa settimana e programma un kickoff di 60 minuti per definire il primo SLO, la rotazione on-call e i proprietari dei runbook. Se stai valutando strumenti per supportare questo (rilascio, rollback e i workflow attorno alla proprietà), consulta le opzioni di pricing di Koder.ai e i vari piani—free, pro, business ed enterprise—più opzioni come hosting, deployment e domini personalizzati.

Domande frequenti

What does “You Build It, You Run It” mean in practice?

Significa che il team che progetta, costruisce e distribuisce un servizio è anche responsabile di cosa succede dopo che è in produzione: monitoraggio, risposte on-call, follow-up degli incidenti e miglioramenti della affidabilità.

È un modello di responsabilità (proprietà chiara), non una scelta di strumenti o un cambiamento di ruoli.

Does “run it” mean every developer has to be an ops expert?

Non significa che ogni ingegnere debba diventare uno specialista infrastrutturale a tempo pieno.

Significa:

  • che il team ha accesso e autorità per diagnosticare e risolvere problemi in produzione
  • che il lavoro operativo è parte della pianificazione normale del team
  • che gli strumenti di piattaforma dovrebbero ridurre la complessità (paved roads) senza togliere la responsabilità
Why is this better than the traditional dev/ops handoff model?

Con un team ops separato, il feedback arriva tardi e la responsabilità si offusca: gli sviluppatori potrebbero non percepire il dolore in produzione e gli ops potrebbero non conoscere il contesto delle modifiche recenti.

La proprietà end-to-end di solito migliora:

  • la velocità di risposta agli incidenti (meno passaggi)
  • la qualità dei rilasci (i team investono in rollout più sicuri)
  • la stabilità nel lungo periodo (le cause radice vengono risolte, non solo tamponate)
What exactly is a team responsible for when they “run” a service?

“Run it” di solito include:

  • dashboard per lo stato che impatta gli utenti (latency, errori, traffico)
  • alert azionabili legati all'impatto (non sintomi rumorosi)
  • un workflow per gli incidenti (triage, mitigazione, comunicazione, follow-up)
  • runbook per i guasti comuni e i passi dei “primi 15 minuti”
  • responsabilità su capacità e costi (scaling, limiti, budgeting)
How do you set up on-call without burning people out?

Inizia con scelte umane di base:

  • rotazioni della on-call dimensionate correttamente e escalation chiare (primary/secondary/domain expert)
  • pagine solo per impatti reali (definizioni di severità)
  • runbook in modo che chi risponde non debba improvvisare sotto stress
  • tempo di recupero dopo notti difficili

Un buon sistema on-call mira a ridurre il numero di pagine il mese prossimo, non a normalizzare gli eroi.

What should trigger a page vs. a ticket?

Usa una regola semplice: se svegliare qualcuno non cambierebbe l'esito, crea un ticket invece di una pagina.

Praticamente:

  • pagare per outage, rischio di perdita dati, incidenti di sicurezza o violazioni gravi di SLO
  • indirizzare i problemi degradati ma stabili alle ore lavorative a meno che non persistano
  • convertire gli alert fluttuanti in lavoro di follow-up (tuning, segnali migliori, automazione)
How do SLOs and error budgets support “You Build It, You Run It”?

Creano obiettivi condivisi e misurabili:

  • SLI: ciò che misuri (es. percentuale di richieste riuscite)
  • SLO: l'obiettivo per quella misura (es. 99.9%)
  • Error budget: quanto degrado puoi “spendere” restando entro l'SLO

Quando il budget si consuma velocemente, priorizza il lavoro di affidabilità; quando è sano, puoi prendere più rischi di delivery.

What release practices make this model sustainable?

Adotta pratiche di rilascio che riducono incertezza e blast radius:

  • basi di production readiness (dashboard, alert, runbook, piano di rollback)
  • progressive delivery (feature flags, canary, rilasci piccoli)
  • rollback/roll-forward provati e automatizzati
  • test di carico e di failure per intercettare gli “unknown unknowns”
How should teams handle incidents and postmortems under this model?

Gestisci gli incidenti con un flusso ripetibile:

  • detect → triage → mitigate → communicate → learn

Poi scrivi postmortem senza colpe focalizzati su gap di sistema e processo, con follow-up che siano:

  • concreti
  • assegnati a una persona/team
  • con scadenza

Una checklist leggera come blog/incident-response-checklist può aiutare a standardizzare il flusso.

What’s the right role for platform teams without undermining service ownership?

Il team di piattaforma dovrebbe fornire paved roads (template, CI/CD, guardrail, servizi condivisi come auth e osservabilità) mentre i team di prodotto mantengono la proprietà dei risultati dei loro servizi.

Un confine pratico:

  • il team di piattaforma è responsabile dell'uptime e del supporto della piattaforma
  • i team di prodotto sono responsabili di affidabilità/performance/costi dei loro servizi che usano la piattaforma
Indice
Cosa significa davvero “You Build It, You Run It”Perché questa filosofia ha cambiato il modo in cui i team rilasciano softwareDa dove viene: Werner Vogels e la mentalità del servizioProprietà: cosa assumono i team quando “lo gestiscono”On-call fatto bene (e senza bruciare le persone)SLO, SLI e error budget: i guardrail praticiRilasciare in sicurezza: prontezza per la produzione e pratiche di releaseIncidenti e postmortem: trasformare gli outage in apprendimentoStrumenti che rendono la proprietà del servizio più sempliceIl ruolo dei team di piattaforma: supportare senza togliere proprietàTrappole comuni e quando adattare il modelloCome adottare “You Build It, You Run It” passo dopo passoDomande frequenti
Condividi
Koder.ai
Build your own app with Koder today!

The best way to understand the power of Koder is to see it for yourself.

Start FreeBook a Demo