Capiremo quale sia l'essenza della metodologia e a chi possa giovare.
Parleremo anche degli specialisti DevOps: delle loro mansioni, stipendi e competenze.
Foto / Flickr / CC BY-SA
Che cos'è DevOps
DevOps è una metodologia di sviluppo software il cui obiettivo è facilitare la comunicazione tra programmatori e amministratori di sistema all'interno dell'azienda. Quando gli specialisti IT di diversi reparti non si comprendono a vicenda, il rilascio di nuove applicazioni e aggiornamenti si allunga.
DevOps crea un ciclo di sviluppo "senza soluzione di continuità", aiutando così a velocizzare il rilascio del prodotto software. Questa accelerazione è ottenuta grazie all'introduzione di sistemi di automazione. Inoltre, i programmatori iniziano a partecipare alla configurazione dei server e alla ricerca di bug, ad esempio, possono scrivere test automatizzati.
In questo modo si migliora l'interazione tra i reparti. I dipendenti iniziano a comprendere meglio quali fasi attraversa il prodotto software prima di arrivare nelle mani degli utenti.
Quando uno sviluppatore comprende quali sono le sfide affrontate dall'amministratore durante la configurazione del server, cercherà di smussare i possibili "angoli acuti" nel codice. Questo riduce il numero di bug durante il deploy dell'applicazione: statisticamente è circa cinque volte.
A chi serve e a chi non serve la metodologia
Molti , che DevOps porterà vantaggi a qualsiasi organizzazione che si occupa di sviluppo software. Questo è vero anche nel caso in cui l'azienda sia solo un semplice consumatore di servizi IT e non sviluppi applicazioni proprie. In tal caso, l'implementazione di una cultura DevOps aiuterà a concentrarsi sull'innovazione.
Un'eccezione le start-up, ma anche in questo caso dipende dalla scala del progetto. Se il vostro obiettivo è lanciare un prodotto minimo funzionale (minimum viable product, MVP) per testare una nuova idea, è possibile farne a meno di DevOps. Ad esempio, il fondatore di Groupon, all'inizio del lavoro sul servizio, pubblicava manualmente Implementare la metodologia e gli strumenti di automazione ha senso solo quando l'applicazione inizia a guadagnare popolarità. Questo aiuterà a ottimizzare i processi aziendali e accelerare il rilascio degli aggiornamenti.
Come implementare DevOps
Di seguito alcuni consigli per passare alla nuova metodologia.
Di seguito sono riportate alcune raccomandazioni per passare alla nuova metodologia.
Identifica i problemi nei processi aziendali. Prima di implementare la metodologia, definisci gli obiettivi e i problemi dell'organizzazione. Da questi dipenderà la strategia di transizione verso DevOps. A questo proposito, redigi un elenco di domande, ad esempio:
- A cosa viene dedicato più tempo durante l'aggiornamento del software?
- È possibile automatizzare questo processo?
- Influisce su questo la struttura dell'organizzazione?
Per ulteriori dettagli sull'identificazione dei problemi nell'organizzazione «" e "" dagli autori della metodologia.
Cambia la cultura in azienda. È importante convincere tutti i dipendenti a modificare le abitudini lavorative e ad ampliare le proprie competenze. Ad esempio, in Facebook tutti i programmatori del ciclo di vita dell'applicazione nel suo complesso: dalla scrittura del codice fino all'implementazione. Inoltre, in Facebook non esiste un reparto test: i test vengono scritti dagli stessi sviluppatori.
Inizia in piccolo. Scegli un processo che richiede il maggior tempo e impegno per il rilascio degli aggiornamenti e automatizzalo. Questo il testing o il processo di distribuzione delle applicazioni. Gli esperti di implementare prima gli strumenti di controllo versione distribuito. Con essi è più semplice gestire i sorgenti. Tra queste soluzioni, i più noti sono Git, Mercurial, Subversion (SVN) e CVS.
Vale anche la pena prestare attenzione ai sistemi di integrazione continua, responsabili della costruzione e del testing del prodotto finale. Esempi di tali strumenti: Jenkins, TeamCity e Bamboo.
Valuta i miglioramenti. Sviluppa metriche di efficacia delle soluzioni implementate e redigi una lista di controllo. Le metriche possono includere la frequenza dei rilasci, il tempo di lavoro sulle 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 conto di queste richieste nella futura ottimizzazione dei processi.
Critiche a DevOps
Sebbene la metodologia consenta alle organizzazioni di prendere decisioni più rapidamente riguardo lo sviluppo delle applicazioni, il numero di errori nel software e incoraggia i dipendenti a imparare cose nuove, ha anche i suoi critici.
C'è , che i programmatori non dovrebbero comprendere i dettagli del lavoro degli amministratori di sistema. Si sostiene che il DevOps porti al fatto che in azienda invece di specialisti nello sviluppo o nell'amministrazione compaiano persone che capiscono tutto, ma solo superficialmente.
Si ritiene inoltre che il DevOps in caso di cattivo management. Se i team di programmatori e amministratori non hanno obiettivi comuni, la colpa ricade sui manager, che non organizzano l'interazione tra i team. Per risolvere questo problema non serve una nuova metodologia, ma un sistema di valutazione dei manager basato sui feedback dei subordinati. Qui puoi leggere .

