Qual è la differenza tra SRE e DevOps?


57

Qual è la differenza tra SRE e DevOps?

Le operazioni di ingegneria e sviluppo dell'affidabilità del sito sembrano sovrapporsi molto nel dettaglio. Come faccio a sapere quale gruppo è responsabile di cosa e come faccio a sapere quali lavori sarebbero appropriati per il mio skillset?

Sembra che SRE si occupi della manutenzione dei server e della rete e DevOps riguardi la manutenzione del codice, è corretto? Non c'è ancora una buona dose di sovrapposizione tra quei due?


3
Penso che DevOps sia stato talmente abusato come un termine che significhi qualcosa o niente a questo punto.
pulcini,

1
Una società con cui ho parlato aveva un team SRE e DevOps. Mi dissero che DevOps era usato per creare nuove applicazioni (0-6 mesi) e SRE stava mantenendo vecchie applicazioni. Entrambi erano sviluppatori che utilizzavano applicazioni di automazione, codificate e rilasciate.
Paul Totzke,

1
Penso che il libro di Googles su SRE sarebbe una buona lettura per capire di cosa si tratta: landing.google.com/sre
Kyle Steenkamp

Risposte:


49

DevOps riguarda il mantenimento del codice, è corretto?

DevOps non riguarda "solo" il codice, i sistemi o qualsiasi altra cosa. DevOps è un termine molto generale che copre tutto ciò che riguarda la consegna del software.

Ingegneria dell'affidabilità del sito è un termine reso popolare da Google. Da questo articolo https://landing.google.com/sre/interview/ben-treynor.html possiamo distillare il loro TL; DR:

Fondamentalmente, è ciò che accade quando chiedi a un ingegnere del software di progettare una funzione operativa.

Operazioni, ingegneria e sviluppo software si confondono. Il grado di automazione richiesto per creare e mantenere un'infrastruttura matura richiede competenze da tutti e tre. SRE sono amministratori, e gli ingegneri, e gli sviluppatori.

Vedi anche: http://shop.oreilly.com/product/0636920041528.do


6
DevOps non è limitato semplicemente al software, questo è un malinteso. Dovrebbe legarsi completamente alla progettazione del prodotto, ai requisiti del prodotto, alla documentazione, ecc. Dovrebbe seguire l'intera catena del valore da un cliente al cliente. Limitare la vista comporta una riduzione dell'impatto e, infine, l'incomprensione del ruolo di ingegnere del rilascio più sofisticato.
Jiri Klouda

Devo ancora capire la distinzione tra DevOps Engineeringe SRE workoltre che si tratta di un acronimo sviluppato da Google e supportato da un libro piuttosto interessante (gratuito!).
BlackVegetable

L'ingegnere dell'affidabilità del sito è un titolo e una descrizione del lavoro effettivi. Implica proprio quello che dice. Un titolo che può implicare DevOps dal lato software è Platform Engineer, dove stai costruendo e automatizzando una piattaforma su cui gli sviluppatori possono implementare. Nel frattempo un SRE è la persona responsabile di quelle che erano le operazioni tipiche. Questi sono un po 'aneddotici ma probabilmente possono aiutarti a capire @ BlackVegetable.
Matt O.

1
Ci sono un sacco di fantastici video di YouTube di Seth Vargo e Liz Fong (Google loro.) Lo chiariscono: "la classe SRE implementa DevOps". SRE è una pratica concreta e formalizzata che segue molti principi DevOps.
Dave Swersky,


21

Dave Swersky ha già pubblicato un'eccellente risposta sopra con la definizione di SRE di Ben Treynor, che è tanto toccante oggi come lo era nel 2003.

Fondamentalmente, è ciò che accade quando chiedi a un ingegnere del software di progettare una funzione operativa.

Quindi, nel tentativo di definire ulteriormente "DevOps", ecco un estratto dal libro Effective DevOps di Jennifer Davis e Katherine Daniels:

