Condividi tramite


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 tecnologie che offrono valore continuo allo sviluppo (sviluppo) e alle operazioni (operazioni). L'approccio DevOps incoraggia la collaborazione in 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 organizzare e definire i limiti con altri team per raggiungere 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à ed eseguire l'iterazione dell'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
  • Il livello di automazione applicato 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 devOps e di adozione del cloud 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.

  • Stabilire 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. Lo scopo 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 aumentando la complessità delle distribuzioni della zona di destinazione o dei carichi di lavoro di Azure.

  • Valutare l'effetto che le procedure DevOps implementate e gli strumenti DevOps hanno sulla progettazione delle zone di destinazione di Azure.

  • Creare un piano di preparazione per aumentare 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 di 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.

  • Determinare la posizione attuale del team nelle aree seguenti:
  • Usare il piano di adozione del cloud dell'organizzazione per definire un modello desiderato per il team.
  • Stabilire una roadmap iterativa per implementare il modello desiderato in modalità iterativa e incrementale allineata alla sequenza temporale di trasformazione 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. Stabilire le metriche per consentire al team di misurare l'impatto sulle attività. Rendere visibili a tutti le metriche chiave, poiché la trasparenza promuove l'attendibilità e guida 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 del cliente o dell'utente finale. Gli esempi includono Net Promotor 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 il Punteggio eNPS (Employee Net Promotor Score), l'utilizzo, la conservazione e la soddisfazione.
    • Costi. Ad esempio, è possibile usare una riduzione dei costi.
  • Prestazioni di distribuzione del 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 del codice cambiano nell'ambiente di produzione.
    • Tempo medio di ripristino, tempo necessario per ripristinare il servizio nell'ambiente di produzione dopo che si verifica 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 non pianificato o rielaborazione, percentuale di tempo impiegato per eseguire operazioni non pianificate o rielaborazioni.
    • Bug attivi, il numero di bug che non sono ancora stati corretti.
    • Integrità del codice, percentuale di codice non sottoposta a unit test.

Definire l'ecosistema di tecnologie DevOps

La toolchain DevOps scelta per 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 nell'intera organizzazione, evitando tuttavia troppe complessità o eterogeneità negli ecosistemi DevOps.

Esempi di tecnologie DevOps in diverse fasi di DevOps includono:

  • Pianificazione: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
  • Integrazione continua (CI) e test: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Cetriolo, SonarSource SonarQube, Zed Attack Proxy
  • Recapito continuo (CD): Atlassian Bamboo, Azure Pipelines, GitHub Actions, Jenkins, Octopus Deploy, Perforce Puppet, RedHat Ansible
    • Infrastruttura come codice: Bicep, Pulumi, Terraform
    • Bootstrapping: ArgoCD GitOps, Flux GitOps, Progress Chef, PowerShell Desired State Configuration (DSC)
  • Operazioni: Automazione di Azure, Monitoraggio di Azure, CISCO Splunk, Grafana, Microsoft Power BI
  • Collaborazione e feedback: Atlassian Confluence, wiki di Azure DevOps, discussioni su GitHub, wiki di GitHub, Microsoft Teams, Slack, Stack Overflow

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

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

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

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

Passaggio successivo