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). Entrambi condividono molti degli stessi componenti e possono eseguire codice applicativo scritto utilizzando i 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. La versione più recente di .NET può essere ospitata anche su servizi Linux. OS-based Quando si modernizzano i Framework-based carichi di lavoro.NET, è possibile utilizzare For.NET AWS Transform per scansionare il codice e generare un rapporto di valutazione della compatibilità. Scoprendo se il progetto fa riferimento ad API .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 tua implementazione 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 quando si eseguono le migrazioni 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 ASP.NET-based i siti Web 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 Applications WorkSpaces
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. È possibile utilizzare strumenti come .NET AWS Transform per trasferire la base di codice da .NET Framework a .NET. 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 Windows-based siti Web, 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 istanza Amazon EC2 che esegue Windows Server. Dopo aver abilitato e configurato IIS, puoi distribuire ASP.NET siti Web e servizi utilizzando lo stesso meccanismo di distribuzione utilizzato per gli ambienti locali.
Se ospiti IIS su istanze EC2 Windows, è importante seguire il AWS Well-ArchitectedFramework
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 Server-based ambiente Windows utilizzando Microsoft Remote Desktop. Con questa opzione, l'applicazione delle patch e la manutenzione del sistema operativo rientrano tra le tue responsabilità. Inoltre, sarà necessario acquistare licenze di accesso client aggiuntive per Remote Desktop Services (RDS CAL) per gli utenti e assicurarsi di avere licenze 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 . -
WorkSpaces Applicazioni Amazon
: scegli questa opzione per fornire un accesso sicuro, affidabile e scalabile alle applicazioni e ai desktop non persistenti da qualsiasi posizione. Puoi utilizzare WorkSpaces Applications per consentire agli utenti di accedere alle tue applicazioni.NET dal Web. Se disponi già di RDS CAL e SA attivi, puoi utilizzare tali licenze con WorkSpaces Applicazioni 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 utilizzarlo 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)
-
Multi-App Support 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 Docker-based containerizzate. AWS gestisce entrambi i servizi. La scelta tra i due dipende dalle proprie conoscenze e preferenze. Entrambe le opzioni possono eseguire Linux-based contenitori o Windows-based contenitori.
Per ulteriori informazioni, consulta le seguenti risorse:
-
Contenitori Windows Amazon EC2 (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:
-
Framework-based Applicazioni.NET vengono eseguite su contenitori Windows: l'aggiunta del supporto Docker alle applicazioni esistenti viene effettuata creando un file Docker che descrive come l'applicazione deve essere containerizzata.
-
.NET o.NET Core: oltre a eseguire versioni più recenti. NET-based è possibile utilizzare AWS App Runner
anche applicazioni Web su Amazon ECS o Amazon EKS. 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.
Refactor/re-architect codice esistente
Scegliete questa opzione se avete una forte esigenza 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 AWS Transform for .NET, che analizza i file di codice e crea un report che aiuta a pianificare la roadmap di migrazione del portafoglio di applicazioni. Porting Assistant for .NET può anche ridurre il sovraccarico di porting identificando API e pacchetti .NET Core incompatibili e trovando sostituti noti. La migrazione delle applicazioni.NET Framework in.NET consente di eseguirle su processori ARM64-based Graviton per un miglior rapporto prezzo/prestazioni. Per ulteriori informazioni, consulta.NET su Graviton on GitHub e Graviton
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, dimensionare i servizi su base individuale e ridurre i tempi di implementazione. Riconoscendo i vari componenti e categorizzando le funzioni, i team di sviluppo hanno la possibilità di trasferire gradualmente le funzionalità dalle applicazioni monolitiche basate su .NET Framework ai servizi in .NET.
Rifattorizzazione ad applicazioni serverless
AWS Lambda
Risorse aggiuntive
-
AWS Toolkit per Azure DevOps
(documentazione)AWS -
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)