
Non c'è momento migliore nella vita per apprendere che oggi.
Siamo nel 2019, e il tema del DevOps è più attuale che mai. Si dice che i giorni degli amministratori di sistema siano giunti al termine, come è accaduto per l'era dei mainframe. Ma è davvero così?
Come spesso accade nel settore IT, le cose sono cambiate. La metodologia DevOps è emersa, ma non può esistere senza una persona con competenze di amministrazione di sistema, ovvero senza Ops.
Prima che l'approccio DevOps assumesse il suo volto moderno, mi consideravo parte degli Ops. E conosco bene cosa prova un sysadmin quando realizza quanto ancora non sa e quanto poco tempo ha per imparare.

Ma è davvero così spaventoso? Direi che non bisogna considerare la mancanza di conoscenze come un grande problema. è più una sfida professionale.
I prodotti web-scale si basano su Linux o altri software open source, e sul mercato ci sono sempre meno specialisti in grado di gestirli. La domanda ha già superato il numero di professionisti in questo campo. Un amministratore di sistema non può più continuare a lavorare senza aggiornare le proprie competenze. Deve avere abilità di automazione per gestire molti server/nodi e comprendere bene i principi del loro funzionamento per risolvere i problemi che si presentano.
Prima di diventare un membro del team DevOps, dovrete intraprendere un lungo ma interessante viaggio, studiano nuove tecnologie e vari strumenti necessari per gestire il sistema secondo gli standard DevOps.
Quindi, come può un amministratore di sistema passare dall'approccio tradizionale a un nuovo concetto DevOps? Come al solito, è necessario prima cambiare mentalità. Non è affatto semplice abbandonare l'approccio che avete seguito per gli ultimi dieci o vent'anni e iniziare a fare tutto in modo diverso, ma è necessario.
In primo luogo, è importante capire che DevOps non è una posizione specifica in un'azienda, ma un insieme di pratiche definite. Queste pratiche implicano la distribuzione di sistemi isolati, la riduzione dei danni causati da bug ed errori, aggiornamenti frequenti e tempestivi del software, una comunicazione ben organizzata tra sviluppatori (Dev) e amministratori (Ops), oltre al collaudo continuo non solo del codice ma anche dell'intera struttura nel processo. .
Oltre a cambiare il modo di pensare, è necessario imparare a mantenere l'infrastruttura e garantire il suo funzionamento stabile, l'affidabilità e la disponibilità per l'integrazione e la distribuzione continua di applicazioni, servizi e software.
Come professionista delle operazioni, potresti scoprire che ti mancano competenze di programmazione. Attualmente, la scrittura di script, di cui gli amministratori di sistema si avvalgono per l'installazione automatizzata di patch sui server, la gestione di file e account, la risoluzione di problemi e la documentazione, è già considerata obsoleta. In situazioni relativamente semplici, gli script continuano ad essere utilizzati, ma il concetto di DevOps implica la risoluzione di problemi su larga scala, sia che si tratti di implementazione, test, gestione delle build o distribuzione.
Pertanto, se desideri imparare l'automazione, è necessario acquisire almeno alcune basi di programmazione, anche se non sei uno sviluppatore, poiché a questo punto della tua carriera in DevOps richiede questa abilità.
Cosa fare? Per rimanere un professionista richiesto, è necessario acquisire competenze aggiornate: imparare almeno un linguaggio di programmazione, come Python. A chi si occupa professionalmente di amministrazione potrebbe sembrare difficile, poiché è abituato a pensare che a programmare siano solo gli sviluppatori. Non è affatto necessario diventare un esperto, ma conoscere uno dei linguaggi di programmazione (che può essere Python, Bash o anche ), sarà senza dubbio un vantaggio.
Per imparare a programmare, è necessario un certo tempo. Siate attenti e pazienti: questo vi aiuterà a mantenere la comprensione della situazione durante le comunicazioni con gli sviluppatori del team DevOps e i clienti. Mezz'ora al giorno, un'ora o più: lo studio di un linguaggio di programmazione dovrebbe diventare il vostro obiettivo principale.
I sistemisti e gli specialisti DevOps affrontano sfide simili, ma ci sono differenze significative. Si ritiene che un sistemista non possa svolgere tutte le attività di un ingegnere DevOps. Si dice che il sistemista sia più concentrato sulla configurazione, manutenzione e funzionamento dei sistemi server, mentre l'ingegnere DevOps gestisce tutto questo e anche un carico extra.
Ma quanto è corretta questa affermazione?
Sistemista: uno nel campo di battaglia
Nonostante le differenze e le somiglianze evidenziate in questo articolo, ritengo comunque che non ci sia una differenza sostanziale tra amministrazione di sistema e DevOps. I sistemisti hanno sempre svolto le stesse funzioni degli specialisti DevOps; semplicemente prima nessuno le chiamava DevOps. Non vedo motivo di cercare appositamente le differenze, specialmente se non si collega a una determinata attività. È importante ricordare che, a differenza degli amministratori di sistema, DevOps non è una posizione, ma un concetto.
Va notato un altro aspetto importante, senza il quale la discussione sia sull'amministrazione che sul DevOps risulterebbe incompleta. L'amministrazione di sistema, nel senso tradizionale, implica che il professionista possieda un insieme specifico di competenze e si orienti verso la manutenzione di vari tipi di infrastrutture. Non nel senso che si tratti di un dipendente universale, ma in quanto esistono una serie di compiti svolti da tutti gli amministratori.
Ad esempio, a volte devono agire come una sorta di tuttofare tecnico, cioè fare letteralmente tutto. E se un tale amministratore è l'unico in tutta l'organizzazione, svolgerà ogni tipo di lavoro tecnico. Questo può riguardare qualsiasi cosa, dalla manutenzione di stampanti e fotocopiatrici all'esecuzione di compiti legati alla rete, come la configurazione e la gestione di router e switch o la configurazione di un firewall.
Sarà inoltre responsabile dell'aggiornamento dell'hardware, del controllo e dell'analisi dei registri, della verifica della sicurezza, dell'installazione delle patch sul server, della risoluzione dei problemi, dell'analisi delle cause e dell'automazione, tipicamente tramite script PowerShell, Python o Bash. Un esempio di utilizzo è la gestione degli account utente e dei gruppi. Creare account utente e assegnare autorizzazioni è un compito estremamente noioso, poiché gli utenti appaiono e scompaiono quasi ogni giorno. L'automazione tramite script consente di liberare tempo per affrontare questioni infrastrutturali più importanti, ad esempio l'aggiornamento di switch e server e l'esecuzione di altri progetti che influiscono sulla redditività dell'azienda in cui lavora l'amministratore (anche se generalmente si ritiene che il reparto IT non generi direttamente reddito).
Il compito dell'amministratore di sistema è quello di non sprecare tempo e di risparmiare denaro all'azienda in ogni modo possibile. A volte, gli amministratori di sistema lavorano come membri di un grande team, che può includere, ad esempio, amministratori di Linux, Windows, database, storage e così via. Anche l'orario di lavoro può variare. Ad esempio, un turno in un fuso orario alla fine della giornata trasferisce le attività al turno successivo in un altro fuso orario, affinché i processi non si interrompano (follow-the-sun); oppure i dipendenti seguono una giornata lavorativa normale dalle 9:00 alle 17:00; o ancora si tratta di un lavoro in un data center operativo 24 ore su 24.
Nel tempo, gli amministratori di sistema hanno imparato a pensare in modo strategico e a combinare attività importanti con compiti di routine. I team e i reparti in cui lavorano solitamente non hanno risorse a sufficienza, ma tutti cercano di completare le attività quotidiane nel modo migliore.
DevOps: sviluppo e gestione sono un'unica cosa
è una sorta di filosofia dei processi di sviluppo e gestione. Questo approccio nel mondo IT è diventato veramente innovativo.
Sotto l'egida del DevOps, da una parte opera un team di sviluppatori software e dall'altra una squadra di specialisti dell'assistenza. Spesso si uniscono a loro esperti di gestione del prodotto, tester e designer dell'interfaccia utente. Unendo le forze, questi professionisti ottimizzano le operazioni lavorative per rilasciare rapidamente nuove applicazioni e aggiornare il codice al fine di supportare e migliorare l'efficienza dell'intera azienda.
Alla base del DevOps c'è il controllo dello sviluppo e del funzionamento del software durante l'intero ciclo di vita. Gli specialisti dell'assistenza devono supportare gli sviluppatori, mentre gli sviluppatori devono comprendere non solo le API utilizzate nei sistemi. Devono sapere cosa c'è "sotto il cofano" (cioè come funziona l'hardware e i sistemi operativi), per gestire meglio gli errori, risolvere problemi e interagire con i professionisti dell'assistenza.
Gli amministratori di sistema possono entrare nel team DevOps se desiderano apprendere le tecnologie più recenti e sono aperti a idee e soluzioni innovative. Come già detto, non è necessario che diventino programmatori a tempo pieno, ma padroneggiare linguaggi di programmazione come Ruby, Python o Go può aiutarli a diventare membri molto utili del team. Sebbene gli amministratori di sistema tradizionalmente svolgano tutto il lavoro da soli e siano spesso percepiti come solitari, nel DevOps vivranno un'esperienza completamente opposta, in cui tutti i partecipanti interagiscono tra loro.
Il tema dell'automazione sta diventando sempre più rilevante. Sia gli amministratori di sistema che gli specialisti DevOps sono interessati alla scalabilità operativa, alla riduzione degli errori e alla rapida identificazione e risoluzione dei problemi esistenti. Pertanto, l'automazione è un concetto in cui i due ambiti si intersecano. Gli amministratori di sistema sono responsabili di servizi cloud come AWS, Azure e Google Cloud Platform. Devono comprendere i principi dell'integrazione continua e della consegna e sapere come utilizzare strumenti come .
Inoltre, gli amministratori di sistema devono utilizzare strumenti di configurazione e gestione come , necessari per il dispiegamento parallelo di dieci o venti server.
Il concetto fondamentale è . Software è tutto. Fondamentalmente, affinché la professione di amministratore di sistema rimanga rilevante, basta cambiare leggermente il focus. Gli amministratori di sistema si occupano della manutenzione e devono saper interagire efficacemente con gli sviluppatori, e viceversa. Come si suol dire, due teste sono meglio di una.
E l'ultimo dettaglio in questo meccanismo è . Lavorare con Git è uno dei compiti quotidiani tradizionali di un amministratore di sistema. Questo sistema di controllo delle versioni è ampiamente utilizzato da sviluppatori, professionisti DevOps, team Agile e molti altri. Se il tuo lavoro è legato al ciclo di vita del software, sicuramente avrai a che fare con Git.
Git offre molte possibilità. Probabilmente non imparerai mai tutti i comandi di Git, ma capiresti sicuramente perché questo strumento è considerato fondamentale nella comunicazione e nella collaborazione nello sviluppo software. Una solida conoscenza di Git è molto importante se lavori in un team DevOps.
Se sei un amministratore di sistema, è fondamentale approfondire Git, comprendere come funziona la gestione delle versioni e memorizzare i comandi più comuni: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff e altri. Ci sono molti corsi online e libri che possono aiutarti a imparare questo argomento da zero e diventare un professionista con competenze specifiche. Esistono anche ottimi , quindi non è necessario memorizzarli tutti, ma più usi Git, più sarà facile per te.
Conclusione
In definitiva, spetta a te decidere se diventare uno specialista DevOps o rimanere un amministratore di sistema. Come puoi vedere, è necessaria una formazione per la transizione, ma prima inizi, meglio è. Scegli un linguaggio di programmazione e studia contemporaneamente strumenti come (gestione delle versioni), (CI/CD, integrazione continua) e (configurazione e automazione). Qualunque sia l'opzione che scegli, ricorda che è fondamentale continuare a imparare e perfezionare le proprie capacità.
Fonte: habr.com
