Qual è la differenza tra Sysadmin e DevOps Engineer?


40

Quando si fa domanda per un lavoro, di solito è possibile trovare due tipi di lavori simili: Ingegnere Sysadmin e Ingegnere DevOps .

Entrambi si occupano della configurazione del server e garantiscono il funzionamento affidabile dei sistemi informatici. Può essere difficile dire la differenza tra i due. Quali sono le principali differenze tra loro?




I termini SRE e sysadmin sono diversi.
Kenorb,

2
Ti suggerisco di includere una definizione per sysadmin e di consentire risposte che possano confrontarla con il ruolo di DevOps. Personalmente penso che DevOps non sia nemmeno un ruolo ... quindi avrei qualcosa da dire sulla questione.
Evgeny

1
@Evgeny Dillo alle agenzie di collocamento.
Kenorb,

Risposte:


54

Principalmente DevOps non è un ruolo (se usato come tale è più una parola d'ordine che un ruolo reale).

DevOps è approssimativamente un modello organizzativo che mira a rompere il silo tra sviluppatori e amministratori di sistema.
L'obiettivo principale è quello di costruire team con sviluppatori e amministratori di sistema (insieme ai tester di solito) responsabili di un prodotto (applicazione) dalla sua definizione, dalle decisioni sull'architettura fino alla manutenzione in corso di questo prodotto.
Ogni membro del team farà parte della decisione sull'intero ciclo di vita del prodotto, uno sviluppatore eseguirà alcune attività di amministratore di sistema in produzione e un amministratore di sistema parteciperà alla fase di progettazione del prodotto per evitare avvertenze dal punto di vista dell'infrastruttura per esempio.

Nel migliore dei casi, un amministratore di sistema dovrebbe anche far parte del team di sviluppo del prodotto, nel codice del mondo reale più approfondito sulla configurazione del prodotto e sulle soluzioni di monitoraggio, ma essere in grado di esprimere preoccupazioni agli altri membri del team evita molti malintesi sul processo di distribuzione.


9
Tanto questo ... DevOps non è un ruolo. "Fai" l'amministrazione del sistema in modo diverso come "parte" di una cultura DevOps.
Ken Mugrage

2
Alcune organizzazioni in cui ho lavorato (forse più per caso che per progettazione) hanno portato questo all'estremo: non avevamo amministratori di sistema dedicati e tutto il lavoro di amministratore di sistema è stato svolto da sviluppatori "regolari". (In questa particolare organizzazione molti sviluppatori erano amministratori di sistemi molto esperti, quindi non abbiamo mai sentito il bisogno di assumere qualcuno specializzato in questo.)
Curt J. Sampson

"DevOps è approssimativamente un modello organizzativo", il frammento più illuminante che ho letto finora.
Webwoman

Magari puoi chiarire che DevOps! = NoOps
sgargel

20

Versione breve

DevOps combina cultura organizzativa, modalità di lavoro Agile / Lean e automazione del software che, se applicate all'amministrazione e alle operazioni dei sistemi, consentono a queste funzioni di operare con lo stesso livello di agilità delle squadre di sviluppo Agile o Lean.

Versione lunga

Le idee alla base di DevOps sono nate dalle comunità di amministrazione dei sistemi, operazioni e Agile, in particolare Patrick Debois ha tenuto una presentazione ad Agile2008 intitolata "Infrastruttura Agile" in cui ha sottolineato la disparità tra il modo in cui operano le tre funzioni all'interno di un'organizzazione:

  1. Squadre di sviluppo Agile - Squadre Agile che scrivono codice.
  2. Team di amministrazione dei sistemi - Creazione di infrastrutture per l'esecuzione del software.
  3. Team operativi : supporto di applicazioni e infrastrutture in produzione / live.

La proposta di Debois era di unificare i tre modi di lavorare insieme, spostando in particolare i team di amministrazione dei sistemi e i team operativi da un modello a cascata a un modello agile. A tal fine, Debois ha installato DevOpsDays 2009 a Gand, in Belgio, coniando inavvertitamente la frase DevOps .

L'idea di DevOps ha risuonato con gli autori della serie di libri VisibleOps: Gene Kim, George Spafford e Kevin Behr; che ha continuato a scrivere The Phoenix Project e The DevOps Handbook . Entrambi i libri esplorano come Agile e Lean possono avere un impatto positivo sui team di amministrazione e operazioni dei sistemi.


1
Riepilogo eccellente! La migliore che abbia mai visto sulla storia dietro questa filosofia e stile ingegneristico.
Jesse Adelman,

9

Come ingegnere DevOps proveniente da un background operativo, ti sei spostato dalla costruzione e distribuzione manuale di server e software allo scripting dell'installazione del software sui tuoi server con artisti del calibro di BASH, PowerShell, Python ecc. Dopo un po ', ti renderesti conto di come lo scripting interessante è e inizia a esplorare modi più sofisticati per automatizzare la distribuzione .

Alla fine, avresti optato per uno Chef, Puppet, Ansible o altri strumenti di gestione della configurazione per aiutarti a gestire lo stato della tua flotta di sistemi. Man mano che le tue competenze con l'automazione della distribuzione delle applicazioni e della gestione del sistema sono maturate, insieme ai tuoi strumenti, ti sei spostato più di recente nel regno di " Infrastruttura come codice " e lo usi per automatizzare non solo la distribuzione del software ma l'infrastruttura e gli ambienti richiesti per guidare il software durante il passaggio dell'azienda al cloud.

Adesso stai cucinando a gas. Nel tempo ti sono stati presentati i vantaggi dell'utilizzo di strumenti incentrati sullo sviluppatore come il controllo del codice sorgente per gestire i moduli, le ricette e i modelli che compongono il tuo arsenale di strumenti di distribuzione e gestione.

Quando sei passato al team DevOps , sei stato esposto al ciclo di vita dello sviluppo del software e al concetto di integrazione continua . Ragazzo, quegli sviluppatori stavano rilasciando rapidamente le modifiche e per tenerti aggiornato ti sei ritrovato a lavorare più da vicino con gli sviluppatori! Hai sperimentato l'urgenza posta dal team di sviluppo per cambiare le cose TUTTO IL TEMPO che si oppone al vecchio paradigma operativo di " se non è rotto, non aggiustarlo ". Non devi più vantarti del tempo di attività del sistema, sei nell'infrastruttura usa e getta .

Avete notato che il passaggio a DevOps era più che lavorare con gli sviluppatori , o utilizzando nuovi strumenti e tecniche , ma c'era una netta culturale cambiamento nella squadra, quella che permeato attraverso l'organizzazione nel suo complesso. Lavoravi come un team affiatato con responsabilità condivise , strumenti condivisi e obiettivi condivisi .

Hai sfruttato le tue abilità nella distribuzione automatizzata e le hai massaggiate nella pipeline " CICD " orchestrata da un " server di integrazione continua " come Jenkins , Bamboo o Code Pipeline . Ora, quando gli sviluppatori inviano un nuovo codice, i tuoi script, strumenti e modelli resistono a nuovi ambienti su richiesta, innescano quadri di prova per fare le loro cose e abbattono gli ambienti di pre-produzione dopo che le luci verdi sono accese sul rilascio, aderendo al idee di " consegna continua ".

Mentre il nuovo codice si snoda attraverso le fasi CICD, tu, gli sviluppatori e il business acquisisci la sicurezza che l'aggiornamento non si interromperà quando verrà rilasciato alla produzione. C'è ancora molta strada da fare prima che il team arrivi al " dispiegamento continuo ", è comunque necessario accontentarsi dei punti più fini dell'automazione della capacità di schieramento blu / verde e la decisione è principalmente di tipo aziendale. Per il momento sei contento che il numero di chiamate alle 3 del mattino si sia abbassato e che i sev-1 e sev-2 diminuiscano.

Anche se ottieni un sev-1, non stai più trascinando tutti i nottambuli con i gestori che ti respirano la schiena: puoi facilmente rilasciare la versione precedente attraverso la pipeline CICD e riportare il sistema online in breve tempo. Il business ha notato che la stabilità dei sistemi IT è migliorata nonostante la velocità dei cambiamenti .

Ti stupisci del modo in cui gestisci le risorse necessarie per guidare il software nella tua azienda, soprattutto quando ripensi a come era una volta e alla quantità di sangue che hai lasciato sulle rotaie nel datacenter ...


6

Sysadmin vs. DevOps (visualizzazione personale)

Alcune aziende parlano di Dev, Ops e Test. Se qualcosa deve essere testato, dicono: "Il test dovrebbe farlo". Se qualcosa deve essere sviluppato, Dev lo farà e se il software deve essere distribuito, Ops lo farà.

Secondo me e quello che ho sperimentato in diverse aziende è che ciò si traduce in una mentalità "buttalo oltre il muro" che provoca attrito tra persone e squadre. Personalmente, a volte sento che le persone lavorano individualmente e dico che è quello che ho fatto, non ho niente da fare invece di lavorare in gruppo.

Secondo me DevOps significa che tutti in un team sono responsabili e impegnati con lo sviluppo, i test e le operazioni. Non ci sono io in una squadra e non ci sono dipartimenti separati. Tutti dovrebbero rilasciare. Naturalmente ci sono specialità, ma secondo me tutti dovrebbero essere in grado di fare almeno il 25% di lavoro in ogni area. Ad esempio, se qualcuno era uno sviluppatore nel corso della giornata, si dovrebbe essere in grado di modificare alcuni codici di gestione della configurazione, ad esempio chef e distribuire software.

Riferimenti

sysadmin

Secondo Wikipedia :

Un amministratore di sistema, o amministratore di sistema, è una persona responsabile della manutenzione, della configurazione e del funzionamento affidabile dei sistemi informatici; in particolare i computer multiutente, come i server.

L'amministratore di sistema cerca di garantire che i tempi di attività, le prestazioni, le risorse e la sicurezza dei computer che gestisce soddisfino le esigenze degli utenti, senza superare il budget.

Per soddisfare queste esigenze, un amministratore di sistema può acquisire, installare o aggiornare componenti e software del computer; fornire automazione di routine; mantenere politiche di sicurezza; risolvere i problemi; formare o supervisionare il personale; o offrire supporto tecnico per i progetti.

DevOps

Secondo Wikipedia :

DevOps (un composto ritagliato di "sviluppo" e "operazioni") è un processo di sviluppo e consegna del software che enfatizza la comunicazione e la collaborazione tra i responsabili della gestione del prodotto, dello sviluppo del software e delle operazioni. Supporta questo aspetto automatizzando e monitorando il processo di integrazione del software, test, implementazione e modifiche dell'infrastruttura stabilendo una cultura e un ambiente in cui la costruzione, il test e il rilascio del software possono avvenire rapidamente, frequentemente e in modo più affidabile.

DevOps

inserisci qui la descrizione dell'immagine

DevOps Toolchain

inserisci qui la descrizione dell'immagine


1
Solo un piccolo commento: IMHO fintanto che il team nel suo insieme ha una buona copertura su ogni aspetto delle aree di sviluppo / operazioni / test e ha buone comunicazioni non è assolutamente necessario che ogni singolo membro del team copra anche ciascuna di tali aree. Certo, è una buona cosa se ciò accade, ma richiederlo potrebbe diventare inutilmente costoso in alcuni casi.
Dan Cornilescu,

2

Un amministratore di sistema è responsabile della manutenzione e della configurazione dei server e la loro responsabilità è garantire all'utente le prestazioni, i tempi di attività e la sicurezza che stanno cercando. Definire il ruolo di un ingegnere DevOps è un po 'più difficile poiché non esiste un percorso di carriera formale e DevOps stesso può avere molte forme.

Un ingegnere DevOps può essere, ad esempio, uno sviluppatore interessato alle operazioni di rete e di distribuzione o un amministratore di sistema appassionato di programmazione e scripting. Il passaggio dall'amministratore di sistema all'ingegnere DevOps non è molto difficile, infatti questo articolo fa un ottimo lavoro nel descrivere il processo.

Molte persone sostengono addirittura che questa transizione dall'amministratore di sistema all'ingegnere DevOps sia essenziale poiché la posizione dell'amministratore di sistema diventerà obsoleta in futuro. Anche se ci sono molti server legacy che necessitano di manutenzione e gli amministratori di sistema possiedono molta "conoscenza tribale", la posizione dell'amministratore diventerà più scarsa in futuro.


-1

Ci saranno server che non si sente in esecuzione nei data center. Tutto sarà software. Archiviazione, rete, sistemi, sicurezza, data center; SDN, firewall, NFV, archiviazione, server, ecc. Gli amministratori di sistema senza un background di sviluppo software, l'esperienza SDLC (non intendo nemmeno lo scripting Perl, Powershell, ecc.) Svaniranno probabilmente. Gli ambienti distribuiti, scalabili e virtualizzati, che sono principalmente cloud, crescono orizzontalmente non verticalmente.


Oserei dire che i Sysadmins crescono in verticale, i DevOps (o OpsDev) crescono in orizzontale. Puoi vedere lo stesso modello di come i microservizi si sono evoluti dai monoliti. Preferirei scegliere l'ingegnere DevOps dal team del software, non dal team operativo / di sistema.

Perché il team operativo / di sistema esegue solo ciò che il team software crea.

  • Gli amministratori di sistema non compilano / compilano Linux / FreeBSD / kernel di Windows, ecc. Proprio come gli ingegneri software creano / compilano applicazioni.
  • Gli amministratori di sistema non passano attraverso il ciclo di vita dello sviluppo del software (SDLC).
  • Gli amministratori di sistema non fanno parte della pipeline di produzione (processo CI / CD).
  • Sysadmin inizia a funzionare dopo la fine dell'IC / Consegna continua / Distribuzione.

    E se interrompi e assegni distribuzione / consegna, potrebbe essere una pipeline spezzata
    il team del software è il sistema creatore / il team operativo sono i corridori / i custodi per lo più.

Sembra che non ci sia un server / sistema da amministrare, nessun bisogno di amministratore di sistema.

Il serverless computing è un modello di esecuzione del cloud computing in cui il provider cloud agisce come server, gestendo in modo dinamico l'allocazione delle risorse della macchina. Il prezzo si basa sulla quantità effettiva di risorse consumate da un'applicazione, piuttosto che su unità di capacità pre-acquistate Elaborazione senza server

Qualcuno del team del software sa già come costruire, mantenere anche come programmare (SRE vs DevOps / OpsDev).


Mi chiedo perché si chiama DevOps ma non OpsDev? è legato alla direzione tra i due?

* Nel bel mezzo del nulla, non ho iniziato a scrivere sulla memoria definita dal software, questo è in reazione a un commento ora cancellato su di esso *

Informazioni sulla memoria definita dal software

  • La memoria definita dal software (SDS) è un termine di marketing per il software di archiviazione dei dati informatici per il provisioning basato su criteri e la gestione della memorizzazione dei dati indipendentemente dall'hardware sottostante. Memoria definita dal software

  • EMC ha annunciato il suo primo prodotto open source: Project CoprHD. CoprHD è un controller di gestione e automazione dello storage definito dal software e la recente decisione di EMC di open source è il punto cruciale della nostra strategia per offrire maggiore valore alle aziende globali quando entriamo in un'area di crescita e di cambiamenti estremi. In qualità di leader mondiale nella gestione dello storage e delle informazioni, è premesso che EMC apra la strada al Software Defined Storage (SDS) .

  • CoprHD è un controller di archiviazione e una piattaforma API definiti da software open source. Consente la gestione basata su criteri e l'automazione cloud delle risorse di archiviazione per i fornitori di archiviazione di blocchi, oggetti e file CoprHD


1
Non aggiungere di nuovo il nominativo nella tua risposta, mantienilo in linea con la domanda, ti consiglio nuovamente di leggere Come rispondere per assistenza.
Tensibai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.