Cos'è la metodologia DevOps e chi ne ha bisogno

Scopriamo qual è l'essenza della metodologia e chi può trarne beneficio.

Parleremo anche degli specialisti DevOps: i loro compiti, salari e competenze.

Cos'è la metodologia DevOps e chi ne ha bisogno
foto Matt Moore /Flickr/CC BY-SA

Che cos'è DevOps

DevOps è una metodologia di sviluppo software il cui compito è stabilire l'interazione tra programmatori e amministratori di sistema in un'azienda. Se gli specialisti IT di diversi dipartimenti non comprendono i reciproci compiti, il rilascio di nuove applicazioni e relativi aggiornamenti viene ritardato.

DevOps crea un ciclo di sviluppo “senza soluzione di continuità”, contribuendo così ad accelerare il rilascio di un prodotto software. L'accelerazione si ottiene attraverso l'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.

Ciò migliora l'interazione tra i reparti. I dipendenti iniziano a comprendere meglio quali fasi attraversa un prodotto software prima che arrivi nelle mani dell'utente.

Quando uno sviluppatore capisce cosa deve affrontare un amministratore durante la configurazione di un server, cercherà di smussare i possibili "angoli acuti" nel codice. Ciò riduce il numero di bug durante la distribuzione di un'applicazione: secondo le statistiche diminuisce circa cinque volte.

Chi ha bisogno e chi non ha bisogno della metodologia

Molti Gli esperti IT credonoche DevOps andrà a vantaggio di qualsiasi organizzazione che sviluppa software. Questo vale anche se l'azienda è un semplice consumatore di servizi IT e non sviluppa applicazioni proprie. In questo caso, implementare una cultura DevOps ti aiuterà a concentrarti sull’innovazione.

L'eccezione conto per startup, ma qui tutto dipende dalla portata del progetto. Se il tuo obiettivo è lanciare un prodotto minimo vitale (MVP) per testare una nuova idea, puoi fare a meno di DevOps. Ad esempio, il fondatore di Groupon ha iniziato a lavorare manualmente sul servizio postato tutte le offerte presenti sul sito e gli ordini raccolti. Non ha utilizzato alcuno strumento di automazione.

Ha senso implementare la metodologia e gli strumenti di automazione solo quando l'applicazione inizia a guadagnare popolarità. Ciò contribuirà a semplificare i processi aziendali e ad accelerare il rilascio degli aggiornamenti.

Come implementare DevOps

Di seguito sono riportati alcuni consigli per il passaggio a una nuova metodologia.

Identificare i problemi nei processi aziendali. Prima di implementare la metodologia, evidenziare gli obiettivi e i problemi dell'organizzazione. Da loro dipenderà la strategia di transizione verso DevOps. Per fare ciò, crea un elenco di domande, ad esempio:

  • Cosa richiede più tempo durante l'aggiornamento del software?
  • È possibile automatizzare questo processo?
  • La struttura dell’organizzazione influisce su questo?

Ulteriori informazioni sull'identificazione dei problemi in un'organizzazione può essere letto nei libri «Progetto "Fenice""E"Guida DevOps» dagli autori della metodologia.

Cambiare la cultura in azienda. È importante convincere tutti i dipendenti a cambiare il loro modo abituale di lavorare e ad ampliare la propria gamma di competenze. Ad esempio, su Facebook tutti i programmatori risposta per l'intero ciclo di vita dell'applicazione: dalla codifica all'implementazione. Inoltre, Facebook non dispone di un reparto di test separato: i test sono scritti dagli stessi sviluppatori.

Inizia in piccolo. Scegli il processo che richiede più tempo e impegno quando rilasci gli aggiornamenti e automatizzalo. Questo forse processo di test o di distribuzione dell'applicazione. Esperti consigliare Il primo passo è implementare strumenti di controllo della versione distribuiti. Semplificano la gestione delle fonti. Tra queste soluzioni, le più famose sono Git, Mercurial, Subversion (SVN) e CVS.

Vale anche la pena prestare attenzione ai sistemi di integrazione continua responsabili dell'assemblaggio e del test del prodotto finale. Esempi di tali strumenti: Jenkins, TeamCity e Bamboo.

Valutare i miglioramenti. Sviluppare parametri di prestazione per le soluzioni implementate e creare una lista di controllo. Le metriche possono includere la frequenza di rilascio, il tempo impiegato a lavorare sulle funzionalità del software e 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. Tenete conto di queste richieste quando ottimizzate ulteriormente i vostri processi.

Critiche a DevOps

Sebbene la metodologia помогает le organizzazioni possono prendere decisioni più rapide riguardo allo sviluppo delle applicazioni, riduce il numero di errori nel software e incoraggia i dipendenti a imparare cose nuove, ma ha anche dei critici.

C'è vistache i programmatori non dovrebbero comprendere i dettagli del lavoro degli amministratori di sistema. Presumibilmente DevOps porta al fatto che invece degli specialisti dello sviluppo o dell'amministrazione, l'azienda ha persone che capiscono tutto, ma in modo superficiale.

