Perché gli amministratori di sistema dovrebbero diventare ingegneri DevOps

Perché gli amministratori di sistema dovrebbero diventare ingegneri DevOps

Non c'è momento migliore per imparare nella vita che oggi.


Siamo nel 2019, e il tema del DevOps è più attuale che mai. Si dice che i giorni degli amministratori di sistema siano finiti, proprio come è passata l'era dei mainframe. Ma è davvero così?
Come spesso accade nel settore IT, la situazione è cambiata. È nata la metodologia DevOps, ma non può esistere senza una persona con le competenze di un amministratore di sistema, cioè senza Ops.

Prima che l'approccio DevOps prendesse la sua forma moderna, mi consideravo parte della categoria Ops. E so bene cosa prova un sysadmin quando comprende quanto ancora non sa e quanto poco tempo ha per imparare.

Perché gli amministratori di sistema dovrebbero diventare ingegneri DevOps

Ma è davvero tutto così spaventoso? Direi che non bisogna considerare la mancanza di conoscenze come un grande problema. È piuttosto una sfida professionale.

I prodotti a scala web sono basati su Linux o altro 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ù semplicemente continuare a lavorare senza elevare il proprio livello di competenza. Deve avere competenze di automazione per gestire un gran numero di server/nodi e comprendere bene i principi di funzionamento per risolvere i problemi che si presentano.

Prima di diventare un membro del team DevOps, dovrai intraprendere un percorso piuttosto lungo, ma interessante, per studiare nuove tecnologie e vari strumenti necessari per gestire il sistema secondo gli standard DevOps.

Quindi, come può un amministratore di sistema passare dal metodo di lavoro tradizionale a un nuovo concetto di DevOps? Come al solito: prima di tutto è necessario cambiare mentalità. Non è affatto semplice abbandonare l'approccio che hai seguito negli ultimi dieci o venti anni e iniziare a fare tutto in modo diverso, ma è necessario.

In primo luogo, è importante comprendere 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 buona interazione tra sviluppatori (Dev) e amministratori (Ops), oltre a un costante testing non solo del codice, ma anche dell'intera struttura all'interno del processo di integrazione e consegna continua (CI/CD).

Accanto al cambiamento della mentalità, è necessario imparare a mantenere l'infrastruttura e garantirne il funzionamento stabile, l'affidabilità e la disponibilità per l'integrazione e la consegna continue di applicazioni, servizi e software.

Ciò che potrebbe mancarti come specialista Ops sono le competenze di programmazione. Al giorno d'oggi, scrivere script che gli amministratori di sistema usano per l'installazione automatizzata di patch sui server, la gestione di file e account, la risoluzione di problemi e la redazione di documentazione è già considerato obsoleto. In situazioni relativamente semplici, gli script vengono ancora utilizzati, ma il concetto di DevOps implica la risoluzione di compiti su larga scala, che si tratti di implementazione, testing, lavoro con build o deployment.

Pertanto, se desideri imparare l'automazione, è necessario padroneggiare almeno un po' la programmazione, anche se non sei uno sviluppatore, poiché a questo stadio del tuo sviluppo l'automazione dell'infrastruttura in DevOps richiede questa competenza.

Cosa fare? Per rimanere un professionista richiesto, è fondamentale acquisire competenze attuali: imparare almeno un linguaggio di programmazione, come Python. A una persona che si dedica professionalmente all'amministrazione, questo potrebbe sembrare difficile, poiché è abituata a pensare che solo gli sviluppatori programmino. Non è affatto necessario diventare un esperto, ma la conoscenza di uno dei linguaggi di programmazione (che può essere Python, Bash o anche Powershell), sarà certamente un vantaggio.

Per imparare a programmare, è necessario del tempo. Sii attento e paziente: questo ti aiuterà a mantenere la comprensione della situazione quando comunichi con gli sviluppatori del team DevOps e con i clienti. Mezz'ora al giorno, un'ora o più: studiare un linguaggio di programmazione dovrebbe diventare il tuo obiettivo principale.

