Condividi tramite


Automazione della piattaforma e DevOps per l'acceleratore di zona di destinazione servizio app

Questo articolo fornisce considerazioni sulla progettazione e raccomandazioni per l'automazione della piattaforma e DevOps che è possibile applicare quando si usa l'acceleratore di zona di destinazione Servizio app di Azure. L'automazione della piattaforma e DevOps offre opportunità di modernizzare l'approccio alla distribuzione usando l'infrastruttura come codice.

Altre informazioni sull'automazione della piattaforma e sull'area di progettazione DevOps.

Considerazioni relative alla progettazione

Automazione e DevOps sono procedure importanti nello sviluppo software moderno e servizio app è una piattaforma potente per la creazione e la distribuzione di applicazioni Web. Usando le tecniche di automazione e DevOps, è possibile semplificare il flusso di lavoro e migliorare la qualità e l'affidabilità delle applicazioni.

Prendere in considerazione le considerazioni seguenti quando si prepara per qualsiasi distribuzione di servizio app.

  • Comprendere i requisiti e gli obiettivi del progetto in modo da poter determinare gli strumenti e gli approcci più appropriati per l'automazione. Questo passaggio prevede l'identificazione delle attività da automatizzare, ad esempio provisioning dell'infrastruttura, distribuzione del codice e test. Comporta anche l'identificazione degli strumenti e delle tecnologie che verranno usati per implementare l'automazione.

  • Rendere la sicurezza una priorità superiore quando si progetta una pipeline di automazione e CI/CD in servizio app. Le attività di sicurezza possono includere l'implementazione di misure di autenticazione e autorizzazione per proteggere l'accesso alla pipeline e ai relativi componenti. Possono anche includere l'implementazione della crittografia e altre misure di sicurezza per proteggere i dati sensibili.

  • Prendere in considerazione l'integrazione e la distribuzione continua. servizio app supporta l'integrazione e la distribuzione continua da vari sistemi di controllo del codice sorgente, tra cui Azure Repos, GitHub e Bitbucket. È possibile usare questi strumenti per automatizzare il processo di compilazione e distribuzione, assicurandosi che l'app sia sempre aggiornata e disponibile.

  • Prendere in considerazione gli script di automazione. servizio app fornisce numerosi script di automazione, tra cui PowerShell, interfaccia della riga di comando di Azure, Bicep e modelli di Azure Resource Manager (ARM). È possibile usare questi script per automatizzare attività comuni come il provisioning e la scalabilità delle risorse.

  • Valutare se è necessario usare agenti self-hosted. A seconda della configurazione di rete, i servizi app potrebbero non essere disponibili da Internet pubblico. In caso contrario, gli agenti ospitati pubblici non funzioneranno per le distribuzioni. Pianificare l'uso di agenti self-hosted in questi scenari.

  • Adottare una strategia di branching che ti aiuterà a collaborare offrendo anche flessibilità. Mantenere la strategia semplice, usare l'isolamento delle funzionalità di breve durata e consentire modifiche al ramo principale tramite richieste pull con analisi del codice manuale e automatizzata.

  • Assicurarsi che la logica di business sia controllata da unit test nella pipeline di compilazione. Usare i test di integrazione nella pipeline di versione per verificare che tutti i servizi e le risorse funzionino insieme dopo una nuova versione. Controllare gli elementi dell'interfaccia utente più critici usando test automatizzati dell'interfaccia utente. Controllare i requisiti di prestazioni non funzionali usando test di carico tramite strumenti come k6 e JMeter nell'ambiente di staging.

  • Monitorare e gestire la pipeline di automazione e CI/CD. Questo processo può comportare l'implementazione di strumenti di registrazione e monitoraggio per tenere traccia delle prestazioni e dell'integrità della pipeline. Può anche coinvolgere l'implementazione di un processo per la revisione e l'aggiornamento regolare della pipeline per garantire che rimanga efficace ed efficiente.

