CC

Guida ufficiale all'esame AZ-400

Formato dell'esame, domini e suggerimenti per la preparazione

AZ-400: Guida allo studio per la progettazione e l'implementazione di soluzioni Microsoft DevOps

Panoramica dell'esame

  • Certificazione: Microsoft DevOps Engineer Expert
  • Codice esame: AZ-400
  • Pubblico di riferimento: ingegneri DevOps, sviluppatori e amministratori di infrastrutture
  • Esperienza richiesta: esperienza sia con l'amministrazione di Azure che con lo sviluppo, oltre a GitHub e Azure DevOps

Prerequisiti

  • Una delle seguenti certificazioni di livello associato:
    • Azure Administrator Associate (AZ-104)
    • Azure Developer Associate (AZ-204)

Competenze valutate (al 26 luglio 2024)

1. Progettare e implementare processi e comunicazioni (10-15%)

Progettare e implementare la tracciabilità e il flusso del lavoro

  • Progettare e implementare una struttura per il flusso di lavoro (GitHub Flow)
  • Progettare e implementare una strategia per i cicli di feedback (notifiche, problemi GitHub)
  • Progettare e implementare l'integrazione per il tracciamento del lavoro (progetti GitHub, Azure Boards, repository)
  • Progettare e implementare la tracciabilità del codice sorgente, dei bug e della qualità

Progettare e implementare metriche e query appropriate per DevOps

  • Progettare e implementare un dashboard (tempi del ciclo, tempo di ripristino, lead time)
  • Metriche appropriate per la pianificazione del progetto
  • Metriche appropriate per lo sviluppo
  • Metriche appropriate per i test
  • Metriche appropriate per la sicurezza
  • Metriche appropriate per la distribuzione
  • Metriche appropriate per le operazioni

Configurare la collaborazione e la comunicazione

  • Documentare i progetti utilizzando wiki e diagrammi di processo (Markdown e Mermaid)
  • Configurare la documentazione di rilascio e la documentazione delle API
  • Automatizzare la creazione della documentazione dalla cronologia di Git
  • Configurare l'integrazione dei webhook
  • Configurare l'integrazione tra Azure Boards e repository GitHub
  • Configurare l'integrazione con Microsoft Teams

2. Progettare e implementare una strategia di controllo del codice sorgente (10-15%)

Progettare e implementare strategie di branching

  • Progettare una strategia di branching (basata sul tronco, branch di funzionalità, branch di rilascio)
  • Implementare il flusso di lavoro delle richieste pull utilizzando criteri e protezioni per i branch
  • Implementare restrizioni di fusione dei branch

Configurare e gestire i repository

  • Strategia per la gestione di file di grandi dimensioni (Git LFS, git-fat)
  • Strategia per ridimensionare e ottimizzare i repository Git (Scalar, condivisione tra repository)
  • Configurare le autorizzazioni nel controllo del codice sorgente
  • Configurare i tag per organizzare il repository
  • Recuperare dati specifici utilizzando comandi Git
  • Rimuovere dati specifici dal controllo del codice sorgente

3. Progettare e implementare pipeline di compilazione e rilascio (50-55%)

Progettare e implementare una strategia di gestione dei pacchetti

  • Consigliare strumenti di gestione dei pacchetti (GitHub Packages, Azure Artifacts)
  • Progettare feed e visualizzazioni di pacchetti per pacchetti locali e upstream
  • Implementare una strategia di versioning delle dipendenze (SemVer, CalVer)
  • Implementare una strategia di versioning per gli artifact di pipeline

Progettare e implementare una strategia di test per le pipeline

  • Progettare e implementare controlli di qualità e di rilascio
  • Progettare una strategia di test completa (locale, unitario, integrazione, test di carico)
  • Implementare test nella pipeline (attività di test, agenti di test, risultati dei test)
  • Implementare l'analisi della copertura del codice