Devops è un modo di pensare e un modo di lavorare. È un framework per condividere storie e sviluppare empatia ... [non] non è solo un'altra metodologia di sviluppo software.

Le pratiche [P] possono includere metodi di sviluppo software o funzionalità come l'automazione dell'infrastruttura e la consegna continua, [sebbene] sia molto più della semplice somma di queste parti.

Mentre questi concetti sono correlati e possono essere visti frequentemente in ambienti devops, concentrandosi esclusivamente su di essi manca il quadro più ampio - gli aspetti culturali e interpersonali che danno a devops il suo potere.

In sintesi: un SRE efficace sfrutterà le pratiche DevOps.

-

Anche:

Come faccio a sapere quale gruppo è responsabile di cosa?

La proprietà non dovrebbe essere implicita; comunicare!


17

L'ingegneria dell'affidabilità del sito rientra in operazioni più o meno tradizionali, ma fortemente automatizzate e controllate dalla versione, ciò che viene anche chiamato infrastruttura come codice . È un ruolo verticale ben definito . Nei moderni DevOps questa è la sezione verticale relativa alle operazioni. Puoi avere una squadra di SRE.

DevOps in quanto tale è un cambiamento culturale per un'organizzazione. Oltre alla struttura di gestione verticale, dall'alto verso il basso, crea una connessione orizzontale tra i team lungo i percorsi di consegna del lavoro attraverso le catene del valore . Per un ingegnere si tratta di un ruolo orizzontale vagamente definito che lega diversi team insieme, garantendo che il lavoro passi agevolmente e rapidamente all'interno dell'organizzazione. Non è possibile avere un team di ingegneri DevOps, ovvero un ossimoro , poiché superare i confini del team è una parte cruciale del ruolo.


Qualsiasi collegamento a fonti pertinenti sarebbe eccezionale.
Kenorb,

1

Un altro modo per descrivere le differenze tra Engineering di affidabilità del sito e DevOps è quello di guardare alla spiegazione di Wikipedia di a Site Reliability Engineer, che inizia così:

L'ingegnere dell'affidabilità del sito (SRE) è una descrizione del lavoro fornita agli ingegneri del software incentrata sull'affidabilità, la scalabilità e lo sviluppo dell'infrastruttura di cloud computing, nota come Ingegneria dell'affidabilità del sito (SRE).

Quindi puoi considerare gli SRE come persone coinvolte in Building walls...

Tuttavia, la spiegazione di WikipediaDevOps inizia così:

DevOps ... è un termine usato per riferirsi a una serie di pratiche che enfatizzano la collaborazione e la comunicazione sia degli sviluppatori di software che dei professionisti dell'information technology (IT) mentre automatizzano il processo di consegna del software e i cambiamenti dell'infrastruttura. Mira a stabilire una cultura e un ambiente in cui la costruzione, il test e il rilascio di software possano avvenire rapidamente, frequentemente e in modo più affidabile.

Ciò che non dice è che tutte queste pratiche DevOps sono effettivamente attivate da una domanda dal lato aziendale. Così combinato con la costruzione e il testing (la parte Develop di esso) e il rilascio del software, DevOps riguarda una cultura e un ambiente DDR (= Demand-Develop-Release), che alcune persone potrebbero ricordare da questi 9 secondi di un discorso storico a Tear down this wall.

Fare riferimento alla domanda su Breve interruzione programmata per mercoledì 3 maggio 2017 alle 20:00 US / Eastern (come un'esercitazione antincendio per computer) per un esempio di tutti i siti SE ... pubblicati (firmati) da un utente con titolo di lavoro SRE Manager , Stack Overflow, Inc.


Non seguo l'argomento secondo cui SRE comporta la costruzione di muri. Da dove lo prendi?
Xiong Chiamiov,

Inoltre, Tom Limoncelli è noto per molto di più che lavorare semplicemente con Stack Exchange.
Xiong Chiamiov,
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.