Che cos'è la metodologia DevOps e a chi è utile

Analizziamo il significato della metodologia e a chi può apportare benefici.

Parleremo anche dei professionisti DevOps: delle loro mansioni, stipendi e competenze.

Che cos'è la metodologia DevOps e a chi è utile
Foto Matt Moor / Flickr / CC BY-SA

Cos'è il DevOps

DevOps è una metodologia di sviluppo software il cui obiettivo è migliorare l'interazione tra programmatori e amministratori di sistema all'interno dell'azienda. Se le figure IT di diversi reparti non comprendono le necessità reciproche, il rilascio di nuove applicazioni e aggiornamenti si allunga.

DevOps crea un ciclo di sviluppo "senza soluzione di continuità", accelera quindi il rilascio del prodotto software. Questa accelerazione avviene grazie all'implementazione di sistemi di automazione. Inoltre, i programmatori iniziano a partecipare alla configurazione dei server e alla ricerca di bug; per esempio, possono scrivere test automatizzati.

In questo modo si facilita la comunicazione tra i reparti. I dipendenti iniziano a capire meglio quali fasi attraversa un prodotto software prima di giungere nelle mani dell'utente.

Quando un sviluppatore comprende le sfide che affronta un amministratore nel configurare un server, cerca di smussare i potenziali "angoli spigolosi" nel codice. Questo riduce il numero di bug al momento del lancio dell'applicazione: statisticamente, esso è ridotto circa di cinque volte.

Chi ha bisogno e chi non ha bisogno della metodologia

Molti Gli esperti IT ritengono, che il DevOps porterà vantaggi a qualsiasi organizzazione coinvolta nello sviluppo software. Questo è vero anche nel caso in cui l'azienda sia semplicemente un consumatore di servizi IT e non sviluppi applicazioni proprie. In questo caso, l'implementazione della cultura DevOps aiuterà a concentrarsi sulle innovazioni.

L'eccezione costituiscono sono le startup, ma anche in questo caso tutto dipende dalla scala del progetto. Se il tuo obiettivo è lanciare un prodotto minimo funzionante (minimum viable product, MVP) per testare una nuova idea, puoi fare a meno del DevOps. Ad esempio, il fondatore di Groupon, all'inizio del lavoro sul servizio, pubblicava manualmente tutte le offerte sul sito e raccoglieva gli ordini. Non usava alcuno strumento di automazione. все предложения на сайте и собирал заказы. Никаких инструментов автоматизации он не использовал.

È utile implementare metodologie e strumenti di automazione solo quando l'applicazione inizia a guadagnare popolarità. Questo aiuterà a stabilire i processi aziendali e ad accelerare il rilascio degli aggiornamenti.

Come implementare DevOps

Ecco alcuni suggerimenti per il passaggio alla nuova metodologia.

Identifica i problemi nei processi aziendali. Prima di implementare la metodologia, definisci gli obiettivi e i problemi dell'organizzazione. Questi influenzeranno la strategia di transizione verso DevOps. A tal fine, redigi un elenco di domande, ad esempio:

  • Dove si perde più tempo negli aggiornamenti software?
  • È possibile automatizzare questo processo?
  • Influisce su questo la struttura organizzativa?

Ulteriori dettagli sull'identificazione dei problemi nell'organizzazione possono essere letti nei libri «Progetto "Fenice"» e «Guida a DevOps» degli autori della metodologia.

Cambia la cultura in azienda. È importante convincere tutti i dipendenti a cambiare le loro abitudini lavorative e ad ampliare il proprio raggio di competenza. Ad esempio, in Facebook tutti i programmatori sono responsabili per l'intero ciclo di vita dell'applicazione: dalla scrittura del codice all'implementazione. Inoltre, in Facebook non esiste un dipartimento di test separato — i test sono scritti dagli stessi sviluppatori.

Inizia in piccolo. Scegli il processo che richiede più tempo e sforzi durante il rilascio degli aggiornamenti e automatizzalo. Questo potrebbe essere può essere il test o il processo di distribuzione delle applicazioni. Gli esperti consigliano sottolineano l'importanza di implementare prima di tutto strumenti di controllo versione distribuito. Questi semplificano la gestione del codice sorgente. Tra queste soluzioni, i più noti sono Git, Mercurial, Subversion (SVN) e CVS.

Vale anche la pena considerare i sistemi di integrazione continua, responsabili della compilazione e del testing del prodotto finale. Esempi di tali strumenti includono Jenkins, TeamCity e Bamboo.

Valuta i miglioramenti. Sviluppa metriche di performance delle soluzioni implementate e crea una checklist. Le metriche possono includere la frequenza dei rilasci, il tempo dedicato alle funzioni software, il numero di bug nel codice. Discuti i risultati non solo con i manager, ma anche con il resto del team coinvolto nel progetto. Chiedi quali strumenti mancano. Tieni in considerazione queste richieste durante l'ottimizzazione dei processi futuri.

Critica del DevOps

Sebbene la metodologia aiuta permetta alle organizzazioni di prendere decisioni più rapidamente riguardo allo sviluppo delle applicazioni, riduce il numero di errori nel software e incoraggia i dipendenti a imparare cose nuove, ha anche le sue critiche.

