Come abbiamo evacuato il turno di servizio di Yandex

Come abbiamo evacuato il turno di servizio di Yandex

Quando il lavoro sta in un laptop e può essere svolto autonomamente da altre persone, non ci sono problemi a trasferirsi in una località remota: è sufficiente restare a casa la mattina. Ma non tutti sono così fortunati.

Il turno di servizio è costituito da un team di specialisti della disponibilità del servizio (SRE). Comprende amministratori di turno, sviluppatori, manager, oltre a un "cruscotto" comune di 26 pannelli LCD da 55 pollici ciascuno. La stabilità dei servizi dell'azienda e la velocità di risoluzione dei problemi dipendono dal lavoro del turno di servizio.

Oggi Dmitrij Melikov tal10n, il capoturno di turno, racconterà di come in pochi giorni sono riusciti a trasportare le attrezzature nelle loro case e a stabilire nuovi processi lavorativi. Gli concedo la parola.

- Quando hai una scorta infinita di tempo, puoi spostarti comodamente con qualsiasi cosa ovunque. Ma la rapida diffusione del coronavirus ci ha messo in condizioni completamente diverse. I dipendenti Yandex sono stati tra i primi a passare al lavoro a distanza, ancor prima dell’introduzione del regime di autoisolamento. È successo così. Giovedì 12 marzo mi è stato chiesto di valutare la possibilità di spostare a casa il lavoro della squadra. Venerdì 13 è stata raccomandata la transizione al lavoro a distanza. La notte di martedì 17 marzo tutto era pronto per noi: gli addetti lavoravano a casa, le attrezzature sono state spostate, il software mancante è stato scritto, i processi sono stati riconfigurati. E ora ti racconto come abbiamo fatto. Ma prima devi ricordare i compiti risolti dal turno di servizio.

Chi siamo noi

Yandex è una grande azienda con centinaia di servizi. La stabilità della ricerca, dell'assistente vocale e di tutti gli altri prodotti non dipende solo dagli sviluppatori. L'alimentazione elettrica potrebbe essere interrotta nel data center. Un operatore durante la sostituzione dell'asfalto potrebbe danneggiare accidentalmente il cavo ottico. Oppure potrebbe verificarsi un’impennata dell’attività degli utenti, che richiederà un’urgente riallocazione della capacità. Inoltre, viviamo tutti in un'infrastruttura grande e complessa e il rilascio di uno dei prodotti può portare accidentalmente al degrado di un altro.

26 pannelli nel nostro open space rappresentano un migliaio e mezzo di avvisi e più di un centinaio di grafici e pannelli dei nostri servizi. In realtà, questo è un enorme pannello diagnostico. Un amministratore di turno esperto, guardandolo, comprende rapidamente lo stato di nodi importanti e può impostare la direzione per indagare su un problema tecnologico. Ciò non significa che una persona debba guardare costantemente tutti i dispositivi: l'automazione stessa attirerà l'attenzione inviando una notifica all'apposita interfaccia dell'ufficiale di turno, ma senza un pannello visivo la soluzione del problema potrebbe ritardare.

Quando si verificano problemi, l'operatore valuta innanzitutto la loro priorità. Quindi isola il problema o ne riduce al minimo l'impatto sugli utenti.

Esistono diversi modi standard per isolare un problema. Uno di questi è il degrado dei servizi, quando l'amministratore di turno disabilita alcune delle funzioni che gli utenti meno notano. Ciò consente di ridurre temporaneamente il carico e capire cosa è successo. Se si verifica un problema con il data center, l'ufficiale di turno contatta il team operativo, comprende il problema, controlla i tempi della sua soluzione e, se necessario, collega i team interessati.

Quando l'amministratore di turno non riesce a isolare il problema sorto a causa del rilascio, lo segnala al team di assistenza e gli sviluppatori cercano errori nel nuovo codice. Se non riescono a capirlo, l'amministratore attira sviluppatori di altri prodotti o ingegneri per la disponibilità dei servizi.

Posso parlare a lungo di come è organizzato tutto con noi, ma penso di aver già trasmesso l'essenza. Il turno di servizio coordina il lavoro di tutti i servizi e controlla i problemi globali. È importante che l'amministratore di turno abbia davanti agli occhi un pannello diagnostico. Ecco perché quando si passa al lavoro da remoto non si può semplicemente prendere e dare a tutti un laptop. I grafici e gli avvisi non entreranno nello schermo. Cosa fare?

Idea

In ufficio, tutti e dieci gli amministratori in servizio lavorano a turni sullo stesso dashboard, che comprende 26 monitor, due computer, quattro schede video NVIDIA Quadro NVS 810, due gruppi di continuità montati su rack e diversi accessi di rete indipendenti. Avevamo bisogno di garantire che tutti abbiano l’opportunità di lavorare da casa. Semplicemente non è possibile montare un muro del genere in un appartamento (mia moglie ne sarà particolarmente felice), quindi abbiamo deciso di creare una versione portatile che possa essere portata e assemblata a casa.

Abbiamo iniziato a sperimentare la configurazione. Dovevamo adattare tutti i dispositivi a un minor numero di display, quindi il requisito principale per il monitor era un'elevata densità di pixel. Tra i monitor 4K disponibili nel nostro ambiente, abbiamo scelto Lenovo P27u-10 per i test.

