Ho praticato e fornito consulenza su DevOps come consulente con diversi clienti da quasi cinque anni ormai, prima della mia attuale posizione, ho ricoperto ruoli nello sviluppo di software, operazioni web e amministrazione di sistemi. Nella mia esperienza personale DevOps è disponibile in molti gusti.
Modelli di organizzazione
DevOps Antipatterns:
NoOps e NoDevs - non strettamente DevOps nel senso più stretto, tuttavia, questi team creano e gestiscono software senza una linea di demarcazione tra Sviluppo e Operazioni. Le sfide con questi team scendono alla maturità, i team di sviluppo possono essere sviluppatori di software esperti ma operatori alle prime armi e viceversa.
DevOps Bridge : è qui che uno o più team hanno la responsabilità di prendere il lavoro dei team di sviluppo e di " produrlo " per renderlo operativo. La sfida giunge ora a due distinzioni, vale a dire Sviluppo → DevOps e DevOps → Operazioni.
Il team DevOps - questo può, probabilmente, funzionare se il team ha la responsabilità di costruire strumenti che supportano il modello operativo abilitato DevOps, tuttavia, dovrebbe probabilmente essere chiamato "Team di strumenti" o "Team di piattaforma".
Modelli DevOps:
DevOps integrati - più comunemente denominati Platform Engineering, in base al quale c'è qualcuno all'interno del team che è responsabile ma non è responsabile della fornitura di automazione, strumenti e infrastrutture per il provisioning e la distribuzione della soluzione, a volte anche con il funzionamento del software - nella mia mente , è quest'ultimo che in realtà è rappresentativo di DevOps.
DevOps istituzionalizzati - in cui un team di progetto è responsabile sia dello sviluppo che del funzionamento di un pacchetto software che crea proprietà condivise e cicli di feedback positivi.
pratiche
La pratica effettiva di DevOps si basa su molte altre pratiche, vale a dire:
Ognuna delle pratiche di cui sopra si basa sull'altra, è possibile non seguire una pratica, tuttavia significa che manca un ciclo di feedback importante che potrebbe essere indicativo di una "opportunità mancata". Il principale fattore di differenziazione tra seguire una qualsiasi delle altre pratiche e DevOps è il funzionamento del software in produzione .
I tre modi
Nel progetto Phoenix, Gene Kim e i suoi coautori descrivono i tre modi di DevOps :
Sistemi di pensiero
The First Way enfatizza le prestazioni dell'intero sistema, in contrapposizione alle prestazioni di un determinato silo di lavoro o di reparto: questa può essere una divisione grande (ad es. Sviluppo o Operazioni IT) o piccola come un singolo contributore (ad es. , uno sviluppatore, amministratore di sistema).
Nella mia esperienza, iniziare a convincere gli sviluppatori a considerare le preoccupazioni operative e i requisiti non funzionali raggiunge questo obiettivo. Questo fa molto parte degli aspetti culturali di DevOps.
Amplificazione dei circuiti di retroazione
Il secondo modo riguarda la creazione di loop di feedback da destra a sinistra. L'obiettivo di quasi tutte le iniziative di miglioramento del processo è abbreviare e amplificare i circuiti di feedback in modo da poter apportare continuamente le correzioni necessarie.
In genere ottengo questo risultato attraverso l'integrazione / consegna continua / distribuzione e il monitoraggio e gli avvisi condivisi, quindi si adatta perfettamente al componente strumenti di DevOps.
Cultura della sperimentazione e dell'apprendimento continui
La terza via riguarda la creazione di una cultura che promuova due cose: la sperimentazione continua, l'assunzione di rischi e l'apprendimento dal fallimento; e capire che la ripetizione e la pratica sono il prerequisito per la padronanza.
Questo si adatta molto allo spazio culturale , sebbene dipenda fortemente dagli strumenti e dai processi per consentire alla cultura di crescere.