Si ritiene inoltre che DevOps non funziona con una cattiva gestione. Se i team di sviluppo e amministrazione non hanno obiettivi comuni, la colpa è dei manager che non organizzano la comunicazione tra i team. Per risolvere questo problema, ciò che serve non è una nuova metodologia, ma un sistema per valutare i manager basato sul feedback dei subordinati. Potete leggerlo qui, quali domande dovrebbero essere incluse nei moduli di sondaggio dei dipendenti.

Cos'è la metodologia DevOps e chi ne ha bisogno
foto Ed Ivanushkin /Flickr/CC BY-SA

Chi è un ingegnere DevOps

Un ingegnere DevOps implementa la metodologia DevOps. Sincronizza tutte le fasi della creazione di un prodotto software: dalla scrittura del codice al test e al rilascio dell'applicazione. Uno specialista di questo tipo controlla i dipartimenti di sviluppo e amministrazione, inoltre automatizza l'esecuzione dei loro compiti introducendo vari strumenti software.

Il trucco di un ingegnere DevOps è che combina molte professioni: amministratore, sviluppatore, tester e manager.

Joe Sanchez, sostenitore di DevOps presso VMware, una società di software di virtualizzazione, individuato una serie di competenze che un ingegnere DevOps deve possedere. Oltre all'ovvia conoscenza della metodologia DevOps, questa persona dovrebbe avere esperienza nell'amministrazione dei sistemi operativi Windows e Linux ed esperienza di lavoro con strumenti di automazione come ChefFantoccioansible. Dovrebbe anche essere in grado di scrivere script e codice in un paio di lingue e comprendere le tecnologie di rete.

Un ingegnere DevOps è responsabile di qualsiasi automazione delle attività relative alla configurazione e alla distribuzione delle applicazioni. Anche il monitoraggio del software ricade sulle sue spalle. Per risolvere questi problemi utilizza diversi sistemi di gestione della configurazione, soluzioni di virtualizzazione e strumenti cloud per il bilanciamento delle risorse.

Chi sta assumendo

Gli ingegneri DevOps possono apportare vantaggi a qualsiasi organizzazione che sviluppa applicazioni o gestisce un gran numero di server. Ingegneri DevOps stanno assumendo Giganti dell’IT come Amazon, Adobe e Facebook. Funzionano anche su Netflix, Walmart ed Etsy.

Non assumere Gli ingegneri DevOps sono solo startup. Il loro compito è rilasciare un prodotto minimo vitale per testare una nuova idea. Nella maggior parte dei casi, le startup possono fare a meno di DevOps.

Quanto paga

Ingegneri DevOps guadagnare più di chiunque altro nel settore. I guadagni medi di tali specialisti in tutto il mondo vanno da 100 a 125 mila dollari all'anno.

Negli Stati Uniti loro ottenere 90mila dollari all'anno (500mila rubli al mese). In Canada loro essere pagato 122mila dollari all'anno (670mila rubli al mese) e nel Regno Unito - 67,5mila sterline all'anno (490mila rubli al mese).

Per quanto riguarda la Russia, le aziende di Mosca sono pronti pagare gli specialisti DevOps da 100 a 200 mila rubli al mese. A San Pietroburgo i datori di lavoro sono un po’ più generosi: offrono 160-360mila rubli al mese. Nelle regioni gli stipendi ammontano a 100-120 mila rubli al mese.

Come diventare uno specialista DevOps

DevOps è una direzione relativamente nuova nell'IT, quindi non esiste un elenco stabilito di requisiti per gli ingegneri DevOps. Nei posti vacanti, tra i requisiti per questa posizione puoi trovare sia le competenze di amministrazione di Debian che CentOS e la capacità di lavorare con le unità disco. Array RAID.

Sulla base di ciò possiamo concludere che, prima di tutto, un ingegnere DevOps deve avere una buona visione tecnica. È importante che una persona del genere impari costantemente nuovi strumenti e tecnologie.

Il modo più semplice per diventare un ingegnere DevOps sarebbe essere un amministratore di sistema o uno sviluppatore. Hanno già una serie di competenze che devono solo essere sviluppate. Il compito principale è migliorare l'insieme minimo di conoscenze in DevOps, capire come lavorare con gli strumenti di automazione e colmare le lacune nelle competenze di amministrazione, programmazione e virtualizzazione.

Per capire dove manca ancora la conoscenza, puoi usare mini-Wikipedia su GitHub o mappa mentale. Anche i residenti di Hacker News Raccomandare leggere libri "Progetto "Fenice""E"Guida DevOps" (di cui abbiamo parlato sopra) e "Filosofia DevOps. L'arte della gestione informatica» sotto il timbro di O'Reilly Media.

Puoi anche iscriverti a Newsletter settimanale di Devops, leggi articoli di attualità portale DZone e inizia a comunicare con gli ingegneri DevOps in Chiacchierata lenta. Vale anche la pena dare un'occhiata ai corsi gratuiti su Udacity o EDX.

Post dal nostro blog:



Fonte: habr.com

Aggiungi un commento