Share via


Considerazioni su DevOps

Questo articolo fornisce considerazioni e consigli per DevOps nelle zone di destinazione di Azure.

Informazioni su DevOps

DevOps è l'unione di persone, processi e tecnologia che offre valore continuo per lo sviluppo (sviluppo) e le operazioni (operazioni). L'approccio DevOps incoraggia la collaborazione del team che crea processi ripetibili per aiutare le organizzazioni a operare in modo efficiente e su larga scala.

Nel contesto delle zone di destinazione di Azure, DevOps diventa il framework che guida il team (o i team) responsabili dell'intera gestione del ciclo di vita delle zone di destinazione di Azure in aree come:

  • Come auto-organizzare e definire i limiti con altri team per ottenere l'equilibrio appropriato tra autonomia e governance
  • Come evolvere continuamente la progettazione dell'architettura della zona di destinazione di Azure (legge di Conway)
  • Come pianificare, classificare in ordine di priorità e scorrere l'implementazione dell'architettura progettata
  • Come implementare il controllo della versione, l'integrazione continua e la distribuzione continua per il codice della zona di destinazione di Azure
  • Come operare e rispondere agli eventi imprevisti per sistemi e piattaforme di cui si è proprietari
  • Livello di automazione applicabile al provisioning e alla riparazione automatica della zona di destinazione di Azure
  • Come collaborare con altri team dell'organizzazione in modo agile e orientato ai risultati
  • Come creare una cultura generativa di sicurezza, qualità, centrità utente e apprendimento continuo

Le decisioni prese durante la revisione dei modelli operativi cloud possono influire sull'uso del framework DevOps.

Considerazioni sulla progettazione di DevOps

  • Definire il framework DevOps o allinearlo alla strategia di adozione del cloud e devOps dell'organizzazione. Includere la definizione di DevOps e i principi e le procedure che il team deve seguire. Assicurarsi di connettere la strategia DevOps alla strategia aziendale.

  • Definire le metriche che consentono al team di migliorare le prestazioni di DevOps. I team ad alte prestazioni usano un'ipotesi per testare le proprie idee, misurarla per vedere come funziona l'ipotesi, quindi apportare modifiche in base alle esigenze. La finalità finale di DevOps consiste nel migliorare aspetti come la frequenza di distribuzione, il tempo medio per applicare una modifica o il tempo necessario per ripristinare un servizio danneggiato. È necessario progettare tutte queste metriche per influire sulle prestazioni aziendali complessive.

  • Determinare le procedure DevOps che il team deve implementare prima in base alle competenze correnti e progettare una roadmap per applicare in modo incrementale nuove procedure che consentono al team di migliorare le metriche DevOps. L’investimento in capacità e risorse di progettazione è fondamentale.

  • Determinare la toolchain DevOps che il team deve usare per implementare le procedure DevOps. Assicurarsi che gli strumenti siano coerenti con la strategia DevOps complessiva per evitare scenari di ecosistemi DevOps eterogenei che aumentano la complessità delle distribuzioni della zona di destinazione di Azure o dei carichi di lavoro.

  • Valutare l'effetto delle procedure DevOps implementate e degli strumenti DevOps nella progettazione delle zone di destinazione di Azure.

  • Creare un piano di preparazione per incrementare continuamente le competenze del team. L'applicazione coperta di un modello DevOps non stabilisce immediatamente team DevOps in grado di supportare.

  • Determinare la topologia del team più adatta alla strategia DevOps dell'organizzazione e al modello operativo cloud e stabilire limiti, responsabilità e dipendenze chiari tra i team.

  • Determinare in che modo il team responsabile delle zone di destinazione di Azure deve collaborare con altri team dell'organizzazione per acquisire nuovi requisiti della zona di destinazione di Azure per aggiornare la progettazione e l'implementazione, risolvere gli eventi imprevisti, ridurre al minimo le dipendenze e allinearsi alle priorità aziendali.

Raccomandazioni per DevOps

Le sezioni seguenti contengono raccomandazioni che consentono di implementare il framework DevOps all'interno dell'organizzazione.

Definire il framework DevOps

Per stabilire il framework DevOps, è consigliabile usare i framework già disponibili per iniziare con un set di procedure comprovate predefinite:

Definire le procedure DevOps per la gestione delle zone di destinazione di Azure

Prendere in considerazione le procedure DevOps seguenti per le zone di destinazione di Azure:

Pianificare il percorso di implementazione di DevOps