Foto / Flickr / CC BY-SA
Chi è un ingegnere DevOps
L'ingegnere DevOps si occupa dell'implementazione della metodologia DevOps. Sincronizza tutte le fasi di creazione di un prodotto software: dalla scrittura del codice al collaudo e al rilascio dell'applicazione. Questo specialista controlla i reparti di sviluppo e amministrazione e automatizza l'esecuzione dei loro compiti, implementando vari strumenti software.
Il punto di forza dell'ingegnere DevOps è che combina molte professioni: amministratore, sviluppatore, tester e manager.
Joe Sanchez, evangelista DevOps di VMware, società sviluppatrice di software per la virtualizzazione, una serie di competenze che un ingegnere DevOps deve possedere. Oltre alla conoscenza ovvia della metodologia DevOps, questa persona deve avere esperienza nella gestione dei sistemi operativi Windows e Linux e esperienza con strumenti di automazione come , , . Inoltre, deve saper scrivere script e codice in un paio di lingue e comprendere le tecnologie di rete.
L'ingegnere DevOps è responsabile di qualsiasi automazione delle attività legate alla configurazione e al deployment delle applicazioni. Inoltre, è responsabile del monitoraggio del software. Per affrontare queste sfide, utilizza vari sistemi di gestione delle configurazioni, soluzioni di virtualizzazione e strumenti cloud per il bilanciamento delle risorse.
Chi assume
Gli ingegneri DevOps possono portare vantaggio a qualsiasi organizzazione la cui attività è legata allo sviluppo di applicazioni o alla gestione di un elevato numero di server. Gli ingegneri DevOps da giganti IT come Amazon, Adobe e Facebook. Lavorano anche per Netflix, Walmart ed Etsy.
I soli startup assumono ingegneri DevOps. Il loro compito è lanciare un prodotto minimo viabile per testare una nuova idea. Nella maggior parte dei casi, i startup possono fare a meno dei DevOps.
Quanto guadagnano
Gli ingegneri DevOps di più rispetto a chiunque altro nel settore. Il reddito medio di questi specialisti nel mondo va da 100 a 125 mila dollari all'anno.
Negli Stati Uniti guadagnano 122 mila dollari all'anno (670 mila rubli al mese), mentre nel Regno Unito sono 67,5 mila sterline all'anno (490 mila rubli al mese). sono pronte
a pagare agli specialisti DevOps da 100 a 200 mila rubli al mese. A San Pietroburgo i datori di lavoro sono un po' più generosi, offrendo 160–360 mila rubli al mese. Nelle regioni si segnalano stipendi di 100–120 mila rubli al mese. Il DevOps è un campo relativamente nuovo nell'IT, quindi non esiste un elenco consolidato di requisiti per gli ingegneri DevOps. Negli annunci di lavoro, tra le richieste per questa posizione, si possono trovare sia competenze nell'amministrazione di Debian e CentOS, sia la capacità di lavorare con array
RAID.
Da questo si può dedurre che, prima di tutto, un ingegnere DevOps deve avere un buon bagaglio tecnico. È importante per una persona del genere studiare costantemente nuovi strumenti e tecnologie. .
Per capire dove mancano conoscenze, si può utilizzare
una mini-wikipedia su GitHub
una mappa mentale. o » (di cui abbiamo parlato sopra) e « » pubblicato da O’Reilly Media." e "Si può anche iscriversi alla, leggere articoli dal portale tematico
DZone una chat Slack Post dal nostro blog: Uno sguardo interno: unboxing dello storage all-flash NetApp AFF A300 o .
Unboxing del blade server Cisco UCS B480 M5
Fonte: habr.com
