Scopriamo qual è l'essenza della metodologia e chi può trarne beneficio.
Parleremo anche degli specialisti DevOps: i loro compiti, salari e competenze.
foto /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 circa cinque volte.
Chi ha bisogno e chi non ha bisogno della metodologia
Molti che 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 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 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 «"E"» 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 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 processo di test o di distribuzione dell'applicazione. Esperti 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, il numero di errori nel software e incoraggia i dipendenti a imparare cose nuove, ma ha anche dei critici.
C'è che 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 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, .

foto /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, ряд навыков, которыми обязан обладать DevOps-инженер. Помимо очевидного знания методологии DevOps, этот человек должен иметь опыт администрирования ОС Windows и Linux и опыт работы с инструментами автоматизации вроде , , . 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 Giganti dell’IT come Amazon, Adobe e Facebook. Funzionano anche su Netflix, Walmart ed Etsy.
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 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 90mila dollari all'anno (500mila rubli al mese). In Canada loro 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 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 — это относительно новое направление в IT, поэтому устоявшегося перечня требований к DevOps-инженерам нет. В вакансиях среди требований на эту должность можно встретить как навыки администрирования Debian и CentOS, так и умение работать с дисковыми .
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 o . Anche i residenti di Hacker News leggere libri ""E"" (di cui abbiamo parlato sopra) e "» sotto il timbro di O'Reilly Media.
Puoi anche iscriverti a , leggi articoli di attualità e inizia a comunicare con gli ingegneri DevOps in . Vale anche la pena dare un'occhiata ai corsi gratuiti su o .
Post dal nostro blog:
Fonte: habr.com
