Skrypty operacyjne
Un insieme di oltre una dozzina di script diagnostici che vegliano sulla salute dell'infrastruttura. Rilevano il drift della configurazione, i segreti nei repo, i certificati in scadenza, i link morti, i backup mancanti e le porte occupate. Un lavoro di routine che prima divorava ore, ridotto a un solo comando.
Una dozzina abbondante di script diagnostici sotto un unico comando. Certificati in scadenza, backup mancanti, segreti finiti in un repo, link morti, porte occupate - le cose che è facile rimandare, finché qualcosa non si rompe. Un comando, un codice di uscita diverso da zero, e la fine del tirare a indovinare se qualcuno si è ricordato di controllare.
Introduzione
Ogni infrastruttura ha uno strato di lavoro che è noioso esattamente fino al momento in cui diventa critico. Un certificato che scade di domenica. Un backup che da un mese spara nel vuoto. Un segreto finito per sbaglio in un repo. Una porta occupata che non dovrebbe ascoltare. Niente di tutto ciò grida finché non è troppo tardi.
Abbiamo raccolto questi controlli in una dozzina abbondante di piccoli script e li abbiamo nascosti dietro un unico comando. L'obiettivo non era tecnico ma umano: fare in modo che l'igiene dell'infrastruttura smetta di dipendere dal fatto che qualcuno si sia ricordato di farla. Perché la memoria, come si scopre nella pratica, è il peggior meccanismo di sicurezza che si possa scegliere.
La routine che perde sempre contro le scadenze
Curare l'infrastruttura è il tipo di lavoro che si può sempre fare domani. Noioso finché tutto funziona, quindi cede educatamente il posto alle cose che hanno una scadenza. Il problema è che di suo non ne ha una - finché all'improvviso ne ha una, e dura: il certificato scade oggi, il backup serviva ieri.
Non è un problema tecnico. Ognuno di questi controlli si può fare a mano in un minuto. Il problema è che richiedono che qualcuno se ne ricordi, regolarmente, sullo sfondo di un altro lavoro - ed è esattamente ciò che le persone fanno male. Più cose ci sono da ricordare, più sicuramente una salta, di solito proprio quella che stavolta avrebbe intercettato qualcosa.
Un comando, una passata
Abbiamo quindi ridotto tutta la routine a un unico comando che non dipende dalla memoria di nessuno. Lo lanci a mano prima di un deploy oppure lo inserisci in una pianificazione e lo dimentichi - ed è esattamente l'effetto voluto.
Cosa intercetta una passata
| Controllo | Intercetta |
|---|---|
| Certificati | scade tra meno di N giorni |
| Backup | l'ultimo più vecchio della soglia, o vuoto |
| Segreti | chiavi e token finiti in un repo |
| Link | riferimenti morti nei documenti e nella config |
| Porte | occupate o in ascolto dove non dovrebbero |
| Deriva della config | una cosa nel repo, un'altra sul server |
Contratto: il codice di uscita dice tutto
Perché qualcosa possa inserirsi nella CI o in cron, deve parlare con un codice di uscita, non con un paragrafo di testo. Zero significa pulito, qualsiasi altra cosa significa vai a guardare. È tutto il contratto, ed è proprio la sua semplicità a rendere lo strumento automatizzabile senza alcun trucco.
Lo stesso comando ha due facce. Per un umano stampa un rapporto leggibile - cosa è stato controllato, cosa è passato, cosa richiede attenzione. Per una macchina restituisce JSON che si può analizzare e agganciare a un allarme. Un ingresso, due forme di uscita, nessun testo pensato per gli umani che finge di essere un'interfaccia per macchine.
Un allarme che non suona senza motivo
La parte più difficile di uno strumento del genere non sono i controlli in sé, ma le soglie. Un allarme che suona sempre vale quanto un allarme spento - le persone semplicemente smettono di leggerlo, e allora manca l'unica volta in cui qualcosa non va davvero. È il modo più comune in cui il monitoraggio tace: non per un guasto, ma per il rumore.
Per questo ogni controllo ha una soglia scelta in modo che il comando taccia quando le cose vanno bene. Un certificato che scade tra sei mesi non è un allarme. Un certificato che scade tra una settimana sì. Un backup di un'ora fa va bene, di un mese fa no. Le soglie esistono perché il silenzio significhi qualcosa.
Il silenzio di uno strumento ha valore solo se è credibile. Se il comando si fa sentire per ogni sciocchezza, le persone imparano a ignorarlo, e allora non avvertirà durante un incendio. Regola le soglie in modo che l'assenza di un allarme significhi davvero pulito - altrimenti costruisci rumore, non monitoraggio.
Cosa ne resta
Non è uno strumento vistoso, e non deve esserlo. Non c'è dashboard, non ci sono grafici, niente da mostrare in uno screenshot. Tutto il suo valore sta nel fatto che la routine ha smesso di dipendere dalla memoria di chiunque - si lancia da sola, e quando tace, quel silenzio significa davvero pulito.
La differenza è che la classe di problemi che prima emergeva solo al guasto ora emerge prima - in una semplice passata prima di un deploy o a un orario fisso da cron. Un certificato in scadenza avvisa una settimana prima, non di domenica alle tre di notte. È tutto il lavoro di questo strumento: trasformare un silenzio nato dall'ignoranza in un silenzio nato dalla certezza.
Altri progetti
Altri lavori della stessa categoria - scopri come affrontiamo sfide simili.
Hai un progetto simile?
Contattaci - il preventivo è gratuito e arriva entro un'ora.