Sì opinioni, che i programmatori non dovrebbero occuparsi dei dettagli del lavoro degli amministratori di sistema. A quanto pare, DevOps porta a una situazione in cui in azienda ci sono persone che comprendono tutto, ma in modo superficiale, anziché specialisti in sviluppo o amministrazione.

Si ritiene inoltre che DevOps non funzioni in caso di cattivo management. Se i team di sviluppo e gli amministratori non hanno obiettivi comuni, la responsabilità ricade sui manager che non organizzano l'interazione tra i team. Per risolvere questo problema, non è necessaria una nuova metodologia, ma un sistema di valutazione dei manager basato sul feedback dei subordinati. Qui puoi leggere quali domande includere nei questionari per i dipendenti.

Che cos'è la metodologia DevOps e a chi è utile
Foto Ed Ivanushkin / Flickr / CC BY-SA

Chi è un ingegnere DevOps

L'ingegnere DevOps si occupa dell'implementazione della metodologia DevOps. Sincronizza tutte le fasi dello sviluppo del prodotto software: dalla scrittura del codice fino ai test e al rilascio dell'applicazione. Questa figura professionale controlla i reparti di sviluppo e amministrazione e automatizza l'esecuzione delle loro attività introducendo vari strumenti software.

Il punto forte di un ingegnere DevOps è che combina diverse professioni: amministratore, sviluppatore, tester e manager.

Joe Sanchez, evangelista DevOps di VMware, l'azienda che sviluppa software per la virtualizzazione, ha sottolineato una serie di competenze che un ingegnere DevOps deve possedere. Oltre a una solida conoscenza della metodologia DevOps, questa persona deve avere esperienza nell'amministrazione dei sistemi operativi Windows e Linux e saper utilizzare strumenti di automazione come ChefPuppetAnsible. Inoltre, deve saper scrivere script e codice in due o tre linguaggi e avere familiarità con le tecnologie di rete.

Il DevOps engineer è responsabile dell'automazione di qualsiasi attività relativa alla configurazione e al deployment delle applicazioni. Si occupa anche del monitoraggio del software. Per affrontare queste sfide, utilizza vari sistemi di gestione della configurazione, soluzioni di virtualizzazione e strumenti cloud per il bilanciamento delle risorse.

Chi assume

I DevOps engineer possono apportare vantaggi a qualsiasi organizzazione il cui lavoro sia legato allo sviluppo di applicazioni o alla gestione di un grande numero di server. I DevOps engineer sono assunti da giganti IT come Amazon, Adobe e Facebook. Lavorano anche per Netflix, Walmart ed Etsy.

Non sono assunti solo da startup. Il loro compito è rilasciare un prodotto minimo viable per testare una nuova idea. Nella maggior parte dei casi, le startup possono fare a meno dei DevOps.

Quanto guadagnano

I DevOps engineer guadagnano di più rispetto a chiunque altro nel settore. Il reddito medio di questi professionisti nel mondo oscilla tra i 100 e i 125 mila dollari all'anno.

Negli Stati Uniti guadagnano 90 mila dollari all'anno (500 mila rubli al mese). In Canada, ricevono 90 тыс. долларов в год (500 тыс. рублей в месяц). В Канаде им una retribuzione 122.000 dollari all'anno (670.000 rubli al mese), mentre nel Regno Unito sono 67.500 sterline all'anno (490.000 rubli al mese).

Per quanto riguarda la Russia, le aziende di Mosca sono pronte a pagare ai DevOps specialisti da 100.000 a 200.000 rubli al mese. A San Pietroburgo, i datori di lavoro sono leggermente più generosi — offrono da 160.000 a 360.000 rubli al mese. Nelle regioni, si indicano stipendi di 100.000–120.000 rubli al mese.

Come diventare specialista DevOps

DevOps è un campo relativamente nuovo nell'IT, quindi non esiste un elenco consolidato di requisiti per gli ingegneri DevOps. Tra i requisiti nelle offerte di lavoro per questa posizione si possono trovare competenze in amministrazione di Debian e CentOS, così come saper lavorare con i RAID array.

Da questo si può concludere che un ingegnere DevOps deve avere, prima di tutto, un buon panorama tecnico. È fondamentale per questa persona continuare a studiare nuovi strumenti e tecnologie.

Diventare un ingegnere DevOps è più facile per un amministratore di sistema o uno sviluppatore. Hanno già alcune competenze che vanno semplicemente ulteriormente sviluppate. L'obiettivo principale è acquisire un set minimo di conoscenze su DevOps, comprendere come utilizzare gli strumenti di automazione e colmare le lacune nelle competenze di amministrazione, programmazione e virtualizzazione.

Per capire dove mancano ancora delle conoscenze, puoi utilizzare un mini-wiki su GitHub o una mappa mentale. I membri di Hacker News consigliano anche di leggere i libri «Progetto "Fenice"» e «Guida a DevOps» (di cui abbiamo parlato sopra) e «La filosofia DevOps. L'arte della gestione IT» pubblicato da O'Reilly Media.

Puoi anche iscriverti a Devops Weekly, leggere articoli sul portale DZone e iniziare a comunicare con ingegneri DevOps in un chat su Slack. Vale anche la pena studiare corsi gratuiti su Udacity o edX.

Post dal nostro blog:



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