Definire e allineare il percorso di implementazione di DevOps al piano di adozione del cloud dell'organizzazione.

Implementare le metriche DevOps desiderate

Identificare le metriche che verranno usate per misurare le prestazioni di DevOps del team. Usare le metriche per guidare le abitudini desiderate nel team che si connettono ai risultati aziendali. Definire le metriche per consentire al team di misurare l'impatto sulle attività. Rendere visibili le metriche chiave a tutti, poiché la trasparenza promuove l'attendibilità e determina l'allineamento con gli obiettivi dell'organizzazione.

Esempi di metriche che misurano le prestazioni di DevOps per migliorare l'impatto aziendale includono:

  • Risultati aziendali:

    • Usare obiettivi e risultati chiave come strumento per allontanare i team da una mentalità "output" e verso una mentalità "risultato". Ad esempio, è possibile usare il numero di carichi di lavoro che hanno migliorato la classificazione di conformità rispetto al numero di criteri distribuiti in Azure.
    • Soddisfazione dell'utente finale o del cliente. Alcuni esempi includono Net Promoter Score (NPS), sondaggi, interviste.
    • Crescita aziendale. Alcuni esempi includono un aumento della redditività, un aumento dei ricavi e l'acquisizione di nuove fonti di ricavi.
    • Persone metriche. Gli esempi includono employee net promoter score (eNPS), utilizzo, conservazione e soddisfazione.
    • Costi. Ad esempio, è possibile usare una riduzione dei costi.
  • Prestazioni di recapito software:

    • Lead Time for Change, il tempo necessario per una correzione di bug, una nuova funzionalità o qualsiasi altra modifica per passare dall'idea alla distribuzione all'ambiente di produzione.
    • Frequenza di distribuzione, le distribuzioni al giorno delle modifiche al codice apportate all'ambiente di produzione.
    • Tempo medio di ripristino, il tempo necessario per ripristinare il servizio nell'ambiente di produzione dopo che si è verificato un evento imprevisto.
    • Modifica percentuale errori, percentuale di modifiche apportate all'ambiente di produzione (ad esempio modifiche alla configurazione) che causano un errore.
  • Qualità:

    • Tasso di escape dei difetti, numero di difetti identificati dagli utenti finali.
    • Lavoro o rielaborazione non pianificati, percentuale di tempo impiegato per eseguire operazioni o rielaborazioni non pianificate.
    • Bug attivi, numero di bug che non sono ancora stati corretti.
    • Integrità del codice, percentuale di codice che non è stata sottoposta a unit test.

Definire l'ecosistema tecnologico DevOps

La toolchain DevOps che si sceglie di gestire il ciclo di vita delle zone di destinazione di Azure influisce su:

  • Strategie per l'implementazione di principi e procedure DevOps
  • Considerazioni sulla sicurezza per il ciclo di vita di DevOps
  • Progettazione complessiva dell'architettura della gestione del ciclo di vita delle zone di destinazione di Azure

Usare il framework DevOps definito in precedenza per identificare gli strumenti da usare per ognuno dei processi DevOps. Scegliere le tecnologie DevOps più adatte alle esigenze dei team, ma trovare un equilibrio che consente di ottenere la standardizzazione all'interno dell'organizzazione, ma evitare troppe complessità o eterogeneità negli ecosistemi DevOps.

Esempi di tecnologie DevOps in diverse fasi di DevOps includono:

  • Pianificazione: Azure Boards, GitHub, Atlassian Jira, Trello
  • Integrazione continua: Azure Repos, GitHub Repos, Atlassian Bitbucket, SonarQube, Selenio, Cetriolo, OWASP ZA, NuGet, npm
  • Recapito continuo: Azure Pipelines, GitHub Actions, Bicep, Terraform, Jenkins, Atlassian Bamboo, RedHat Ansible, Chef, Puppet
  • Operazioni: Monitoraggio di Azure, Automazione di Azure, Microsoft Power BI, Grafana, Splunk
  • Collaborazione e feedback: Wiki di Azure DevOps, Wiki di GitHub, Discussioni gitHub, Microsoft Teams, Slack, Confluence, Stack Overflow

Il diagramma seguente illustra un esempio di framework DevOps con la selezione di toolchain di Azure DevOps:

Diagramma del framework DevOps con la selezione toolchain di Azure DevOps.

Il diagramma seguente illustra un esempio di framework DevOps con la selezione di Toolchain di Azure DevOps e GitHub:

Diagramma del framework DevOps con la selezione di Toolchain di Azure DevOps e GitHub.