Gli amministratori di sistema e gli specialisti DevOps affrontano compiti simili, però ci sono anche differenze sostanziali. Si dice che un amministratore di sistema non possa fare tutto ciò che può fare un ingegnere DevOps. In pratica, si sostiene che l'amministratore di sistema si concentri maggiormente sulla configurazione, manutenzione e garanzia del funzionamento dei sistemi server, mentre l'ingegnere DevOps si occupa di tutto questo e anche di qualcosa in più.

Ma quanto è corretta questa affermazione?

Amministratore di sistema: uno in campo è un guerriero

Nonostante le differenze e somiglianze evidenziate in questo articolo, ritengo comunque che tra amministrazione di sistema e DevOps non ci sia una differenza sostanziale. Gli amministratori di sistema hanno sempre svolto le stesse funzioni degli specialisti DevOps; semplicemente prima non era stato dato loro il nome di DevOps. Credo che non abbia senso cercare differenze in modo specifico, soprattutto se non è legato a un particolare compito. Non bisogna dimenticare che, a differenza dell'amministratore di sistema, DevOps non è una posizione, ma un concetto.

Va notato un altro aspetto importante, senza il quale la conversazione sia sull'amministrazione che su DevOps sarebbe incompleta. L'amministrazione di sistema nel senso tradizionale implica che lo specialista possieda un set specifico di competenze e si orienti verso la manutenzione dei vari tipi di infrastrutture. Non nel senso che sia un dipendente universale, ma che ci sono una serie di compiti eseguiti da tutti gli amministratori.

Ad esempio, a volte devono svolgere il ruolo di un tuttofare tecnico, cioè fare praticamente tutto. E se un tale amministratore è l'unico nell'intera organizzazione, si troverà a gestire tutto il lavoro tecnico. Può trattarsi di qualsiasi cosa: dalla manutenzione di stampanti e fotocopiatrici all'esecuzione di compiti legati alla rete, come la configurazione e gestione di router e switch oppure la configurazione di firewall.

Sarà inoltre responsabile dell'aggiornamento dell'hardware, della verifica e dell'analisi dei log, dell'audit di sicurezza, dell'installazione delle patch sul server, del troubleshooting, dell'analisi delle cause principali e dell'automazione, generalmente tramite script PowerShell, Python o Bash. Un esempio di utilizzo di script è la gestione degli account degli utenti e dei gruppi. Creare account utente e assegnare permessi è un compito estremamente faticoso, poiché gli utenti appaiono e scompaiono quasi ogni giorno. L'automazione tramite script consente di liberare tempo per affrontare compiti infrastrutturali più importanti, come l'aggiornamento di switch e server e l'esecuzione di altri progetti che influenzano la redditività dell'azienda in cui lavora l'amministratore (anche se si ritiene generalmente che il reparto IT non generi entrate direttamente).

Il compito dell'amministratore di sistema è non sprecare tempo e risparmiare denaro all'azienda in tutti i modi possibili. A volte gli amministratori di sistema lavorano come membri di un grande team che riunisce, ad esempio, amministratori Linux, Windows, database, storage e così via. Gli orari di lavoro possono variare. Ad esempio, il turno in un fuso orario alla fine della giornata passa le pratiche al turno successivo in un altro fuso orario, affinché i processi non si fermino (follow-the-sun); oppure i dipendenti hanno una giornata lavorativa normale dalle 9 alle 17; oppure si lavora in un data center operativo 24 ore su 24.

Nel tempo, gli amministratori di sistema hanno imparato a pensare strategicamente e a combinare questioni importanti con compiti routinari. I team e i reparti in cui lavorano di solito non hanno risorse sufficienti, ma tutti cercano comunque di portare a termine le attività quotidiane per intero.

DevOps: sviluppo e gestione unificata

