Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione delle applicazioni .NET
La migrazione delle applicazioni.NET AWS consente di creare carichi di lavoro ad alta disponibilità con funzionalità di scalabilità elastiche, ridurre il sovraccarico operativo e aumentare l'agilità aziendale concentrandosi sul valore distintivo.
Questa sezione si concentra sulle diverse opzioni su cui ospitare le applicazioni.NET. AWSÈ possibile scegliere tra l'utilizzo di una macchina virtuale, una soluzione gestita come AWS Elastic Beanstalk
Valutazione
La scelta di un percorso di migrazione per il carico di lavoro .NET si basa sui seguenti fattori chiave:
-
Individua la versione .NET in uso: Microsoft supporta due diverse implementazioni .NET: .NET Framework (1.0-4.8) e .NET (.NET Core 1.0-3.1 e .NET 5 e versioni successive). Le due versioni hanno molti componenti in comune e possono eseguire codice applicativo scritto nei diversi linguaggi di programmazione .NET (come C#, F# e VB.NET). La scelta della strategia di migrazione e del servizio di hosting dipende dal runtime utilizzato poiché .NET Framework viene eseguito su Windows mentre il nuovo .NET è multipiattaforma. Per .NET Framework, è possibile eseguire l'hosting su un sistema operativo Windows o rifattorizzare il codice per utilizzare il nuovo .NET. Il nuovo .NET può anche essere ospitato su servizi basati su sistema operativo Linux. Per modernizzare i carichi di lavoro basati su .NET Framework, è possibile utilizzare Porting Assistant per .NET
o AWS Toolkit for .NET Refactoring per scansionare il codice e generare un report di valutazione della compatibilità. Scoprendo se il progetto APIs fa riferimento a .NET Framework incompatibili, è possibile pianificare la complessità di un progetto di migrazione e decidere se e quando rifattorizzare il codice per utilizzare un runtime più recente. -
Rivedi la distribuzione attuale: verifica se il carico di lavoro attualmente migrato ha CI/CD pipeline esistenti che possono essere aggiornate per distribuire gli stessi carichi di lavoro nel cloud. L'utilizzo di una pipeline di compilazione e implementazione esistente può ridurre il tempo necessario per implementare l'applicazione nel cloud automatizzando i passaggi necessari per creare, configurare e implementare i carichi di lavoro.
-
Rivedi la roadmap: a seconda dello stato attuale del progetto, potresti avere già deciso di riprogettare le tue applicazioni. Ogni iniziativa di modernizzazione dovrebbe tenere in considerazione la roadmap del prodotto. Ad esempio, decisioni come la containerizzazione del codice esistente o la rifattorizzazione di un'architettura monolitica in microservizi rientrano idealmente nella roadmap del prodotto e sono in linea con altre iniziative di sviluppo.
Mobilitazione
Esistono tre diversi percorsi di migrazione da considerare durante la migrazione dei carichi di lavoro.NET verso. AWS Puoi scegliere tra le diverse opzioni in base alla complessità della base di codice esistente, al tempo allocato per la migrazione e alla dimensione del team incaricato di supportare l'iniziativa di migrazione. Quando si considera la modernizzazione come parte della migrazione, è consigliabile allinearsi alla roadmap del prodotto.
-
Rehosting (lift & shift): puoi scegliere questo approccio se la tua priorità è una migrazione più rapida a AWS con modifiche minime o nulle. Puoi reospitare siti Web basati su ASP.NET su Internet Information Services (IIS) in esecuzione su istanze Amazon. EC2 Puoi reospitare le tue applicazioni basate su desktop (come Windows Presentation Foundation, Web Forms e.NET MAUI) su una delle piattaforme di elaborazione per utenti finali come Amazon 2.0 AppStream
o Amazon. WorkSpaces -
Ridefinizione della piattaforma: la ridefinizione della piattaforma è la soluzione ideale quando si desidera ospitare l'applicazione utilizzando un servizio gestito senza apportare modifiche al codice e al contempo ridurre il sovraccarico operativo per attività di gestione indifferenziate per installazioni, applicazione delle patch, aggiornamenti e istanze. Questa strategia è indicata anche per i team che desiderano passare a carichi di lavoro basati su container. Puoi ripiattaforma le tue applicazioni esistenti su Elastic Beanstalk o
utilizzare contenitori Docker ospitati su Amazon ECS, Amazon EKS o. AWS App Runner -
Refactor: scegli questo approccio se puoi investire tempo e impegno nell'apportare modifiche al codice e all'architettura che riducano il sovraccarico operativo e ottengano una migliore scalabilità, alta disponibilità e disaster recovery utilizzando servizi nativi del cloud. AWS La rifattorizzazione prevede la modernizzazione della base di codice mediante il porting delle applicazioni .NET Framework esistenti su .NET (precedentemente .NET Core) o la modernizzazione del codice stesso per migliorarne l'esecuzione nel cloud. Puoi utilizzarlo AWS SDK per .NET
per richiamare molti servizi AWS cloud dall'interno del tuo codice.NET. Strumenti come Porting Assistant for .NET AWS Microservice Extractor for .NET possono essere utilizzati per trasferire la base di codice da .NET Framework a .NET e suddividere l'applicazione monolitica in microservizi. Effettuando il refactoring dei carichi di lavoro.NET esistenti per l'esecuzione AWS Lambda , è possibile utilizzare l'elaborazione serverless per evitare il provisioning e la gestione dell'infrastruttura.
Migrazione
Le fasi della migrazione dei carichi di lavoro .NET dipendono dal percorso di migrazione scelto durante la fase di valutazione e dal tipo di applicazione.
Rehosting di un'applicazione .NET
Scegli questo percorso di migrazione se desideri migrare la tua applicazione senza apportare modifiche al codice ma desideri trarre vantaggio dal dimensionamento automatico, dal bilanciamento del carico e dall'elasticità del cloud. Per i siti Web basati su Windows, il rehosting in genere significa eseguirli su Internet Information Services (IIS) su. AWS Per le applicazioni basate su desktop, è necessario installare l'applicazione e consentire agli utenti di connettervisi dall'esterno.
Internet Information Services su AWS
Internet Information Services (IIS) è un server web di Microsoft che funziona su un sistema operativo Windows e viene utilizzato per ospitare siti e servizi web. IIS può essere installato su qualsiasi EC2 istanza Amazon che esegue Windows Server. Dopo aver abilitato e configurato IIS, puoi implementare i siti web e i servizi ASP.NET utilizzando lo stesso meccanismo di implementazione utilizzato per gli ambienti on-premise.
Se si ospita IIS su istanze EC2 Windows, è importante seguire il AWS Well-Architected
Hosting di applicazioni desktop su AWS
Molti client hanno la necessità di accedere ad applicazioni thick client basate su Windows. È possibile scegliere tra tre diverse piattaforme:
-
Amazon EC2
: scegli questa opzione se desideri che i tuoi utenti si connettano a un ambiente basato su Windows Server utilizzando Microsoft Remote Desktop. Con questa opzione, l'applicazione delle patch e la manutenzione del sistema operativo rientrano tra le tue responsabilità. È inoltre necessario acquistare licenze di accesso client (RDS CALs) aggiuntive di Remote Desktop Services per gli utenti e Software Assurance (SA) attive . Per ulteriori informazioni, consulta Microsoft Licensing on AWS nella AWS documentazione. -
Amazon WorkSpaces
: scegli questa opzione se hai bisogno di un'infrastruttura desktop virtuale (VDI) completamente gestita per i tuoi utenti. Puoi usarla WorkSpaces per fornire un'esperienza Windows Desktop persistente ai tuoi utenti. È inoltre possibile personalizzare WorkSpaces l'ambiente e installare applicazioni.NET utilizzando un'immagine personalizzata oppure utilizzare AWS Systems Manager per distribuire le applicazioni.NET nei propri WorkSpaces ambienti. Gli utenti possono connettersi utilizzando il proprio browser o il WorkSpacesclient Amazon . -
Amazon AppStream 2.0
: scegli questa opzione per fornire un accesso sicuro, affidabile e scalabile alle applicazioni e ai desktop non persistenti da qualsiasi posizione. È possibile utilizzare la AppStream versione 2.0 per consentire agli utenti di accedere alle applicazioni.NET dal Web. Se disponi già di RDS CALs e di SA attivi, puoi utilizzare tali licenze con la AppStream versione 2.0 utilizzando License Mobility.
Conversione piattaforma
La ridefinizione della piattaforma implica la modifica dell'ambiente di hosting con modifiche minime o nulle al codice. Scegli questa strategia per ridurre il sovraccarico operativo e sfruttare le funzionalità e i servizi del cloud.
AWS Elastic Beanstalk
È possibile utilizzarle AWS Elastic Beanstalk
Per ulteriori informazioni, consulta le seguenti risorse:
-
Creazione e distribuzione di applicazioni.NET su Elastic Beanstalk (documentazione di Elastic Beanstalk)
-
Utilizzo di.NET Core su Linux (documentazione di Elastic Beanstalk)
-
Supporto multiapp con domini personalizzati per.NET e AWS Elastic Beanstalk
(AWS Developer Tools Blog)
Containerizzazione delle applicazioni esistenti
Puoi usare Amazon ECS o Amazon EKS per ospitare le tue applicazioni containerizzate basate su Docker. AWS gestisce entrambi i servizi. La scelta tra i due dipende dalle proprie conoscenze e preferenze. Entrambe le opzioni possono eseguire container basati su Linux o container basati su Windows.
Per ulteriori informazioni, consulta le seguenti risorse:
-
Contenitori Amazon EC2 Windows (documentazione Amazon ECS)
-
Abilitazione del supporto Windows per il cluster Amazon EKS (documentazione Amazon EKS)
-
Esecuzione di contenitori Windows con Amazon ECS su AWS Fargate
(Blog AWS) -
Accelerazione dei tempi di avvio dei container Windows con EC2 Image Builder e Image Cache Strategy
(Blog)AWS -
Avvio rapido: CI/CD per le applicazioni.NET su AWS Fargate(documentazione
)AWS
La containerizzazione delle applicazioni basate su .NET dipende dal runtime .NET utilizzato. Considera i seguenti aspetti:
-
Le applicazioni basate su .NET Framework vengono eseguite su container Windows: l'aggiunta del supporto Docker alle applicazioni esistenti viene effettuata creando un file Docker che delinea le modalità di containerizzazione dell'applicazione. È possibile utilizzarlo AWS App2Container
per containerizzare e migrare facilmente le applicazioni esistenti basate su .NET Framework in. AWS App2Container esegue la scansione del server IIS per determinare i file richiesti ed estrae l'applicazione di destinazione per creare un'immagine Docker. È inoltre possibile utilizzare App2Container per creare gli elementi di distribuzione necessari per ospitare l'applicazione in. Cloud AWS -
.NET o.NET Core: oltre a eseguire nuove applicazioni Web basate su .NET su Amazon ECS o Amazon EKS, puoi anche utilizzare. AWS App Runner
App Runner è una soluzione serverless e completamente gestita che esegue il codice o l'immagine del container e gestisce il bilanciamento del carico, il dimensionamento automatico, la registrazione, i certificati e le reti.
Rifattorizzazione o riprogettazione del codice esistente
Scegli questa opzione se hai una forte necessità aziendale di aggiungere funzionalità, scalabilità o prestazioni altrimenti difficili da ottenere nell'ambiente corrente dell'applicazione. A seconda della roadmap dell'applicazione, si può decidere di modificare il codice per utilizzare il framework più recente o servizi nativi del cloud oppure riprogettarlo per ottimizzarne l'esecuzione nel cloud.
La prima opzione di rifattorizzazione consiste nel migrare l'applicazione .NET Framework esistente su .NET. Il passaggio a .NET offre il vantaggio di funzionare su Linux anziché su Windows. Ciò riduce il costo totale delle licenze e permette di sfruttare i framework e le versioni dei linguaggi di programmazione .NET più recenti.
AWS SDK per .NET
AWS SDK per .NET
Modernizzazione delle applicazioni .NET Framework
È possibile migrare da .NET Framework utilizzando Porting Assistant per .NET
Dalle applicazioni monolitiche ai microservizi
Molti team di sviluppo desiderano riprogettare le applicazioni monolitiche esistenti adottando i microservizi. Passando ad architetture basate su microservizi, i team di sviluppo possono aumentare l'agilità di sviluppo, ridurre i costi di elaborazione, scalare i servizi individualmente e ridurre i tempi di implementazione. AWS Microservice Extractor for .NET
Rifattorizzazione ad applicazioni serverless
AWS Lambda
Risorse aggiuntive
-
Amazon CodeCatalyst
(CodeCatalystdocumentazione) -
AWS Toolkit for Azure DevOps
(AWS documentazione) -
Configurazione di una CI/CD pipeline integrando Jenkins con AWS CodeBuild and AWS CodeDeploy
(Blog)AWS DevOps -
Informazioni sul AWS Deploy Tool
for .NET ()AWS GitHub -
.NET on AWS
(AWS documentazione) -
aws/dotnet
() GitHub