Progettare e implementare pipeline

  • Selezionare una soluzione di automazione delle distribuzioni (GitHub Actions, Azure Pipelines)
  • Progettare l'infrastruttura di GitHub runner o agenti Azure DevOps
  • Integrare repository GitHub con Azure Pipelines
  • Sviluppare regole di attivazione della pipeline
  • Sviluppare pipeline utilizzando YAML
  • Progettare una strategia per l'ordine di esecuzione dei processi (parallelismo, più fasi)
  • Sviluppare scenari di pipeline complessi (ibridi, modelli di VM, runner self-hosted)
  • Creare elementi pipeline riutilizzabili (modelli YAML, gruppi di attività, variabili)
  • Progettare controlli e approvazioni utilizzando gli ambienti YAML

Progettare e implementare le distribuzioni

  • Progettare la strategia di distribuzione (blue-green, canary, ring, esposizione progressiva, feature flags, test A/B)
  • Garantire che le distribuzioni dipendenti siano ordinate in modo affidabile
  • Ridurre al minimo i tempi di inattività (VIP swap, bilanciamento del carico, distribuzioni rolling, slot di distribuzione)
  • Progettare un piano di risoluzione rapida
  • Implementare una strategia di resilienza per la distribuzione
  • Implementare feature flags utilizzando Azure App Configuration
  • Implementare la distribuzione delle applicazioni (container, binari, script)
  • Implementare la distribuzione con attività del database

Progettare e implementare Infrastructure as Code (IaC)

  • Consigliare una tecnologia di gestione della configurazione
  • Implementare una strategia di gestione della configurazione
  • Definire una strategia IaC (controllo del codice sorgente, automazione dei test e della distribuzione)
  • Implementare la configurazione dello stato desiderato (Azure Automation, ARM, Bicep, Automanage)
  • Implementare gli ambienti di distribuzione di Azure

Mantenere le pipeline

  • Monitorare l'integrità della pipeline (tasso di errore, durata, test instabili)
  • Ottimizzare la pipeline per costo, tempo, prestazioni, affidabilità
  • Ottimizzare la concorrenza della pipeline
  • Progettare una strategia di conservazione per artifact e dipendenze
  • Migrare le pipeline dal formato classico a YAML

4. Sviluppare un piano di sicurezza e conformità (10-15%)

Progettare e implementare autenticazione e autorizzazione

  • Scegliere tra Service Principal e Managed Identity
  • Implementare l'autenticazione GitHub (GitHub Apps, GITHUB_TOKEN, PAT)
  • Implementare connessioni di servizio e PAT di Azure DevOps
  • Progettare autorizzazioni e ruoli in GitHub
  • Progettare autorizzazioni e gruppi di sicurezza in Azure DevOps
  • Configurare i livelli di accesso appropriati
  • Configurare progetti e team in Azure DevOps

Progettare e implementare una strategia per la gestione delle informazioni riservate

  • Implementare segreti, chiavi, certificati utilizzando Azure Key Vault
  • Implementare segreti in GitHub Actions e Azure Pipelines
  • Gestire file sensibili durante la distribuzione (file protetti)
  • Progettare pipeline per prevenire la perdita di informazioni riservate

Automatizzare analisi di sicurezza e conformità

  • Progettare una strategia di analisi della sicurezza e della conformità
  • Configurare Microsoft Defender per la sicurezza DevOps di Cloud
  • Configurare GitHub Advanced Security
  • Integrare GitHub Advanced Security con Microsoft Defender
  • Automatizzare l'analisi dei container e l'analisi CodeQL
  • Automatizzare l'analisi utilizzando gli avvisi di Dependabot

5. Implementare una strategia di strumentazione (5-10%)

Configurare il monitoraggio per l'ambiente DevOps

  • Configurare l'integrazione di Azure Monitor e Log Analytics
  • Configurare la raccolta di telemetria (Application Insights, VM Insights, Container Insights, Storage Insights, Network Insights)
  • Configurare il monitoraggio in GitHub (approfondimenti, grafici)
  • Configurare gli avvisi per GitHub Actions e Azure Pipelines

