DevOps è limitato alle aziende con prodotti SaaS?


26

Le pratiche che descrivono DevOps, come consegna continua, automazione, ecc. Sono rilevanti per i prodotti che forniscono un servizio continuo, come i prodotti SaaS.

Ad esempio, una società di sviluppo software che realizza progetti per altri clienti potrebbe non essere mai mantenuta dopo la fine del progetto. E i progetti client non sono condivisi con altri client, perché irrilevanti.

DevOps si applica anche alle aziende che sviluppano più progetti unici? Quali pratiche DevOps si applicano in questo caso, se non del tutto?

Risposte:


32

Assolutamente no!

DevOps si basa sull'eliminazione dei silos (dipartimenti) tradizionali per essere più efficienti.

Una migliore comunicazione tra i team, una migliore visibilità e un processo affidabile e automatizzato sono i modi per ottenere un prodotto migliore.

Lavoravo per una grande azienda di media in cui sostenevamo uno strumento interno e sviluppavamo siti Web rivolti al pubblico.

I vantaggi di DevOps nel nostro caso sono stati i seguenti:

  • Attraverso la costruzione continua, informiamo il team di sviluppo prima piuttosto che dopo se ci sono integrazione o problemi di costruzione con il loro codice. Possono risolvere i problemi mentre la loro mente è ancora sul pezzo di codice che hanno appena impegnato.
  • Tramite test e consegna continui (nel QA), abbiamo consentito al team addetto al QA di individuare i problemi in anticipo e di segnalarli prima. Ciò ha ridotto il tempo necessario per trovare e correggere i bug, nonché ridurre la complessità di queste indagini.
  • Con i nostri strumenti di raccolta e aggregazione dei log, abbiamo dato agli sviluppatori l'accesso a qualcosa che di solito non guardavano (erano molto entusiasti dei debugger :) - capire come i log sono visti e utilizzati da altri team ha migliorato la qualità generale dei log
  • Abbiamo spesso condiviso informazioni e creato documentazione per condividere le conoscenze tra i team, cercando di abbattere i muri. Comprendendo le esigenze di Ops, creiamo alcune guide su ciò che dovrebbe sempre essere tenuto presente quando si avvia il bootstrap di un'applicazione (dove / come gestire le proprietà, ecc.). Comprendendo la realtà del Dev (codifica più funzionalità, più velocemente, gogogogo!) Siamo riusciti a far sì che le operazioni operative creassero server e cluster più adatti alle esigenze del dev.
  • Anche la qualità complessiva delle distribuzioni è stata notevolmente migliorata. Le implementazioni sono state gestite dal nostro team, quindi abbiamo avuto una visibilità perfetta sia su Ops sia su Dev. Ciò ha eliminato molti problemi relativi al "trasferimento di codice" in cui lo sviluppatore avrebbe consegnato un pacchetto e un documento di una pagina alle operazioni dicendo "Installa questo!".

Nel complesso, direi che indipendentemente dal fatto che stai aggiornando il tuo ambiente di produzione una volta al giorno o una volta al mese e indipendentemente dal numero di clienti che hai o dal tuo modello di business, ogni azienda può utilizzare una migliore comunicazione, strumenti migliori, migliore visibilità, feedback più veloce, eccetera.


1
In effetti, DevOps può essere applicato praticamente a qualsiasi organizzazione di sviluppo sw, anche ai grandi prodotti incorporati con solo una manciata di pubblicazioni pubbliche all'anno - utilizzando la consegna continua all'interno della loro pipeline di sviluppo possono ancora ottenere alcuni vantaggi DevOps: migliore qualità, riduzione dei costi, prevedibilità di rilascio, ecc.
Dan Cornilescu,

La risposta ricorda a un SaaS, non spiega davvero in che modo un prodotto o servizio non SaaS può beneficiare di queste pratiche.
Evgeny

I prodotti a cui stavo lavorando non erano SaaS (al contrario). Ma la logica rimane la stessa, non importa molto se sei SaaS o no, DevOps cerca di migliorare il prodotto in modi non tradizionali. Non sapevo nulla del nostro modello di prezzi o offerta, non farebbe molta differenza.
Alexandre

13

Il mio team e io siamo responsabili dello sviluppo di "pezzi unici", prodotti che una volta finiti vengono consegnati al cliente per la manutenzione o in alcuni casi gestiti da noi a pagamento.

