Pubblico di riferimento
Sei uno sviluppatore che desidera orientare la propria carriera verso un modello DevOps più avanzato? Sei un ingegnere Ops tradizionale e vuoi capire cosa significhi DevOps? Oppure non sei né l'uno né l'altro e, dopo aver speso un po' di tempo nel campo delle tecnologie IT, desideri cambiare lavoro senza avere idea da dove iniziare?
Se è così, continua a leggere per scoprire come diventare un ingegnere DevOps di livello intermedio in sei mesi! Infine, se hai già anni di esperienza nel DevOps, puoi comunque trarre utili informazioni da questo ciclo di articoli e scoprire dove si trova attualmente il settore dell'integrazione e dell'automazione e in che direzione si sta sviluppando.

Di cosa si tratta, in effetti?
Prima di tutto, cos'è il DevOps? Puoi cercare definizioni e sfogliare tutta questa verbosa retorica, ma sappi che la maggior parte delle definizioni è solo un insieme di parole avvolte in una forma elegante. Ecco una sintesi di tutte queste definizioni: DevOps è un modo di fornire software in cui il mal di testa e la responsabilità vengono condivisi tra tutti i soggetti coinvolti. Questo è tutto.
Va bene, ma cosa significa in realtà questo acronimo? Significa che tradizionalmente gli sviluppatori (le persone che creano software) sono stati motivati da stimoli che differivano notevolmente da quelli degli operatori (le persone che gestiscono il software). Ad esempio, come sviluppatore voglio creare il maggior numero possibile di nuove funzionalità nel minor tempo possibile. Alla fine, è il mio lavoro, ed è ciò che i clienti richiedono! Tuttavia, se sono un operatore, voglio il minor numero possibile di nuove funzionalità, poiché ogni nuova funzionalità rappresenta un cambiamento e ogni cambiamento comporta dei rischi. Questo disallineamento degli stimoli ha dato vita al DevOps.
Il DevOps cerca di unire sviluppo e operazioni (integrazione e automazione) in un'unica entità. L'idea è che ora un gruppo condividerà sia il dolore che la responsabilità (e probabilmente anche il riconoscimento) per la creazione, il lancio e la generazione di entrate da software focalizzati sul cliente.
I puristi diranno che non esiste una figura chiamata "ingegnere DevOps". "DevOps è una cultura, non un ruolo", vi diranno. Certamente, da un punto di vista tecnico hanno ragione, ma, come spesso accade, questo termine ha superato il suo significato originale. Quindi, l'ingegnere DevOps è qualcosa di simile a un "ingegnere di sistema 2.0". In altre parole, è colui che comprende il ciclo di vita dello sviluppo software e crea strumenti e processi di sviluppo per affrontare le tradizionali sfide operative.

Il DevOps significa in sostanza creare pipeline digitali che prendono il codice dal laptop dello sviluppatore e lo trasformano in entrate derivanti dall'uso del prodotto finale. È importante notare che la carriera nel DevOps offre una retribuzione finanziaria molto elevata, dato che quasi ogni azienda sta "adottando il DevOps" o afferma di farlo. Indipendentemente dalla posizione di queste aziende, le opportunità di lavoro nel campo del DevOps sono piuttosto elevate, offrendo occupazione "divertente" e significativa per molti anni a venire.
Tuttavia, fai attenzione alle aziende che assumono una "team DevOps" o un "dipartimento DevOps". A rigor di termini, tali entità non dovrebbero esistere, poiché in ultima analisi il DevOps è una cultura e un modo di consegnare software, non un'assegnazione di un nuovo team o la creazione di un reparto con un nome di tendenza.
Dichiarazione di non responsabilità
E ora, mettiamo per un momento da parte il bicchiere di «Cool-Aid» e riflettiamo su questo. Hai mai sentito il vecchio detto «non esistono ingegneri DevOps junior»? Se non lo sai, sappi che è un tropo popolare su Reddit e StackOverflow. Ma cosa significa?
In termini semplici, questa frase significa che ci vogliono molti anni di esperienza combinati con una solida comprensione degli strumenti per diventare davvero un praticante efficiente di Senior DevOps. E, sfortunatamente, non esiste un modo rapido per raggiungere questo obiettivo. Quindi, non si tratta di cercare di ingannare il sistema: non credo che sia davvero possibile fingersi un ingegnere DevOps senior con pochi mesi di esperienza nel settore. Raggiungere una comprensione chiara degli strumenti e delle metodologie in rapida evoluzione richiede anni di esperienza, e questo è un dato di fatto. Tuttavia, c'è quasi un consenso (se vuoi, una moda) sugli strumenti e sui concetti che la maggior parte delle aziende utilizza, ed è di questo che parleremo.
I tool sono diversi dalle competenze, quindi mentre studi strumenti, assicurati di non trascurare le tue abilità (indagini, costruzione di reti, comunicazione scritta, risoluzione dei problemi, ecc.). La cosa principale da non perdere di vista è che vogliamo trovare un modo per creare una catena digitale completamente automatizzata che prenda idee e le trasformi in frammenti di codice redditizi. Questa è l'unica e più importante conclusione di tutto questo articolo!
Basta chiacchiere, quando posso iniziare?
Di seguito è riportata la roadmap 'Competenze fondamentali in DevOps'. Una volta che avrai padroneggiato tutto ciò che è incluso, potrai tranquillamente e onestamente chiamarti ingegnere DevOps! O ingegnere cloud, se non ti piace il termine 'DevOps'.