Dai laptop, abbiamo preso un MacBook Pro da 16 pollici. Ha un sottosistema grafico abbastanza potente, necessario per il rendering delle immagini su diversi display 4K, e quattro connettori universali di tipo C. Potresti chiedere: perché non desktop? Sostituire un laptop con esattamente lo stesso dal magazzino è molto più semplice e veloce che assemblare e configurare un'unità di sistema identica. E sì, pesa meno.

Adesso era necessario capire quanti monitor possiamo effettivamente collegare ad un laptop. E il problema qui non è il numero di connettori, lo potremmo scoprire solo testando il sistema nel suo insieme.

Come abbiamo evacuato il turno di servizio di Yandex

Test

Abbiamo posizionato comodamente tutti i grafici e gli avvisi su quattro monitor e li abbiamo persino collegati a un laptop, ma abbiamo riscontrato un problema. Il rendering dei pixel 4×4K sui monitor collegati ha caricato così tanto la scheda video che il laptop si è scaricato anche durante la ricarica. Fortunatamente, il problema è stato risolto con l'aiuto della docking station Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. Siamo riusciti a collegare un monitor, l'alimentazione e persino il tuo mouse e tastiera preferiti alla docking station.

Ma subito è emerso un altro problema: la GPU si è gonfiata così tanto che il laptop si è surriscaldato, il che significa che si è surriscaldata anche la batteria, che di conseguenza è entrata in modalità protettiva e ha smesso di caricarsi. In generale, questa è una modalità molto utile che protegge da situazioni pericolose. In alcuni casi, il problema è stato risolto con l'aiuto di un dispositivo ad alta tecnologia: una penna a sfera posizionata sotto il laptop per migliorare la ventilazione. Ma questo non ha aiutato tutti, quindi abbiamo aumentato anche la velocità della ventola standard.

C'era un'altra caratteristica spiacevole. Tutti i grafici e gli avvisi devono essere collocati in un luogo rigorosamente definito. Immagina di pilotare un aereo per atterrare e poi gli indicatori di velocità, gli altimetri, i variometri, gli orizzonti artificiali, le bussole e gli indicatori di posizione iniziano a cambiare dimensioni e saltare in luoghi diversi. Quindi abbiamo deciso di creare un'applicazione che possa aiutare in questo. In una sera lo abbiamo scritto su Electron.js, prendendone un ready-made API per la creazione e la gestione delle finestre. Abbiamo aggiunto un gestore di configurazione e il loro aggiornamento periodico, nonché il supporto per un numero limitato di monitor. Poco dopo, hanno aggiunto il supporto per diverse configurazioni.

Assemblaggio e consegna

Lunedì i maghi dell'helpdesk ci hanno procurato 40 monitor, dieci laptop e altrettante docking station. Non so come abbiano fatto, ma grazie mille.

Come abbiamo evacuato il turno di servizio di Yandex

Restava da consegnare tutto questo negli appartamenti degli amministratori di turno. E questi sono dieci indirizzi in diverse parti di Mosca: sud, est, centro e anche Balashikha, che dista 45 chilometri dall'ufficio (a proposito, in seguito è stato aggiunto anche uno stagista di Serpukhov). Era necessario in qualche modo distribuire tutto questo tra le persone, costruire la logistica.

Ho inserito tutti gli indirizzi sulle nostre Mappe, c'è ancora la possibilità di ottimizzare il percorso tra i diversi punti (ho utilizzato la versione beta gratuita dello strumento per corrieri). Abbiamo diviso la nostra squadra in quattro squadre indipendenti di due persone, ciascuna ha ricevuto il proprio percorso. La mia macchina si è rivelata la più spaziosa, quindi ho preso l'attrezzatura per quattro dipendenti contemporaneamente.

Come abbiamo evacuato il turno di servizio di Yandex

L'intera consegna ha richiesto un tempo record di tre ore. Lunedì abbiamo lasciato l'ufficio alle XNUMX:XNUMX. All'una di notte ero già a casa. Quella stessa notte siamo entrati in servizio con nuove attrezzature.

Con il risultato che

Invece di una grande console diagnostica, ne abbiamo raccolte dieci relativamente portatili nell'appartamento di ciascun ufficiale di servizio. Naturalmente c’erano ancora alcune cose da sistemare. Ad esempio, prima avevamo un telefono "di ferro" dell'ufficiale di turno per le notifiche. Nelle nuove condizioni, questo non ha funzionato, quindi abbiamo inventato "telefoni virtuali" per chi è in servizio (appunto, canali nel messenger). Ci furono anche altri cambiamenti. Ma la cosa principale è che in tempi record siamo riusciti a trasferire non solo le persone, riducendo il rischio di infezione, ma tutto il nostro lavoro da casa senza danni ai processi e alla stabilità dei prodotti. Lo facciamo ormai da un mese.

Di seguito troverete le foto dei lavori reali dei nostri addetti.

Come abbiamo evacuato il turno di servizio di Yandex

Come abbiamo evacuato il turno di servizio di Yandex

Come abbiamo evacuato il turno di servizio di Yandex

Come abbiamo evacuato il turno di servizio di Yandex

Come abbiamo evacuato il turno di servizio di Yandex

Fonte: habr.com