La chiave per l'automazione della piattaforma e l'implementazione della pipeline CI/CD in servizio app consiste nel pianificare e progettare attentamente la soluzione, tenendo conto delle esigenze e dei requisiti specifici delle applicazioni distribuite. Usando l'approccio appropriato, è possibile creare una piattaforma scalabile, sicura ed efficiente per la distribuzione e la gestione delle applicazioni nel cloud.

Suggerimenti per la progettazione

Tenere presente le procedure consigliate seguenti quando si distribuisce servizio app.

  • Usare Azure DevOps per la pipeline CI/CD. Azure DevOps offre una soluzione completa per automatizzare la compilazione, il test e la distribuzione delle applicazioni.

  • Usare pipeline o azioni per:

    • Ottimizzare i vantaggi delle procedure applicate nel team.
    • Rimuovere gran parte del carico di reinventare i processi.
    • Ottenere stimabilità e informazioni dettagliate sulla qualità e sull'agilità complessiva.
  • Distribuire in anticipo e frequentemente usando pipeline pianificate e basate su trigger. Le pipeline basate su trigger garantiscono che le modifiche vengano sottoposte a convalida corretta. Le pipeline pianificate gestiscono il comportamento negli ambienti in modifica.

  • Separare la distribuzione dell'infrastruttura dalla distribuzione delle applicazioni. L'infrastruttura principale cambia meno di frequente rispetto alle applicazioni. Considerare ogni tipo di distribuzione come un flusso e una pipeline separati.

  • Usare l'infrastruttura come strumenti di codice come arm o modelli Bicep per automatizzare il provisioning e la gestione delle risorse di Azure. È possibile usare modelli ARM e Bicep per definire l'infrastruttura come codice, semplificando il controllo delle versioni, collaborare e automatizzare la distribuzione delle risorse.

  • Archiviare segreti e altri artefatti sensibili nell'archivio segreto pertinente (ad esempio i segreti di Azure Key Vault o GitHub). Consentire azioni e altre parti del flusso di lavoro di leggerle in base alle esigenze.

  • Cercare di ottimizzare la concorrenza della distribuzione evitando la configurazione e le impostazioni hardcoded.

  • Implementare la sicurezza a sinistra del turno , inclusi gli strumenti di analisi delle vulnerabilità e segreti, ad esempio scanner di contenitori, all'inizio della pipeline.

  • Configurare una strategia di distribuzione che implementa i principi delle distribuzioni blu/verde o canary per ridurre al minimo i tempi di inattività e ridurre il rischio di errori di distribuzione. In questo modo è possibile implementare gradualmente nuove versioni dell'applicazione in un piccolo subset di utenti prima di implementarlo nell'intera base utente.

  • Usare servizio app slot di distribuzione per implementare una strategia di distribuzione blu/verde. In questo modo è possibile convalidare e testare le distribuzioni in un ambiente di staging prima di distribuirle nell'ambiente di produzione. Questa strategia consente di garantire una distribuzione uniforme e riuscita, convalidare le modifiche dell'applicazione e ridurre al minimo i tempi di inattività.

  • Monitorare e tenere traccia delle prestazioni e della disponibilità delle applicazioni usando Application Insights. Application Insights offre informazioni dettagliate in tempo reale sull'integrità e sull'utilizzo delle applicazioni. Può anche aiutare a diagnosticare e risolvere rapidamente i problemi che si verificano.

  • Implementare strumenti e processi che facilitano la comunicazione e la collaborazione, ad esempio metodologie di sviluppo Agile e strumenti per il rilevamento e la gestione di attività e dipendenze. L'automazione della piattaforma, DevOps e i processi CI/CD si basano su una collaborazione e una comunicazione efficaci tra i membri del team.

La chiave per l'automazione della piattaforma, DevOps e CI/CD con servizio app consiste nel progettare e implementare processi e sistemi scalabili, sicuri, ben monitorati e collaborativi. Queste raccomandazioni possono aiutare i tecnici IT e cloud a garantire che le app e le API forniscano le migliori prestazioni possibili e l'esperienza utente.