Questa mappa rappresenta la mia (e probabilmente la maggior parte delle persone che lavorano in questo settore) visione di ciò che un ingegnere DevOps competente dovrebbe sapere. Tuttavia, è solo un'opinione e, ovviamente, ci saranno persone in disaccordo. Va bene! Non aspiriamo alla perfezione, puntiamo a costruire una base solida su cui sia possibile realmente edificare.
Dovete affrontare questo percorso gradualmente, strato dopo strato. Dovete iniziare (e continuare!) dalle basi fondamentali, studiando prima gli elementi contrassegnati in blu: Linux, Python e AWS. Poi, se il tempo o la domanda del mercato lo permettono, dedicatevi alle cose in viola: Golang e Google Cloud.
A dire il vero, il livello fondamentale superiore è qualcosa che dovrete studiare all'infinito. L'OS Linux è molto complessa e richiede anni per essere padroneggiata. Python richiede pratica costante per rimanere aggiornati. AWS si evolve così rapidamente che ciò che sapete oggi sarà solo una parte del vostro portafoglio di conoscenze tra un anno. Una volta apprese le basi, passate a un vero set di competenze. Notate che esistono in totale 6 colonne blu (Configurazione, Versione, Imballaggio, Distribuzione, Esecuzione, Monitoraggio), una per ogni mese di studio.

Avrete sicuramente notato l'assenza di una fase cruciale nel nostro processo di sei mesi: la fase di test. Non l'ho volutamente inclusa nella roadmap, poiché la scrittura del modulo, l'integrazione e i test di accettazione sono compiti impegnativi e tradizionalmente ricadono sui geli sviluppatori. La mancanza della fase di "test" è giustificata dal fatto che l'obiettivo di questa roadmap è acquisire rapidamente le competenze e gli strumenti fondamentali. Secondo l'autore, l'assenza di esperienza nei test rappresenta solo un lieve ostacolo per un corretto utilizzo di DevOps.
Ricordate che non ci dedichiamo qui a una miriade di tecnicismi scollegati, ma cerchiamo di comprendere gli strumenti che, interconnessi, creano una storia chiara. Questa storia rappresenta un'automazione end-to-end del processo: una catena di montaggio digitale che sposta i bit come una linea di assemblaggio. Non volete certo passare il tempo a studiare vari strumenti e a dovervi fermare continuamente! L'arsenal DevOps cambia rapidamente, mentre i concetti rimangono molto più stabili. Pertanto, dovete cercare di usare gli strumenti come proxy formativi per concetti di livello superiore.
Bene, andiamo un po' più a fondo!
Conoscenze fondamentali
Sotto il gradino superiore con la scritta Foundation, vedete le competenze che ogni ingegnere DevOps deve acquisire. Queste competenze includono la padronanza dei tre 'pilastri' del settore: sistema operativo, linguaggio di programmazione e cloud pubblico. Non si tratta di argomenti che si possono apprendere rapidamente e poi abbandonare. È necessario perfezionare costantemente queste abilità per rimanere all'avanguardia nel settore e aggiornare l'ambiente professionale circostante. Passiamo in rassegna ciascuna di esse.
Linux è il luogo in cui tutto funziona. È possibile essere un praticante DevOps eccezionale rimanendo completamente all'interno dell'ecosistema Microsoft? Certo che sì! Non esiste una legge che imponga l'uso esclusivo di Linux. Tuttavia, tenete a mente che, sebbene possiate svolgere anche su Windows tutte le operazioni tipiche di Linux, ciò avviene con maggiori difficoltà e minori funzionalità. Al momento, si può affermare con certezza che senza la conoscenza di Linux non si può diventare veri professionisti DevOps, quindi Linux è qualcosa che dovete studiare e approfondire.
A dire la verità, il modo migliore per farlo è semplicemente installare Linux (Fedora o Ubuntu) a casa e usarlo il più possibile. Certo, romperete molte cose, vi troverete bloccati nei flussi di lavoro e dovrete correggere tutto, ma imparerete Linux!

