4 suggerimenti DevOps per piccoli team
Pubblicato: 2020-02-08Ti chiedi come distribuire DevOps per piccoli team? DevOps è un settore in crescita di strategia ed esecuzione in aziende di tutte le dimensioni. Accelera il time-to-market, consente implementazioni più rapide e rende più felici sviluppatori, responsabili delle operazioni e clienti.
Parleremo di cos'è DevOps, di come le grandi aziende lo implementano e di quali lezioni e suggerimenti le piccole aziende possono raccogliere e implementare in questo momento.
Che cos'è DevOps?
DevOps è un termine difficile da definire, principalmente perché comprende una serie di pratiche. Fondamentalmente, DevOps è una combinazione di due cose ai fini di una migliore comunicazione: "Dev" sta per "sviluppatori" e "Ops" per operazioni.
DevOps, quindi, è solitamente un gruppo di sviluppatori di codice e gestori di operazioni di sistema che collaborano per abbattere i silos di conoscenza, in sostanza, per assicurarsi che siano sempre sulla stessa pagina quando si tratta di sviluppare e distribuire il codice in modo efficace.
DevOps significa comunicazione efficace tra i reparti. Significa lavorare insieme per creare strategie per un dipartimento che semplifichino la vita all'altro dipartimento. In genere significa anche più automazione del codice, porzioni di codice più piccole, sistemi di controllo del codice sorgente e forse qualche riunione in più.
Ma cosa succede senza DevOps?
Perché è necessario DevOps?
Tradizionalmente, i responsabili delle operazioni gestiscono l'ambiente di produzione, ovvero tutto ciò con cui i clienti e i clienti interagiscono.
Gli sviluppatori, d'altra parte, lavorano dietro le quinte, creando codice nell'ambiente di test, un'area isolata dall'ambiente di produzione. Questo ambiente di sviluppo, idealmente, simula l'ambiente di produzione e il funzionamento del codice o dell'app nel mondo reale.
In pratica, ciò significa che gli sviluppatori scrivono codice nella loro bolla e lo inviano per distribuirlo nell'ambiente di produzione, dove i responsabili delle operazioni devono capire come mantenere tutto funzionante e stabile mentre integrano il nuovo codice. E gli sviluppatori di solito sono troppo occupati con la codifica di nuove funzionalità e i responsabili delle operazioni sono troppo occupati solo nel cercare di far girare ogni piatto, quindi il tempo per la comunicazione e il rinnovamento dell'ambiente è breve.
E sebbene DevOps richieda un po' di tempo per la configurazione e l'avvio, i risultati possono rendere qualsiasi azienda, grande o piccola, più agile e più competitiva.
DevOps presso grandi aziende
DevOps è una schiacciata per le grandi aziende. Con un numero elevato di sviluppatori e una base di codice sufficientemente ampia, lo sviluppo e la distribuzione del codice possono essere una lotta titanica.
Le grandi aziende hanno più clienti. Più clienti significano più server, spesso più funzionalità e più carico sulla rete. Questo crea una base di codice più ampia, il che significa che anche piccole modifiche possono avere un effetto a cascata nell'ambiente. E poiché le grandi aziende cercano spesso di ottenere nuove funzionalità per rimanere competitive sul mercato, hanno bisogno che l'ambiente di sviluppo e l'ambiente di produzione siano in sintonia.
Aziende come Netflix, Amazon e Target hanno adottato DevOps per ottimizzare i propri servizi. L'integrazione del loro ambiente di sviluppo con il loro ambiente di produzione (insieme all'automazione pesante) consente a Netflix e Amazon di distribuire migliaia di volte al giorno .
Amazon utilizza un sistema di distribuzione continua e controllo automatico del codice sorgente per controllare automaticamente le revisioni, sottoponendole al processo di compilazione e test senza interferenze umane.
La NASA utilizza un sistema simile, utilizzando una combinazione del servizio AWS di Amazon e dei sistemi di dati containerizzati per consentire agli specialisti dei dati della NASA di condividere dati e analisi di telemetria con i loro ingegneri a un ritmo costante.
Ma quelle aziende e organizzazioni sono enormi. Come può un piccolo team avvicinarsi a quel livello di organizzazione e automazione? Come funziona DevOps per piccoli team in natura?
Soluzioni DevOps che i piccoli team possono adottare
I piccoli team non hanno la stessa larghezza di banda delle aziende più grandi, sia per quanto riguarda il numero di persone, i reparti e le risorse. Tuttavia, questa finisce per essere un'arma a doppio taglio perché, in generale, i team più piccoli utilizzano già molte soluzioni DevOps. Anche se non è intenzionale.
Tuttavia, ciò non significa che non ci sia lavoro da perdere. Al momento, solo il 25% dell'industria del software sta realizzando DevOps ad alto livello.
E altri strumenti e strategie DevOps possono essere acquisiti da aziende più grandi e impiegati in modo altrettanto efficace.
1. Crea un team DevOps
Se non hai un grande team di sviluppatori, la creazione di un team DevOps autonomo è probabilmente fuori questione. Se hai uno sviluppatore e un responsabile di sistema, o quei ruoli sono ricoperti dalla stessa persona, l'idea di un "team" potrebbe persino sembrare sciocca.
E va bene. Non si tratta necessariamente di creare una sorta di task force, si tratta solo di comunicazione. Anche se hai uno sviluppatore e un responsabile IT, la tua forma di "team" DevOps potrebbe essere una riunione settimanale e aggiornamenti giornalieri asincroni per tenersi reciprocamente informati su ciò che sta accadendo.
Gli obiettivi primari del team dovrebbero essere allineare l'ambiente di sviluppo con l'ambiente di produzione, scrivere (e distribuire) porzioni di codice più piccole più spesso e aumentare l'automazione e il controllo del codice sorgente.
Parliamo di cosa significano queste cose e di come possono essere realizzate.
2. Allineare pratiche e ambienti
Anche i piccoli team possono iniziare ad allineare i propri ambienti offrendo agli sviluppatori un maggiore accesso all'ambiente di produzione, anche solo per monitorare come le revisioni influiscono sul prodotto finale.
Prova a fornire al tuo team di sviluppo un feed in esecuzione dello stato della rete, anche se è solo su un monitor nell'angolo. Possono vedere immediatamente in che modo il codice distribuito potrebbe influire sul traffico o notare se si verifica un calo improvviso che potrebbe essere un grave problema.
Avrai anche bisogno del team DevOps per creare una strategia per rendere l'ambiente di test di sviluppo e l'ambiente di produzione effettivo il più vicino possibile, idealmente identico. Ciò comporterà molte riunioni e un forte progetto di documentazione non solo per mettere in linea gli ambienti, ma anche mantenerli in linea man mano che i cambiamenti si verificano nel tempo.
L'allineamento dei due ambienti significa che il team operativo trascorre meno tempo cercando di adattare il codice degli sviluppatori alle realtà del prodotto finale.
3. Distribuire blocchi di codice più piccoli
Il terzo passo è uscire dalla mentalità del grande aggiornamento. Le revisioni del codice di grandi dimensioni possono richiedere settimane o mesi per essere testate, approvate e distribuite. Ciò rallenta l'implementazione delle funzionalità e generalmente ti rende meno competitivo sul mercato. Ti rende anche meno agile in caso di una nuova, eccitante tendenza o di un problema catastrofico.
Una delle chiavi per espandere DevOps per i piccoli team della tua azienda è entrare nella mentalità di scrivere porzioni di codice più piccole e distribuirle più velocemente. Questi dovrebbero essere abbastanza piccoli da poter essere testati e implementati nel giro di poche ore.
4. Abbracciare l'automazione e il controllo del codice sorgente
Il percorso finale per DevOps di successo per i piccoli team è l'uso massiccio dell'automazione.
Perché l'automazione? Per uno, l'automazione accelera il test e la distribuzione del codice. Inoltre, consente agli sviluppatori e ai responsabili delle operazioni di mettere in atto le strategie DevOps sopra elencate. Questo tempo extra consente anche ai tuoi team di sviluppo e operazioni di concentrarsi su cose che migliorano l'attività invece di spegnere semplicemente gli incendi. E, infine, aumenta l'efficienza e l'accuratezza della documentazione, che hanno entrambi i loro meriti per l'onboarding, l'istruzione e la conformità.
Per prima cosa avrai bisogno di qualcosa che ti aiuti a creare e testare il codice tutto il tempo, in qualsiasi momento. Un'app come Jenkins o Bitrise può aiutare a facilitare l'integrazione e la distribuzione continue.
Quindi, avrai bisogno di una piattaforma di controllo del codice sorgente per tenere traccia e gestire le revisioni nel codice. Piattaforme come GitHub e SourceForge possono aiutarti qui.
Il prossimo passo nella catena sarà un sistema di gestione della configurazione per mantenere la coerenza e la qualità su tutta la linea. Strumenti come Chef o SaltStack sono ottimi punti di partenza.
New Relic crea una piattaforma per osservare tutti i tuoi sistemi ed è estremamente utile per monitorare questo tipo di automazione del codice end-to-end.
Potrebbe anche essere una buona idea esaminare la configurazione dinamica nel caso in cui sia necessario ruotare rapidamente l'intero sistema automatizzato in una nuova direzione.
Implementazione di DevOps per piccoli team e piccole organizzazioni
Non preoccuparti che il tuo team o la tua azienda siano troppo piccoli per implementare efficacemente DevOps. Invece, pensa a questi strumenti come a un tavolo da buffet da cui puoi trarre idee organizzative.
Nessuna organizzazione, indipendentemente dalle sue dimensioni, sarà danneggiata da una maggiore comunicazione, una maggiore responsabilità e un monitoraggio delle revisioni più ampio e dettagliato.