implementazione di riferimento

.NET Core CI/CD in AWS

Implementa una pipeline dell'applicazione .NET Core automatizzata

Questa soluzione fornisce un ambiente di integrazione e distribuzione continue (CI/CD) automatizzato nel cloud Amazon Web Services (AWS). Questa soluzione è stata messa a punto per gli sviluppatori che desiderano implementare una pipeline CI/CD per le loro applicazioni .NET Core.

L'ambiente .NET Core CI/CD gestisce gli aggiornamenti dell'applicazione tramite AWS CodePipeline, AWS CodeBuild e AWS CodeDeploy. Per trovare gli aggiornamenti, la pipeline CI/CD interroga un repository GitHub. Qualunque codice venga modificato nel ramo del repository configurato, la pipeline recupera la versione più recente del codice sorgente e compila automaticamente l'applicazione. Quindi, implementa l'applicazione in un ambiente AWS Elastic Beanstalk utilizzando Amazon Linux 2.

Grazie a questa implementazione scalabile, funzioni e aggiornamenti vengono implementati in modo più rapido e sicuro. Non è necessario gestire alcun server di sviluppo e si paga solo per ciò che effettivamente si utilizza.

Questa soluzione è stata sviluppata da AWS.

  •  Attività che realizzerai
  • Questa soluzione configura quanto segue:

    • Un bucket Amazon Simple Storage Service (Amazon S3) in cui raccogliere gli artefatti.
    • Un ambiente Elastic Beanstalk che funge da destinazione quando si implementa la versione più recente del pacchetto compilato dell'applicazione.
    • Una pipeline CI/CD con fasi di origine, compilazione e implementazione.

    La fase di origine richiama CodePipeline ogni volta che il codice cambia nel ramo del repository GitHub. In questa fase viene configurato GitHub, che integra il codice sorgente dell'applicazione tramite webhook. Quindi recupera il codice GitHub più recente e lo colloca in un bucket S3 nella directory Source Artifacts.

    La fase di compilazione richiama CodeBuild, che recupera il codice sorgente dal bucket S3. L'immagine Amazon Linux 2 Docker fornita da CodeBuild per .NET Core compila la versione più recente del codice sorgente utilizzando le fasi fornite nel file BuildSpec.yml associato. Il risultante pacchetto di compilazione viene collocato nella directory Build Artifacts nel bucket S3.

    La fase di implementazione richiama CodeDeploy per recuperare il pacchetto di compilazione dal bucket S3 e implementarlo nell'ambiente Elastic Beanstalk.

  •  Come effettuare l'implementazione
  • Per implementare .NET Core CI/CD, segui le istruzioni contenute nella guida all'implementazione. Il processo di implementazione richiede circa 10 minuti e comprende le seguenti fasi:

    1. Se non disponi ancora di un account AWS, registrati su https://aws.amazon.com e accedi al tuo account.
    2. Avvia la soluzione.
    3. Effettua il test dell'implementazione avviando una pipeline CI/CD. Puoi utilizzare l'applicazione esempio inclusa nella soluzione.

    Amazon può condividere informazioni relative all'implementazione con il Partner AWS che ha collaborato con AWS a questa soluzione.  

  •  Costi e licenze
  • La soluzione non prevede requisiti di licenza.

    Verranno addebitati i costi dei servizi AWS e di qualsiasi licenza di terze parti utilizzati per eseguire questa soluzione. Non sono previsti costi aggiuntivi per l'utilizzo della soluzione.

    Questa soluzione include alcuni parametri di configurazione personalizzabili. Alcune di queste impostazioni, ad esempio il tipo di istanza, incideranno sul costo dell'implementazione. Per una stima dei costi di ogni servizio AWS utilizzato, consulta la pagina dei prezzi. I prezzi sono soggetti a modifiche.

    Suggerimento: dopo l'implementazione della soluzione, crea report di costi e utilizzo di AWS per monitorare i costi associati. Questi report forniscono i parametri di fatturazione a un bucket Amazon Simple Storage Service (Amazon S3) nel tuo account. Inoltre, essi forniscono i costi stimati in base al consumo con cadenza mensile e aggregano i dati alla fine del mese. Per ulteriori informazioni, consulta Che cosa sono i report di costi e utilizzo AWS?