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.

Skrypty operacyjne
TL;DR

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

ControlloIntercetta
Certificatiscade tra meno di N giorni
Backupl'ultimo più vecchio della soglia, o vuoto
Segretichiavi e token finiti in un repo
Linkriferimenti morti nei documenti e nella config
Porteoccupate o in ascolto dove non dovrebbero
Deriva della configuna 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.

ops-check.sh · bash
ops check --all

ops check --all --format json || notify "ops: qualcosa richiede attenzione"

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.

➜
Suggerimento

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.

12+
controlli sotto un unico comando
1
ingresso invece di una dozzina di passi manuali
secondi
invece di ore a percorrere cartelle

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.