Analizzare le metriche dalla strumentazione

  • Ispezionare gli indicatori di prestazioni dell'infrastruttura (CPU, memoria, disco, rete)
  • Analizzare le metriche utilizzando la telemetria raccolta
  • Ispezionare il tracciamento distribuito utilizzando Application Insights
  • Interrogare i log utilizzando query KQL di base

Dettagli dell'esame

  • Punteggio di superamento: 700
  • Formato delle domande: case study, scelta multipla, trascinamento e rilascio
  • Durata dell'esame: 120 minuti (150 minuti per non madrelingua inglese)
  • Lingue disponibili: più lingue tra cui inglese, giapponese, cinese, coreano, tedesco, francese, spagnolo, portoghese, italiano
  • Costo dell'esame: $165 USD (varia per regione)

Tecnologie chiave da padroneggiare

Controllo del codice sorgente

  • Flussi di lavoro e strategie Git
  • GitHub Flow
  • Criteri e protezioni dei branch
  • Flusso di lavoro delle richieste pull
  • Git LFS per file di grandi dimensioni

Piattaforme CI/CD

  • Sintassi YAML di Azure Pipelines
  • Flussi di lavoro GitHub Actions
  • Trigger e condizioni della pipeline
  • Pipeline multi-stage
  • Compilazioni a matrice

Gestione dei pacchetti

  • Azure Artifacts
  • GitHub Packages
  • Feed NuGet, npm, Maven
  • Sorgenti upstream
  • Visualizzazioni e conservazione dei feed

Infrastructure as Code

  • Modelli ARM
  • Bicep
  • Nozioni di base su Terraform
  • Azure CLI/PowerShell
  • Configurazione dello stato desiderato

Strumenti di sicurezza

  • Azure Key Vault
  • GitHub Secrets
  • File protetti
  • Connessioni di servizio
  • Identità gestite

Monitoraggio

  • Application Insights
  • Azure Monitor
  • Log Analytics
  • Query KQL
  • Avvisi e dashboard

Pratiche DevOps

Integrazione continua

  • Automazione della compilazione
  • Test unitari
  • Copertura del codice
  • Analisi del codice statico
  • Pubblicazione di artifact

Distribuzione continua

  • Pipeline di rilascio
  • Promozione degli ambienti
  • Controlli di approvazione
  • Strategie di rollback
  • Toggle delle funzionalità

Strategie di test

  • Piramisde dei test
  • Shift-left testing
  • Automazione dei test
  • Test delle prestazioni
  • Test di sicurezza

Modelli di distribuzione

  • Distribuzioni blue-green
  • Rilasci canary
  • Distribuzioni a ring
  • Rollout progressivi
  • Feature flags

Percorso di certificazione

  • Prerequisiti: AZ-104 o AZ-204 richiesto
  • Rinnovo: richiesto ogni 12 mesi tramite Microsoft Learn
  • Certificazioni correlate:
    • Azure Solutions Architect Expert (con AZ-305)
    • Azure Security Engineer Associate (AZ-500)
    • Certificazioni GitHub

Concetti importanti

Cultura DevOps

  • Collaborazione tra Sviluppo e Operazioni
  • Responsabilità condivise
  • Miglioramento continuo
  • Fallire rapidamente, imparare velocemente
  • Infrastructure as Code

Pianificazione Agile

  • Storie utente ed epic
  • Pianificazione degli sprint
  • Grafici di burndown
  • Tracciamento della velocità
  • Retrospettive

Sicurezza (DevSecOps)

  • Spostare la sicurezza a sinistra
  • Analisi della sicurezza nelle pipeline
  • Analisi delle dipendenze
  • Sicurezza dei container
  • Conformità come codice