Il lato ‘umano’ del mestiere di Sistemista
di Paul Summers - traduzione di Domenico Viggiani
E così pensavi davvero di sapere cosa vuol dire amministrare una server farm o una rete con centinaia o migliaia di utenti? Una cosa triste del mestiere di Sistemista è che, ad un certo momento della tua carriera, incapperai di certo nell’utente con il quoziente di intelligenza di una rapa che ti chiederà di lasciar stare tutto quello che stai facendo per sistemare la sua machina, la sua email o qualunque altra cosa.
Questo articolo descrive proprio come trattare questo tipo di problemi. Vedremo come avere a che fare con le questioni di tutti i giorni ma soprattutto come NON averci a che fare! Esamineremo trucchi e suggerimenti per togliere le castagne dal fuoco quando le cose accadono davvero. Infine, vedremo come trattare con le dovute priorità una situazione drammatica in cui tutto va male.
Per prima cosa, vediamo alcuni esempi pratici di situazioni che possono sorgere nel lavoro di tutti i giorni.
Esempio numero uno. Lavori per una piccola dot-com. Sei il solo Sistemista dell’azienda ed hai la responsabilità del mantenimento di una rete locale di 50 workstation di varia origine e di una farm di 10 server.
È Lunedì mattina, stai prendendo un bel caffè quando qualcuno dal marketing corre nella tua stanza ed inizia una lamentela su "la rete e la posta che non funzionano".
Che fare? La prima cosa che deve venire in mente è liberarsi del collega petulante. Anche se sarebbe divertente dirgli di andarsi a buttare dal tetto del più vicino grattacielo, un approccio più diplomatico è d’obbligo, per evitare la "stanza blu" (anche conosciuta come l’ufficio del capo, da dove i vecchi Sistemisti passano prima di morire).
Passo 1: liberarsi del collega importuno. Questo si ottiene generalmente assicurandogli che tu darai la massima importanza alla cosa e la risolverai prima possibile. Allora, lui di solito ti chiederà un stima esatta al secondo di quando "avrai sistemato tutto". Se non puoi fare a meno di dirgli un tempo preciso, calcola il tempo necessario a ricostruire la rete da zero e reinstallare la sua workstation. Questo ti eviterà di veder tornare l’utente a lamentarsi che ci vuole troppo tempo. Inoltre, ti darà la fama di "impiegato-fenomeno", nel momento in cui risolverai il problema molto prima di quanto anticipato. Contrariamente a quanto molte persone pensano, questa non è una cosa cattiva. Si chiama gestione dei problemi e consiste nel non dover mai dare a nessuno cattive notizie. Pianifica sempre il peggio e tutte le sorprese saranno sempre belle.
Passo 2: per il momento, l’importuno collega è stato mandato a prendersi un caffè (adesso ha pure una scusa per non lavorare, dato che "la rete è giù"). La prima cosa da fare è verificare la connettività della rete e degli host. Questo può essere fatto con il ‘ping’ o qualche altro tool. Nel 99% dei casi, la rete funzionerà benissimo. Assumiamo che il ‘ping’ funzioni in entrambe le direzioni per tutti gli host della rete, come anche verso host esterni. Ciò significa che il problema è sulla macchina dell’utente.
Munisciti del tuo maneggevolissimo tester (ce l’hai, vero?) e prova la porta a cui è connessa la macchina dell’utente. Segui i possibili problemi lungo tutto il percorso fino a scovarli. Nove volte su dieci, si tratta di un utente Windows che ha tirato il cavetto o "aggiornato" i driver della scheda di rete.
A questo punto, dovresti aver recuperato la connettività ("la rete è di nuovo su") ed avere la possibilità di indagare ulteriormente. Nella maggior parte dei casi, i servizi menzionati ("la posta") inizieranno magicamente a funzionare di nuovo.
Risultato: l’utente è felice che la sua macchina sia di nuovo connessa alla rete e possa leggere la sua posta. È anche felice che sia stata data massima priorità al suo problema e tutto sia stato sistemato in meno di mezz’ora quando la stima iniziale era di tre ore.
Il primo esempio era un caso semplice. Si trattava solo di un singolo problema isolato. La soluzione, però, o almeno il suo lato ‘umano, è stata la stessa di quella che vedremo nei prossimi esempi.
Questo esempio riguarda te, il Sistemista senior di una grande azienda di vendite (diciamo che sei appena stato assunto da amazon.com), con cinque Sistemisti junior che lavorano nel tuo team. È Venerdì pomeriggio e ognuno sta solo aspettando il week-end quando, improvvisamente, tutto va storto. Tu e i tuoi amici Sistemisti venite sommersi da almeno 10 telefonate ciascuno in altrettanti minuti, che lamentano che la rete è giù. Pochi minuti ancora e una dozzina di persone sono davanti alla tua scrivania e pretendono risposte.
Rimani calmo. Non devi assolutamente tuffarti a testa bassa in sala macchine, armato dei tuoi strumenti di fiducia, chiudendoti la porta alle spalle. Prima devi sistemare l’aspetto umano della questione. Perché? Perché con tutta probabilità ti troverai di fronte ad un problema semplice (come uno switch o un router che si è riavviato o qualche altro pezzo di ferro che non va). È possibile ragionevolmente assumere che tutto verrà sistemato in pochi minuti ma cosa succederà se se la cosa non si rivelerà così semplice? Cosa succederà se un router si è fuso e non ne hai uno di ricambio? Cosa succederà se si è rotta una fibra e sei alla mercé della compagnia di telecomunicazioni?
Devi preparare le persone che dipendono dalla rete ad un fermo che può durare pochi minuti o tutto il giorno. Poi, puoi andare a risolvere il problema.
Passo 1: tratta con le persone che sanno che sei tu che devi sistemare questo problema, che stanno gironzolando intorno alla tua scrivania e che fanno capolino dietro le tue spalle, in cerca di risposte. Prima le rassicuri e prima potrai darti da fare per risolvere il problema. Il miglior approccio di solito è quello di dare una risposta di indirizzo generale, qualcosa del tipo "siamo a conoscenza che la rete è giù e stiamo lavorando sul problema. Vi informeremo di ogni cambiamento e appena abbiamo una stima del tempo necessario al ripristino del servizio. Per favore, ritornate al vostro lavoro in maniera che noi possiamo fare il nostro". Sperabilmente, la maggior parte di loro afferrerà il concetto e si dileguerà a giocare a Pong. Se qualcuno rimane e chiede ancora risposte, riassicuralo che stai dando al problema la massima priorità (questo tranquillizza chiunque). Fai tutto ciò che è necessario per dare una risposta convincente e, se qualcuno chiede una stima dei tempi necessari, forniscigli un tempo il più possibile lungo, basandoti su quello che già sai. Non preoccuparti di dire "non lo so" ma dici pure "non lo so ma se mi lasci tornare a lavorare, cerco di capirlo e te lo faccio sapere".
Adesso, stacca il telefono ed imposta un messaggio di non disturbare con qualche frase simile a quelle che hai detto finora. Tutto ciò, si spera, preverrà un accumulo di messaggi in segreteria e altre cose noiose.
Passo 2: risolvere il problema. In questo articolo, non tratteremo degli aspetti tecnici della risoluzione dei problemi ma solo del lato ‘umano’ del lavoro. Il tuo obiettivo primario come Sistemista dovrebbero essere sempre le persone che usano i sistemi che tu amministri in quanto, detto semplicemente, senza di loro, non avresti un lavoro.
Come terzo esempio, focalizzeremo l’attenzione su una situazione con cui certamente ti troverai a che fare come Sistemista: la situazione CCI. CCI sta per Capo Con Idea e non è mai una buona cosa. Il management di livello alto è sempre stato figlio del marketing e raramente ha una educazione pratica come la tua, necessaria per far funzionare davvero le cose. Tuttavia, quando vede una pubblicità in TV dell’applicazione supertecnologica xyz o legge qualche splendente report sulle performance di qualche sistema proprietario su una rivista, stai certo che lo suggerirà a te, e presto.
Passo 1: scegli il terreno. Di solito, CCI arriva sotto forma di e-mail ("dai un’occhiata a questo, lo useremo nella prossima settimana"). O forse sotto forma di messaggio vocale. Indipendentemente da come vieni avvisato, vai sempre direttamente alla fonte. Fissa un incontro con il CCI immediatamente e verifica questa "idea" prima possibile. È MOLTO meglio discutere la cosa facia a faccia. Se tu fai dell’ironia via mail, perdi di sicuro, anche se i fatti ed i dati sono dalla tua parte. Dovrebbe essere un incontro privato, per salvare la faccia. Ricorda: dovrai lavorare con questa persona nel futuro e non è generalmente una buona idea farlo apparire pubblicamente come un idiota.
Passo 2: prepara i fatti. Hai un mucchio di armi a tua disposizione, una delle più potenti sono i nudi dati. Supponiamo che il CCI voglia sostituire l’attuale soluzione GNU/Linux/Apache/PHP, che hai impiegato un anno a tirare su, con una soluzione pronta NT/IIS/ASP. Attaccati a Google e recupera tutti i benchmark e tutti i dati sull’affidabilità che riesci a trovare per supportare la tua opinione. Procurati anche un po’ di grafici e diagrammi o anche una intera presentazione, se necessaria. Maggiore è l’impatto della tua posizione, più peso avrà nella decisione finale. Anche le dimostrazioni pratiche sono sempre una buona idea. Installa un piccolo server Linux e poi uno NT. Predisponi qualche semplice compito e chiedi al tuo capo di provarlo. Diciamo, navigare sul sito aziendale con NT e con Linux su un Pentium 100. La differenza di prestazioni dovrebbe essere piuttosto ovvia anche per chi non è preparato.
Passo 3: segui la pratica. Anche la migliore presentazione da sola non andrà lontano se poco dopo il tuo capo andrà a casa, accenderà il televisore e verrà bombardato da altra pubblicità. Il mattino successivo, fissa un altro incontro e presenta il tuo piano per la riprogettazione dell’applicazione in questione. Naturalmente, tutto si ridurrà all’aggiunta di qualche nuova caratteristica all’applicazione esistente, ma questo impressionerà il CCI e ristabilirà il fatto che la tua soluzione è la maniera giusta di far andare le cose. Il CCI avrà qualcosa di nuovo con cui giocare e tu avrai una piattaforma che funziona. Tutti avranno vinto.
Ora parleremo di un aspetto diverso del lato personale del mestiere del sistemista. Trucchi e suggerimenti che ti salveranno la testa e ti faranno risparmiare un sacco di tempo. Si tratte di tutto ciò che può aiutarti a tenere la gente informata e lontana dalle scatole quando le cose vanno male. Alcune sono semplici, altre no. Ma tutte renderanno la tua vita di Sistemista molto più facile.
Nel primo esempio di quest’articolo, avevamo un utente che si lamentava che la rete era giù. Che ne dici di preparare un piccolo script perl che usa ‘wget’ o ‘ping’ per testare ogni host sulla rete e riportare lo stato di tutte le macchine in una piccola tabella? Si tratta di qualcosa che puoi mostrare all’utente, prima che prenda posizione dietro le tue spalle, e fargli vedere che non è un problema di rete ma solo un problema della sua macchina.
E che dire dei messaggi vocali? Di preparare alcuni messaggi pre-registrati per tutti i vari problemi che possono sorgere e conservarli sulla tua workstation? Così, tutto quello che dovrai fare è richiamarli quando servono, senza preoccuparti di cosa dire e di come dirlo, per filtrare tutto il chiacchiericcio di sottofondo. Questa è una cosa che riesce meglio a notte tarda, quando poche persone sono nei pressi del tuo spazio di lavoro.
Ricorda: se la rete o il server della posta vanno giù, non saprai che fartene di tutte quelle e-mail di allarme che avevi preparato. Lo stesso può dirsi di quel sistema automatico di supporto agli utenti che avevi installato nella pausa caffè.
Ecco un altro buon suggerimento. Ricordi quel ragazzotto che ti sta sempre intorno quando stai smontando un server? Quello che ti fa domande senza fine e cerca di ottenere un IP statico sulla rete per qualche ragione? Bene, una persona come questa, che è ovviamente interessata in quello che fai ma non ci capisce quasi niente, può rivelarsi molto utile quando tutto va male. Supponiamo che tutta la rete esploda, come nel secondo esempio. Non sarebbe bello avere una persona che vada in giro di corsa da tutti (o almeno dai capi), per informarli che stai lavorando sodo sul problema? Questa specie di tocco personale rende le persone felici. Mantenere le persone felici è una buona cosa, quando arriva il momento di firmare quella nota spese che hai accumulato a Las Vegas.
Il mio trucco favorito è il CD di recovery. Usando programmi come ‘slate’ o ‘ghost’ (o le loro alternative Open Source), è possibile creare delle immagini su CD del sistema operativo (o dell’intero disco, se hai un DVD-R) così com’e' installato in produzione. A che scopo? Se l’intera machina salta e la devi ricostruire da zero, è generalmente più facile ripristinare le partizioni dell’hard-disk che reinstallare tutto da zero.
Ora siamo all’ultima situazione dell’articolo. Il Giorno del Giudizio Universale. Si, proprio come in tutti quei film di James Bond, qualche volta davvero può andare tutto male e devi essere tu a mettere tutto a posto.
È un bel Sabato pomeriggio. Sei seduto nel parco, a leggere un buon libro (o nel pub, a smaltire l’incubo di Venerdì, quando tutta la rete è andata giù) quando improvvisamente accade. L’episodio del destino. Si, potrebbe essere un amico che vuole portarti a vedere una partita degli Yankees o la tua ragazza che vuole andare a fare shopping. Ma, appena tu ti senti a tua agio e sei alla parte più interessante del libro, la legge di Murphy stabilisce che deve essere il giorno del destino. Molti Sistemisti conoscono questo avviso, perché l’hanno programmato sul teledrin o sul cellulare con un tono speciale. Che significa, piuttosto semplicemente, che tutto l’inferno è scappato dal ranch (?).
Corri in ufficio e ti trovi di fronte a vari problemi. Primo, sembra che qualcuno abbia dato un calcio al distributore dell’acqua al piano superiore e due o tre dei tuoi server sono in un lago d’acqua. Inutile dirlo, essi non ne sono felici. In più, una mattonella del soffitto inzuppata d’acqua è caduta su uno switch, rompendo la linea in fibra. Infine, questo lago si sta spostando verso l’UPS che mantiene tutte queste cose.
Passo 1: niente panico. Premi il pulsante d’allarme. Signore e signori, questo rappresenta la totale interruzione del servizio. E questo è molto male. Se hai dei Sistemisti junior a disposizione, chiamali. Se no, chiama i ragazzi programmatori e prometti loro una (o 12) birra dopo che tutto questo pasticcio sarà terminato. Insomma, fai qualcosa per avere più braccia possibili a disposizione.
Passo 2: ?. Mentre aspetti i tuoi colleghi e/o amici, per asciugare tutta quell’acqua, mentre cerchi di trovare qualla pompa che hai visto qualche settimana fa, trova un momento per sederti e dare un’occhiata al danno
La prima priorità dovrebbe essere qualla di mettere in sicurezza te stesso e gli altri. Così, se il lago d’acqua circonda un quadro elettrico da 440V, probabilmente non vorrai trovartici in mezzo, a premere interruttori. A meno che non desideri una capigliatura punk ed una corsa gratis in ambulanza.
Se tutto è sicuro, la prossima priorità dovrebbe essere quella di evitare ulteriori danni. Se l’acqua si muove verso altri server e verso un grande UPS, spegnili. Meglio un server spento e offline che un server fuori uso. Questa dovrebbe essere l’ultima risorsa ma non dovresti essere dispiaciuto di considerarla se la situazione lo richiede. Dopo tutto, il tuo capo sarà molto più felice se salvi migliai di dollari di apparecchiature che non se consenti altre due transazioni sul server.
Step 3: combatti le battaglie più grosse per prime. Così, hai quasi asciugato l’acqua e i tuoi ragazzi sono finalmente arrivati. Dopo aver esaminato i danni, capisci che due server sono andati, insieme a qualche fibra ottica rotta. Le cose potevano andare peggio. La prima priorità dovrebbe essere qualla di ridare connettività alle macchine che non hanno fatto il bagno. Così, sostituisci le fibre danneggiate e controlla sullo switch che tutto sia a posto. Sperabilmente, ogni cosa funzionerà e non sarà necessario andare in giro di Sabato pomeriggio a recuperare uno switch di ricambio.
Ora che la connettività è stata ripristinata, dai un’occhiata ai server. Sembra che siano fuori uso sia il mail server primario che quello di backup. Ad un controllo più approfondito, gli alimentatori si sono bagnati e sono andati in corto, e le schede-madri non sembrano in piena salute. D’accordo, altre parti del sistema sembrano a posto ma il tempo è denaro. Butta giù due macchine nuove e ripristina il tutto dai tuoi CD (li avevi preparati, vero?). Ripristina i dati, riporta le macchine online e vai a comprare un po’ di birre ai tuoi amici.
Ecco un suggerimento sul quale non insisterò mai abbastanza. Fissa un altro incontro col tuo capo e convincilo a darti dei fondi per la preparazione ai disastri. La cosa più comune è una carta di credito aziendale, della quale puoi fare un uso senza restrizioni. Così, quando accade qualcosa come le precedenti, e non ci sono parti di ricambio necessarie in magazzino, puoi correre ad acquistarle senza stare ad aspettare il Lunedì per un acconto. Stai attento, però, dovrai giustificare ogni cosa che acquisterai, per cui sarà duro spiegare perché la rete ha improvvisamente avuto bisogno di una nuova, splendente Ferrari.
In chiusura, un Sistemista deve affrontare molte situazioni, indipendentemente dalle dimensioni della ditta. Alcune di loro sono divertenti, altre no. Questa è la natura del suo lavoro: sistemare le cose che la natura o persone sciocche hanno deciso di rompere. Ciò può essere eseguito con maggiore efficacia se ci sono buoni rapporti interpersonali, come detto prima. Se le persone sanno che tu stai facendo onestamente tutto ciò che puoi, anche se ciò è ovvio per te, ti porteranno rispetto. Se approcci il tuo capo con argomenti profondi sul perché la tua configurazione è meglio di quella che ha visto in TV, andrai molto più lontano che dicendo "Ugh… qualla cosa è una pezzo di merda". Ricorda sempre che non si dovrebbe mai andare in panico e cerca di dare le dovute priorità alle cose. Prepara sempre un piano di backup ed un backup per il piano di backup. Ricorda: potrebbe essere sempre peggio di quello che è.