Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Целевая аудитория

Sei uno sviluppatore che desidera orientare la sua carriera verso un modello DevOps più avanzato? Sei un ingegnere Ops classico e vorresti farti un'idea di cosa significa DevOps? Oppure non sei nessuno dei due e, dopo aver trascorso un po' di tempo lavorando nel settore IT, vuoi cambiare carriera e non hai idea da dove cominciare?
Se sì, continua a leggere per scoprire come diventare un ingegnere DevOps di medio livello in sei mesi! Infine, se sei coinvolto in DevOps da molti anni, imparerai comunque molto da questa serie di articoli per scoprire dove si trova attualmente il settore dell'integrazione e dell'automazione e dove si sta dirigendo.

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Di cosa si tratta?

Innanzitutto, cos’è DevOps? Puoi cercare le definizioni su Google e districarti in tutta la verbosità, ma sappi che la maggior parte delle definizioni sono solo un miscuglio di parole racchiuse in una forma semplificata. Pertanto, ti fornirò un riepilogo di tutte queste definizioni: DevOps è un metodo di fornitura di software in cui il mal di testa e la responsabilità sono condivisi tra tutti i soggetti coinvolti. È tutto.

Ok, ma cosa significa questa abbreviazione? Ciò significa che tradizionalmente gli sviluppatori (le persone che creano software) sono stati motivati ​​a svolgere il proprio lavoro da incentivi significativamente diversi da quelli degli Operations (le persone che gestiscono il software). Ad esempio, come sviluppatore, voglio creare quante più nuove funzionalità il più rapidamente possibile. Dopotutto, questo è il mio lavoro ed è ciò che i clienti richiedono! Tuttavia, se sono una persona operativa, allora ho bisogno del minor numero possibile di nuove funzionalità, perché ogni nuova funzionalità è un cambiamento e ogni cambiamento è pieno di problemi. Come risultato di questo disallineamento degli incentivi, è nato DevOps.

DevOps tenta di combinare sviluppo e operazioni (integrazione e automazione) in un unico gruppo. L'idea è che un gruppo ora condividerà sia il dolore che la responsabilità (e le probabili ricompense) della creazione, dell'implementazione e della generazione di entrate dal software rivolto ai clienti.

I puristi vi diranno che non esiste un “ingegnere DevOps”. “DevOps è una cultura, non un ruolo”, vi diranno. Naturalmente, da un punto di vista tecnico hanno ragione, ma, com’è spesso, il termine è sfuggito di mano Al di là del suo significato originale, un ingegnere DevOps è qualcosa come un "ingegnere di sistema 2.0". In altre parole, è qualcuno che comprende il ciclo di vita dello sviluppo software e crea strumenti e processi di sviluppo software per risolvere i classici problemi operativi.

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

DevOps in definitiva significa creare pipeline digitali che prendono il codice dal laptop di uno sviluppatore e lo trasformano in entrate derivanti dall'uso del prodotto finale, ecco di cosa si tratta. Tieni presente che la scelta di una carriera DevOps è abbastanza ampiamente compensata da ricompense finanziarie, con quasi tutte le aziende che "fanno DevOps" o affermano di esserlo. Indipendentemente da dove si trovano queste aziende, le opportunità di lavoro complessive come DevOps sono piuttosto elevate e offrono un impiego “divertente” e significativo per molti anni a venire.

Tuttavia, diffidate dalle aziende che assumono un “team DevOps” o un “dipartimento DevOps”. A rigor di termini, queste cose non dovrebbero esistere, perché in definitiva DevOps è ancora una cultura e un modo di fornire software, non dotare un nuovo team o creare un dipartimento con un nome di fantasia.

Negazione di responsabilità

Ora mettiamo da parte per un momento il bicchiere di Kool-Aid e pensiamo a quanto segue. Hai sentito il vecchio adagio "non esistono ingegneri DevOps junior?" In caso contrario, sappi che questo è un cliché popolare su Reddit e StackOverflow. Ma cosa significa?

In parole povere, questa frase significa che sono necessari molti anni di esperienza combinati con una solida conoscenza degli strumenti per diventare, in definitiva, un professionista DevOps senior veramente efficace. E, purtroppo, non esiste alcuna scorciatoia per raggiungere l’obiettivo. Quindi questo non è un tentativo di ingannare il sistema: non penso che sia effettivamente possibile fingere di essere un ingegnere DevOps senior con qualche mese di esperienza nel settore. Raggiungere una solida conoscenza degli strumenti e delle metodologie in rapida evoluzione richiede anni di esperienza e non è possibile evitarlo. Tuttavia, esiste un menu quasi coerente (alla moda, se vuoi) di strumenti e concetti utilizzati dalla maggior parte delle aziende, ed è di questo che parleremo.

Ancora una volta, gli strumenti sono diversi dalle competenze, quindi mentre impari gli strumenti, assicurati di non trascurare le tue capacità (sondaggi, networking, comunicazione scritta, risoluzione dei problemi, ecc.). Ancora più importante, non perdere di vista ciò che vogliamo trovare: un modo per creare una pipeline digitale completamente automatizzata che prenda le idee e le trasformi in pezzi di codice generatori di entrate. Questa è la conclusione più importante dell’intero articolo!

Basta chiacchiere, quando posso iniziare?

Di seguito è riportata la roadmap delle conoscenze fondamentali di DevOps. Avendo padroneggiato tutto ciò che è raffigurato lì, puoi tranquillamente e onestamente definirti un ingegnere DevOps! O un ingegnere cloud se non ti piace il nome "DevOps".

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Questa mappa rappresenta la mia idea (e probabilmente quella della maggior parte delle persone che lavorano in questo spazio) di ciò che dovrebbe sapere un ingegnere DevOps competente. Tuttavia, questa è solo un’opinione e, naturalmente, ci sarà chi non è d’accordo. Questo va bene! Qui non stiamo cercando la perfezione, stiamo cercando una base solida su cui possiamo effettivamente costruire.

Devi percorrere questo percorso gradualmente, strato dopo strato. Iniziamo (e continuiamo!) con i fondamenti, imparando prima gli elementi in blu: Linux, Python e AWS. Quindi, se il tempo o la domanda del mercato del lavoro lo consentono, fai le cose viola: Golang e Google Cloud.

Onestamente, lo strato superiore fondamentale è qualcosa che dovrai studiare per sempre. Il sistema operativo Linux è molto complesso e richiede anni per essere padroneggiato. Python richiede pratica costante per rimanere aggiornato. AWS si sta evolvendo così rapidamente che ciò che sai oggi farà solo parte del tuo portafoglio complessivo di conoscenze tra un anno. Una volta apprese le basi, passa alle competenze vere e proprie. Tieni presente che sono presenti un totale di 6 colonne blu (Configurazione, Versione, Packaging, Distribuzione, Lancio, Monitoraggio), una per mese di studio.

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Ovviamente hai notato l'assenza di una fase importante nella nostra pipeline di sei mesi: i test. Volutamente non l'ho incluso nella roadmap perché scrivere un modulo, i test di integrazione e accettazione non è facile e tradizionalmente ricade sulle spalle degli sviluppatori. E saltare la fase di “test” è spiegato dal fatto che l’obiettivo di questa tabella di marcia è padroneggiare le competenze e gli strumenti di base il più rapidamente possibile. La mancanza di esperienza nei test, secondo l'autore, rappresenta solo un piccolo ostacolo al corretto utilizzo di DevOps.

Inoltre, ricorda che qui non stiamo imparando un sacco di chiacchiere tecniche non correlate, ma piuttosto una comprensione degli strumenti che si uniscono per creare una storia chiara. Questa storia riguarda l'automazione dei processi end-to-end: una catena di montaggio digitale che muove i pezzi come una catena di montaggio. Non vuoi imparare un sacco di strumenti e continuare a fermarti! Gli strumenti DevOps cambiano rapidamente, ma i concetti cambiano molto meno frequentemente. Pertanto, dovresti sforzarti di utilizzare gli strumenti come proxy dell’insegnamento per concetti di livello superiore.

Ok, scaviamo un po' più a fondo!

Conoscenza fondamentale

Sotto il gradino più alto che dice Foundation, puoi vedere le competenze che ogni ingegnere DevOps dovrebbe padroneggiare. Queste competenze consentono di gestire con sicurezza i tre pilastri del settore, ovvero: il sistema operativo, il linguaggio di programmazione e il cloud pubblico. Queste cose non sono qualcosa che puoi imparare rapidamente e andare avanti. Queste competenze devono essere costantemente migliorate e padroneggiate per essere all'avanguardia nel settore e rilevanti per l'ambiente professionale che ti circonda. Esaminiamoli uno per uno.

Linux è dove tutto funziona. Puoi essere uno straordinario professionista DevOps rimanendo completamente all'interno dell'ecosistema Microsoft? Certo che puoi! Non esiste una legge che impone di utilizzare solo Linux. Tuttavia, tieni presente che, nonostante il fatto che tutte le cose su Linux possano essere fatte su Windows, ciò accade in modo molto più doloroso e con meno funzionalità. A questo punto, è lecito ritenere che senza conoscere Linux sia impossibile diventare un vero professionista DevOps, quindi Linux è qualcosa che dovresti studiare e imparare.

Onestamente, il modo migliore per farlo è semplicemente installare Linux (Fedora o Ubuntu) a casa e usarlo il più possibile. Certo, romperai un sacco di cose, rimarrai bloccato nei processi di lavoro, dovrai aggiustare tutto, ma imparerai Linux!

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

A proposito, le varianti RedHat sono più comuni in Nord America, quindi ha senso iniziare con Fedora o CentOS. Se ti stai chiedendo se dovresti acquistare l'edizione KDE o Gnome, scegli KDE. Questo è ciò che usa lo stesso Linus Torvalds.

Python è il linguaggio back-end dominante al giorno d'oggi. È facile iniziare ed è ampiamente utilizzato. Python è molto comune nel campo dell'intelligenza artificiale e dell'apprendimento automatico, quindi se mai vorrai spostarti in un altro campo caldo, sarai pienamente preparato.

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Amazon Web Services: ancora una volta, è impossibile diventare un professionista DevOps esperto senza una solida conoscenza di come funziona il cloud pubblico. E se vuoi saperne di più, dai un'occhiata ad Amazon Web Services. È un attore leader in questo campo di servizi e offre la più ricca gamma di strumenti di lavoro.

È possibile invece iniziare con Google Cloud o Azure? Certo che puoi! Ma ricordando l’ultima crisi finanziaria, va notato che AWS è l’opzione più sicura, almeno nel 2018, poiché consente di registrare un account gratuitamente e iniziare a esplorare le possibilità dei servizi cloud. Inoltre, la console AWS fornisce all'utente un menu semplice e chiaro tra cui scegliere. La buona notizia è che non è necessario conoscere tutte le tecnologie di Amazon per farlo.

Come diventare un ingegnere DevOps in sei mesi o anche più velocemente. Parte 1. Introduzione

Inizia con quanto segue: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing under the EC2) e Security Group. Queste cose sono sufficienti per iniziare e ogni azienda moderna basata sul cloud utilizza questi strumenti in modo piuttosto attivo. Il sito di formazione di AWS è un buon punto di partenza.

Ti consiglio di dedicare 20-30 minuti ogni giorno all'apprendimento e alla pratica con il linguaggio Python, il sistema operativo Linux e il servizio cloud AWS oltre ad altre cose che dovrai imparare. Nel complesso, credo che trascorrere un'ora al giorno, cinque volte a settimana, sia sufficiente per comprendere il settore DevOps in 6 mesi o meno. Ci sono un totale di 6 componenti principali, ognuno dei quali corrisponde a un mese di formazione. Questo è tutto ciò che serve per acquisire le conoscenze di base.
Negli articoli successivi esamineremo il livello successivo di complessità: come automatizzare completamente la configurazione, il controllo delle versioni, il confezionamento, la distribuzione, l'esecuzione e il monitoraggio del software.

Continua molto presto...

Alcuni annunci 🙂

Grazie per stare con noi. Ti piacciono i nostri articoli? Vuoi vedere contenuti più interessanti? Sostienici effettuando un ordine o raccomandando agli amici, cloud VPS per sviluppatori da $ 4.99, un analogo unico dei server entry-level, che è stato inventato da noi per te: Tutta la verità su VPS (KVM) E5-2697 v3 (6 core) 10 GB DDR4 480 GB SSD 1 Gbps da $ 19 o come condividere un server? (disponibile con RAID1 e RAID10, fino a 24 core e fino a 40 GB DDR4).

Dell R730xd 2 volte più economico nel data center Equinix Tier IV ad Amsterdam? Solo qui 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV da $199 In Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - da $99! Leggi Come costruire Infrastructure Corp. classe con l'utilizzo di server Dell R730xd E5-2650 v4 del valore di 9000 euro per un centesimo?

Fonte: habr.com

Aggiungi un commento