A proposito, in Nord America le varianti RedHat sono più comuni, quindi ha senso partire da Fedora o CentOS. Se vi state chiedendo se optare per l'edizione KDE o Gnome, scegliete KDE. È quello che usa lo stesso Linus Torvalds.
Python è attualmente il linguaggio di programmazione back-end predominante. È facile da imparare ed è ampiamente utilizzato. Python è molto popolare nel campo dell'intelligenza artificiale e dell'apprendimento automatico, quindi, se mai desiderate entrare in un ulteriore settore in crescita, sarete completamente pronti.

Amazon Web Services: ancora una volta, non è possibile diventare un professionista esperto in DevOps senza una solida comprensione di come funziona il cloud pubblico. E se desiderate conoscere il più possibile su questo, studiate Amazon Web Services. È un attore leader nel settore, che offre il set di strumenti di lavoro più ricco.
È possibile iniziare con Google Cloud o Azure invece di questo? Certamente! Tuttavia, considerando l'ultimo crisi finanziaria, va tenuto presente che AWS è l'opzione più sicura, almeno nel 2018, poiché consente di registrare un account gratuitamente e iniziare a esplorare le potenzialità dei servizi cloud. Inoltre, la console AWS offre un menu semplice e chiaro per gli utenti. La buona notizia è che non è necessario conoscere tutte le tecnologie di Amazon per farlo.

Inizia con i seguenti servizi: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing sotto EC2) e Security Group. Questi strumenti sono sufficienti per cominciare, e ogni azienda moderna che utilizza il cloud li sfrutta attivamente. Il sito di formazione di AWS è un ottimo punto di partenza.
Ti consiglio di dedicare ogni giorno 20-30 minuti allo studio e alla pratica del linguaggio Python, del sistema operativo Linux e del servizio cloud AWS, oltre ad altre cose che dovrai imparare. In generale, ritengo che dedicare un'ora al giorno per cinque giorni alla settimana sia sufficiente per comprendere i processi del settore DevOps in sei mesi o anche meno. Ci sono in totale sei componenti principali, ciascuna corrispondente a un mese di studio. Questo è tutto ciò di cui hai bisogno per acquisire conoscenze di base.
Negli articoli successivi esamineremo il livello successivo di difficoltà: come automatizzare completamente la configurazione, il versionamento, il pacchettizzazione, il deployment, l'avvio e il monitoraggio del software.
Continuazione in arrivo molto presto…
Un po' di pubblicità 🙂
Grazie per essere con noi. Ti piacciono i nostri articoli? Vuoi vedere più contenuti interessanti? Supportaci effettuando un ordine o raccomandandoci ai tuoi conoscenti, , un'alternativa unica ai server entry-level, che abbiamo creato per te: (disponibili opzioni con RAID1 e RAID10, fino a 24 core e fino a 40GB DDR4).
Dell R730xd a metà prezzo nel data center Equinix Tier IV ad Amsterdam? Solo da noi nei Paesi Bassi! Dell R420 — 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — a partire da $99! Scopri di più su
Fonte: habr.com