Dobbiamo ancora mantenere una solida pipeline di sviluppo per gestire il costante feedback dei nostri clienti al fine di garantire che spediamo loro qualcosa di affidabile e collaudato per funzionare.

Sebbene al cliente non importi di DevOps (nella maggior parte dei casi), è comunque utile per noi. Con DevOps, siamo in grado di inviare rapidamente nuove build, in modo che i clienti possano vedere il feedback in pochi minuti e non ore, e siamo anche in grado di rilevare eventuali errori / bug con i nostri test tramite Jenkins / Travis.

Per garantire che le nostre strategie di implementazione siano le stesse in tutti i progetti, ci concentriamo sulla containerizzazione delle nostre applicazioni. Utilizzando Docker, siamo in grado di distribuire facilmente l'applicazione ai nostri clienti.

Il costo risparmiato da DevOps è difficile da determinare. Abbiamo costi aggiuntivi sotto forma di software che scegliamo di utilizzare per la pipeline (Travis, Jenkins, Puppet, che cosa hai), ma risparmiamo anche tempo e denaro correggendo bug / fornendo rapidamente feedback ai clienti. Il nostro rapido tempo di risposta rende felici i nostri clienti, a loro volta, mantenendo felici i nostri portafogli.


Potete fornire alcune ragioni e vantaggi del perché questo è importante? I clienti si preoccupano davvero della tua pipeline, o solo del progetto finito alla data promessa e del prezzo che devono pagare? Potresti tagliare i costi non facendo tutte queste cose "devops-y"? Potresti dedicare più ore a un progetto senza fare queste cose e ottenere più soldi per i progetti (poiché è più lungo)?
Evgeny

1
@Evgeny DevOps aiuta a completare il progetto in tempo e nel budget per i motivi spiegati nella mia risposta. Tagliando DevOps, taglieresti anche i vantaggi che ho spiegato. Costruire e testare spesso aiuta a rimanere nel budget e nei tempi. Trovare un bug in seguito costa più denaro e richiede più tempo per essere risolto, è stato dimostrato più volte. Al cliente non interessa la pipeline, ma più si attende il suo feedback, più la riscrittura sarà costosa e dispendiosa in termini di tempo.
Alexandre

Non è solo Agile Software Dev?
Evgeny

@Evgeny Ho aggiornato la mia risposta per chiarire. Usiamo Agile, ma ciò non significa che non possiamo avere una mentalità DevOps ..
Turtle

1
@Evgeny potresti probabilmente risparmiarne un po 'non mantenendo i test unitari e i test di collaudo, ma questo crea un debito tecnico che è un anti-schema DevOps. Potresti cavartela per alcune settimane o mesi, ma presto finirai (probabilmente) con un disordine difficile da mantenere che è impossibile testare.
Steve Button

3

Ho lavorato per aziende che producono software come prodotti termoretraibili, come installazioni completamente installate e supportate e come codice incorporato nei dispositivi. In tutte queste aziende, DevOps fornisce un supporto essenziale per lo sviluppo:

  • Build di software automatizzati e riproducibili, con configurazioni note e controllate di compilatori, librerie e altri strumenti di build.
  • Test di sistema automatizzati e ripetibili per test di regressione e per nuovi test di funzionalità.
  • Altre azioni automatizzate e regolari (ad esempio schermate di esempio di aggiornamento continuamente disponibili in tutte le lingue supportate, per i traduttori da verificare e per gli autori tecnici da incorporare nei manuali dell'utente).

In tutti i casi, queste sono cose che i singoli sviluppatori potrebbero fare come una tantum, ma che non sarebbero un buon uso del tempo degli sviluppatori, né avrebbero la stessa sicurezza del controllo di configurazione che hanno le build automatizzate.


L'automazione non è devops. Stessi commenti della risposta di David Bock di seguito alla fine (scusate, il mio commento è stato perso al momento del mio downgrade, l'ho appena notato)
Tensibai

3

Le attività di sviluppo e implementazione di software in precedenza non richiedevano una profonda integrazione tra i reparti. Ma per oggi è necessario cooperare strettamente con tutti i dipartimenti (sviluppo, operazioni IT, controllo qualità, ecc.).