DevOps è una sorta di filosofia dei processi di sviluppo e gestione. Questo approccio nel mondo IT è diventato veramente innovativo.

Sotto l'egida di DevOps, da un lato lavora un team di sviluppatori di software, mentre dall'altro un team di specialisti tecnici. Spesso si uniscono a loro esperti di gestione del prodotto, tester e designer di interfacce utente. Unendo le forze, questi professionisti ottimizzano le operazioni lavorative per rilasciare rapidamente nuove applicazioni e aggiornare il codice al fine di sostenere e migliorare l'efficienza lavorativa dell'intera azienda.

Alla base di DevOps c'è il controllo dello sviluppo e del funzionamento del software durante l'intero ciclo di vita. Gli specialisti tecnici devono sostenere gli sviluppatori, e gli sviluppatori stessi devono comprendere non solo le API utilizzate nei sistemi. Devono capire cosa c'è 'sotto il cofano' (cioè come funzionano l'hardware e i sistemi operativi) per gestire meglio gli errori, risolvere problemi e interagire con gli specialisti tecnici.

Gli amministratori di sistema possono passare al team DevOps se desiderano apprendere le ultime tecnologie e sono aperti a idee e soluzioni innovative. Come ho già detto, non devono necessariamente diventare programmatori a tempo pieno, ma la padronanza di linguaggi di programmazione come Ruby, Python o Go li aiuterà 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, in DevOps li attende un'esperienza completamente opposta, dove tutti i partecipanti al processo interagiscono tra loro.

Il tema dell'automazione sta diventando sempre più attuale. Sia gli amministratori di sistema che gli specialisti DevOps sono interessati a una scalabilità operativa, alla riduzione degli errori e alla rapida individuazione e risoluzione di problemi esistenti. Pertanto, l'automazione è un concetto in cui due aree si intrecciano. 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 come utilizzare strumenti come Jenkins.

Inoltre, gli amministratori di sistema devono applicare strumenti di configurazione e gestione come Ansible, necessari per il dispiegamento parallelo di dieci o venti server.

Il concetto principale è infrastruttura come codice. Il software è tutto. In effetti, affinché la professione di amministratore di sistema non perda rilevanza, è sufficiente cambiare leggermente l'accento. Gli amministratori di sistema si occupano della manutenzione e devono essere in grado di interagire in modo efficace con gli sviluppatori, e viceversa. Come si suol dire, una testa è buona, ma due sono meglio.

E l'ultimo dettaglio di questo meccanismo è Git. Lavorare con Git è una delle tradizionali responsabilità quotidiane dell'amministratore di sistema. Questo sistema di controllo versione è ampiamente utilizzato da sviluppatori, specialisti DevOps, team Agile e molti altri. Se il tuo lavoro è legato al ciclo di vita del software, è certo che lavorerai con Git.

Git offre molte possibilità. È probabile che tu non impari mai tutti i comandi di Git, ma sicuramente comprenderai perché questo strumento è considerato il principale nella comunicazione e nella collaborazione sul software. Una buona conoscenza di Git è molto importante se lavori in un team DevOps.

Se sei un amministratore di sistema, devi imparare meglio Git, capire 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 studiare questo argomento da zero e diventare un professionista con competenze specifiche. Ci sono anche meravigliose fogli di riferimento con i comandi di Git, quindi non è necessario impararli tutti a memoria, ma più usi Git, più ti sarà facile.

Conclusione

In definitiva, spetta a te decidere se diventare uno specialista DevOps o rimanere un amministratore di sistema. Come puoi vedere, è necessario un percorso di formazione, ma prima inizi, meglio è. Scegli un linguaggio di programmazione e studia parallelamente strumenti come Git (controllo delle versioni), Jenkins (CI/CD, integrazione continua) e Ansible (configurazione e automazione). Qualunque sia la tua scelta, non dimenticare che è necessario continuare a imparare e perfezionare le tue competenze.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster