Gli ingegneri DevOps sono professionisti polivalenti che sanno automatizzare i processi e comprendono come lavorano sviluppatori, QA e manager. Sono in grado di programmare, apprendono rapidamente strumenti complessi e non si bloccano di fronte a compiti sconosciuti. Gli ingegneri DevOps sono pochi e vengono pagati tra 200.000 e 300.000 rubli, ma ci sono comunque molte offerte di lavoro.
Dmitrij Kuz'min spiega cosa fa concretamente un DevOps e cosa bisogna studiare per candidarsi a tale posizione. In aggiunta, importanti link a libri, video, canali e comunità professionali.
Cosa fa un ingegnere DevOps
Nel contesto di DevOps è importante non confondere i termini. Infatti, DevOps non è un particolare campo di attività, ma una filosofia professionale. È una metodologia che aiuta sviluppatori, tester e amministratori di sistema a lavorare più rapidamente ed efficacemente grazie all'automazione e all'integrazione.
Pertanto, un ingegnere DevOps è uno specialista che implementa questa metodologia nei processi lavorativi:
- Nella fase di pianificazione, l'ingegnere DevOps aiuta a decidere quale architettura utilizzare per l'applicazione, come essa sarà scalata e quale sistema di orchestrazione scegliere.
- Successivamente, configura i server, il controllo automatizzato e il caricamento del codice, così come il controllo dell'ambiente.
- Poi automatizza i test e affronta le sfide relative al deploy.
- Dopo il rilascio, è importante raccogliere feedback dagli utenti e implementare migliorie. Il DevOps si occupa di fare in modo che gli utenti non notino questi miglioramenti, garantendo un processo di aggiornamento continuo.
- E risolve anche decine di compiti che aiutano a stabilire un sistema di lavoro fra sviluppatori, QA, amministratori di sistema e manager.
Tutto quanto scritto sopra avviene in progetti quasi ideali. Nella realtà, invece, ci si trova a partire in un progetto dove la pianificazione è stata trascurata, si è sbagliata l'architettura e si è iniziato a pensare all'automazione quando tutti i progetti erano fermi. Risolvere questi problemi e far sì che tutto funzioni è la competenza chiave di un professionista DevOps.
Nel panorama lavorativo c'è confusione. A volte le aziende cercano ingegneri DevOps per posizioni di ingegnere di sistema, ingegnere di build o altro. Le responsabilità variano a seconda delle dimensioni dell'azienda e dell'area di specializzazione: in alcuni casi cercano qualcuno per consulenze, in altri chiedono di automatizzare tutto, mentre in altri ancora richiedono di svolgere funzioni avanzate di amministratore di sistema capace di programmare.
Cosa serve per iniziare nella professione
L'ingresso nella professione richiede una preparazione preliminare. Non è possibile semplicemente frequentare un corso da zero, senza comprendere nulla di IT, e raggiungere il livello junior. È necessaria una base tecnica:
- È ideale se hai lavorato per almeno sei mesi come amministratore di sistema, specialista delle operazioni o tester. Oppure se hai almeno un'idea di come vengono avviate le applicazioni, in quale ambiente possono svilupparsi e cosa fare se incontri un errore. Se non hai esperienza lavorativa, segui un corso di amministrazione Linux, ripetendo tutto ciò che accade sulla tua macchina domestica.
- Comprendi come funzionano le tecnologie di rete: impara a installare, configurare e gestire reti locali e globali.
- Scopri come è strutturato il programmazione: scrivi alcuni script in Python o Go, prova a comprendere i principi della OOP (programmazione orientata agli oggetti), leggi sul ciclo di sviluppo del prodotto.
- È utile conoscere l'inglese tecnico: non è necessario comunicare su temi vari, basta saper leggere la documentazione e le interfacce.
Non è necessario conoscere tutto nel dettaglio; per iniziare ad apprendere DevOps è sufficiente un livello minimo di preparazione. Se hai un tale background tecnico, prova a iscriverti a corsi.
Cosa deve sapere un DevOps
Un buon ingegnere DevOps è un professionista poliedrico con una visione molto ampia. Per avere successo nel lavoro, dovrai comprendere diverse aree dell'IT.
Sviluppo
Il DevOps scriverà uno script che aiuterà gli sviluppatori a installare il codice sul server. Creerà un programma che testa la reattività dei database 'on the fly'. Scriverà un'applicazione per il controllo della versioning. Infine, noterà semplicemente un potenziale problema nello sviluppo che potrebbe manifestarsi nel server.
Un esperto di DevOps sa che è fondamentale conoscere diverse lingue adatte per l'automazione. Non deve conoscerle a menadito, ma è in grado di scrivere rapidamente un piccolo programma o leggere il codice di qualcun altro. Se non si ha esperienza nello sviluppo, è consigliabile iniziare con Python: ha una sintassi semplice, facilita il lavoro con le tecnologie cloud e offre una vasta documentazione e numerose librerie.
Sistemi operativi
È impossibile conoscere ogni funzionalità di ogni versione di ogni sistema: ci vorrebbero migliaia di ore di formazione senza alcun risultato tangibile. Un buon DevOps, invece, comprende i principi generali di funzionamento di qualsiasi sistema operativo. Dalle offerte di lavoro sembra che la maggior parte delle persone stia ora utilizzando Linux.
Un buon ingegnere sa quale sistema sia migliore per implementare un progetto, quali strumenti utilizzare e quali potenziali errori potrebbero sorgere durante l'implementazione o l'esercizio.
Cloud
Il mercato delle tecnologie cloud in media del 20-25% all'anno — questa infrastruttura consente l'automazione delle operazioni di testing del codice, build delle applicazioni dai componenti e distribuzione degli aggiornamenti agli utenti. Un buon DevOps ha conoscenze sia nelle soluzioni completamente cloud che in quelle ibride.
Nei requisiti standard per gli ingegneri si trovano generalmente GCP, AWS e Azure.
Questo include anche la conoscenza degli strumenti CI/CD. Solitamente si utilizza Jenkins per l'integrazione continua, ma è utile esplorare anche alternative. Ce ne sono molte, ad esempio Buddy, TeamCity e Gitlab CI. È vantaggioso studiare Terraform: uno strumento dichiarativo che aiuta a impostare e configurare l'infrastruttura in remoto nel cloud. E Packer, necessario per la creazione automatica delle immagini del sistema operativo..
Sistemi di orchestrazione e microservizi.
L'architettura a microservizi offre molti vantaggi: stabilità, possibilità di scalare rapidamente, semplificazione e riutilizzo. Un DevOps comprende come funzionano i microservizi e può anticipare potenziali problemi.
Conosce a menadito Docker e Kubernetes. Comprende come funzionano i contenitori e come costruire un sistema in modo da poter disattivare parte di essi senza conseguenze per l'intero sistema. Ad esempio, sa come costruire un cluster Kubernetes utilizzando Ansible.
Cosa provare ulteriormente come futuro DevOps
Elencare gli strumenti che possono essere utili per un ingegnere DevOps è un compito infinito. Alcuni lavorano all'orchestrazione dei progetti, altri spendono gran parte del loro tempo nell'automazione del deployment e del testing, mentre altri ancora migliorano l'efficienza nella gestione delle configurazioni. Durante il processo, sarà chiaro dove approfondire e quali progetti sono utili.
Ecco un ulteriore minimo che può aiutarti all'inizio:
- Comprendi come funzionano Git e GitHub, se non ci sei già arrivato. Installa GitLab sul tuo server.
- Familiarizza con i linguaggi di markup JSON e YAML.
- Installa e prova a lavorare con i database — non solo con MySQL, ma anche con NoSQL. Prova MongoDB.
- Scopri come gestire la configurazione di più server contemporaneamente. Ad esempio, utilizzando Ansible.
- Configura subito il monitoraggio del carico e i log. Prova la combinazione Prometheus, Grafana, Alertmanager.
- Cerca le migliori soluzioni per il deployment in diverse lingue: basta familiarizzare, implementare e approfondire durante un progetto di prova o di lavoro.
Perché è importante iniziare a studiare DevOps ora
Il mercato degli ingegneri DevOps è in carenza. Questo è confermato dal numero e dalla qualità delle offerte di lavoro:
- In Russia, su HeadHunter, sono sempre disponibili oltre 2.000 posti di lavoro con questa parola chiave.
- E solo 1.900 persone hanno pubblicato un curriculum.
Tenendo conto che pubblicare un curriculum non significa cercare attivamente lavoro, si ha una situazione in cui due o addirittura tre offerte sono disponibili per ogni specialista — una situazione che non si trova nemmeno nel popolare mercato dello sviluppo web. Aggiungi anche le offerte da Habr e dai canali Telegram — la carenza di specialisti è enorme.

Fai attenzione alle aspettative salariali dei candidati
Anche a livello mondiale, la domanda di DevOps è alta: se stai pensando di trasferirti negli Stati Uniti o in Europa, sul portale più di 34.000 aziende cercano questi specialisti. Tra i requisiti comuni ci sono 1-3 anni di esperienza, la capacità di lavorare con il cloud e la disponibilità ad affrontare funzioni di consulenza.
Nel freelancing ci sono molte meno offerte — in genere, gli ingegneri DevOps sono cercati principalmente per posizioni a tempo pieno.

Trovare un progetto adatto nel freelancing è difficile, ma possibile.
Una carriera tipica per un ingegnere DevOps può essere rappresentata così:
- Lavora per sei mesi a un anno come amministratore di sistema in una piccola azienda IT. Nel frattempo, studia un linguaggio adatto per l'automazione.
- Studia intensamente in corsi per circa sei mesi.
- Passa a un'altra azienda — in una compagnia che vende soluzioni cloud, una filiale di una grande corporation, o a sviluppatori di progetti complessi. In altre parole, in un luogo dove c'è bisogno di automazione continua e implementazione. In una posizione iniziale, il salario è di circa 100.000 rubli.
- Lavora attivamente per diversi anni e cresce professionalmente, aumentando il reddito di diverse volte.
- Diventa un esperto nella comunità professionale e passa al consulting. Oppure cresce fino a diventare architetto di sistemi o direttore IT.
Il DevOps è complesso. Bisogna unire competenze di più professioni. Diventare una persona in grado di proporre miglioramenti dove altri esperti IT nemmeno prendono in considerazione altre opzioni. È un settore ben retribuito, ma richiede un ampio bagaglio di conoscenze.
Quanto guadagna un DevOps
Secondo i dati del secondo trimestre 2019, il stipendio medio dei professionisti DevOps si colloca tra i 90 e i 160 mila rubli. Ci sono offerte più basse, principalmente tra i 60 e i 70 mila.
Offerte fino a 200 mila rubli sono costantemente disponibili, con alcune posizioni che raggiungono i 330 mila rubli.

Tra i professionisti IT, i DevOps sono quelli più pagati. Fonte:
Attualmente, gli ingegneri DevOps, compresi i neolaureati, sono richiesti da grandi banche, corporation, servizi cloud, sistemi commerciali e altre organizzazioni che si prendono cura del mantenimento delle proprie soluzioni IT.
Un ottimo candidato per una posizione junior con uno stipendio di 60-90 mila sarà un amministratore di sistema alle prime armi con circa un anno di esperienza e una laurea pertinente.

Non esistono statistiche precise, ma a quanto pare le persone con esperienza in Linux guadagnano di più.
Cosa guardare e leggere per crescere nella professione
Per immergerti nel mondo del DevOps, prova diverse fonti di informazione:
- [YouTube, ENG] — molti video di conferenze e webinar educativi.
- [YouTube, RUS] — video di relazioni dalla conferenza professionale DevOps in Russia.
- [libro, RUS] — uno dei libri più popolari sulla filosofia del DevOps. Il libro descrive i principi generali della metodologia e cosa considerare prioritariamente lavorando a qualsiasi progetto.
- [libro, RUS] — molta teoria e principi su come dovrebbe essere organizzato l'amministrazione di sistema.
- [libro, ENG] — una panoramica settimanale delle notizie riguardanti il DevOps in tutto il mondo.
- [Telegram, RUS] — notizie del settore, annunci di conferenze, link a nuovi articoli e libri interessanti.
- [Telegram, RUS] — chat in lingua russa dove è possibile chiedere consigli e aiuto sui configurazioni.
- Devops.com — grande sito internazionale con articoli, webinar, podcast e colonne delle maggiori aziende del settore.
- — comunità di ingegneri DevOps e simpatizzanti di lingua russa.
- I migliori libri nella lingua che utilizzerai per lo sviluppo.
Dove studiare DevOps
Puoi acquisire conoscenze strutturate nel corso “” su Netology. Imparerai l'intero ciclo della metodologia:
- Scoprirai come analizzare il codice e utilizzare rapidamente gli strumenti di controllo versione.
- Comprenderai le migliori pratiche di integrazione continua, test e compilazione.
- Imparerai a gestire le modifiche nelle applicazioni e ad automatizzarle.
- Studierai pratiche gli strumenti di configurazione e gestione.
- Ti abituerai a scegliere e configurare immediatamente i servizi necessari per il monitoraggio.
Riceverai in bonus un corso di programmazione Python - risolverai i problemi ancora più velocemente e facilmente. Tutto in pratica - utilizziamo AWS, GCP o Azure.
Questo è sufficiente per trasformarti da ingegnere principiante o amministratore di sistema in un ricercato DevOps e aumentare piacevolmente il tuo valore nel mercato del lavoro.
Fonte: habr.com