Per gli sviluppatori, il cambiamento è ciò per cui vengono pagati. Le aziende hanno sempre bisogno di cambiamenti per adattarsi al mondo moderno. Questa comprensione spinge gli sviluppatori a produrre il massimo numero possibile di modifiche. I professionisti IT hanno una comprensione diversa, in cui il cambiamento è dannoso. Ognuno di loro pensa che funzioni correttamente, a vantaggio del business. Anzi, se li consideriamo separatamente, hanno entrambi ragione.

Tutti i dipendenti devono capire che fanno parte di un singolo processo. DevOps coltiva il pensiero, il che rende possibile rendersi conto che le decisioni e le azioni personali di tutti dovrebbero essere dirette verso la realizzazione di un unico obiettivo. E il successo dovrebbe essere misurato rispetto all'intero ciclo di sviluppo-consegna e non dal successo dei singoli ruoli. Come risultato della stretta collaborazione tra sviluppatori e specialisti della manutenzione, viene formata una nuova generazione di ingegneri, che prendono i migliori risultati di entrambe le discipline e li combinano a beneficio dell'utente. Ciò si manifesta nella comparsa di team interfunzionali con esperienza nello sviluppo, gestione della configurazione, gestione del database, test e gestione dell'infrastruttura.

Quindi la metodologia è utile non solo in SaaS.


0

Affatto. Mentre ci sono già ottimi esempi su questo thread, mi piacerebbe condividere un mio aneddoto. Nel 2001 ho ereditato un progetto software con una versione che prevedeva la creazione di un CD. La documentazione per il processo di rilascio includeva 40 (!) Passaggi documentati da un ingegnere precedente, che includeva alcune ridicole istruzioni scritte a mano come "apri questo file di configurazione e cambia il nome del file .jar alla riga 41 per includere il numero di versione di la nuova versione ".

Abbiamo automatizzato in modo aggressivo ogni fase di quel processo di costruzione, sostituendo istruzioni scritte a mano come quelle con cose come 'patch' con script bash. Abbiamo anche dovuto aprire i biglietti con il nostro fornitore di strumenti di installazione di terze parti per rendere comprensibili i file dei progetti.

Una volta automatizzato tale processo, abbiamo acquistato un "CD Jukebox". Ogni notte dopo il superamento dei test, la macchina di creazione creava automaticamente un nuovo CD di installazione. I nostri tester potrebbero venire la mattina dopo, prendere un disco e assicurarsi che tutto fosse installabile.

Abbiamo certamente cicli di feedback più stretti quando possiamo distribuire software come servizio, ma si applicano tutti i principi fondamentali di automazione, feedback, tempo di ciclo, piccole versioni, ecc.


Questo è legato all'automazione, ma non è in alcun modo correlato a un'organizzazione devops, non vedo alcun riferimento al team di disciplina del plury da nessuna parte, sto solo automatizzando le cose che ereditano
Tensibai

Questo era il 2001 ... molto prima che DevOps fosse una cosa. Non si trattava solo di automazione, credo che ciò abbia semplificato la gestione del progetto esattamente allo stesso modo che alla fine è stato etichettato come "Cultura" di DevOps. Come tale, è un esempio dell'atteggiamento DevOps al di fuori di un'organizzazione SaaS.
David Bock,

DevOps non riguarda l'automazione, né la gestione dei progetti. Si tratta di rompere l'organizzazione basata su silo alla radice. Mi dispiace di non ritenere che questa risposta sia realmente correlata alla Domanda (questo non significa che sia poco interessante, ma semplicemente non nel posto giusto dell'IMO, e non vedo dove potrebbe effettivamente essere in atto, potrebbe arrivare più tardi)
Tensibai

Proverò ancora una volta a chiarire - facendo tagliare il CD in modo così coerente e rapido, potremmo ottenere feedback dal QA molto più rapidamente di quanto avremmo potuto fare prima. Ciò ha ridotto un silo. Non lo ha eliminato, dato che ci sono voluti un altro anno o due prima che disabilitassimo i feudi attorno a budget centralizzati per le attività, ma di certo è stato un passaggio critico nel processo. Sapevamo anche molto prima quando il processo di rilascio era interrotto. Riconosco molte piccole cose come questa come il mio percorso personale verso DevOps.
David Bock,

Quest'ultimo commento ha più senso a questa risposta sotto questa domanda, dovresti modificare per includerlo, sento ancora che questo non si adatta a questo formato, ma sembra che la mia posizione sia sbagliata quando osservo l'evoluzione complessiva in questa beta privata, quindi ... dipende da te. Non posso rimuovere il mio downvote senza una modifica per informazione
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.