Vai al paragrafo

Cos'è la modernizzazione delle applicazioni .NET?

Copia URL

.NET (nota in precedenza come .NET Core) è una piattaforma di sviluppo open source per la creazione di applicazioni multipiattaforma destinate a console e cloud eseguibili su Linux e Windows.

.NET include tre piattaforme che consentono l'esecuzione del codice .NET in diverse ubicazioni: .NET Core, .NET Framework e Xamarin/Mono. .NET Core è l'implementazione multipiattaforma che può essere eseguita su Windows, Linux e macOS. .NET Framework è l'implementazione originale di .NET che supporta l'esecuzione di siti web, servizi, app per desktop e altro su Windows. Xamarin/Mono è la versione di .NET per gli ambienti mobile che esegue le app su tutti i principali sistemi operativi mobile, incluso iOS e Android.

Prima che Microsoft adottasse Linux come piattaforma principale, .NET non era open source ed era destinata solo a Windows.

Benché .NET sia ora open source e disponibile su più piattaforme, si possono riscontrare problemi se la soluzione esistente è basata su .NET Framework, che viene eseguita solo in ambienti Windows. Sarà quindi necessario modernizzare .NET Framework in un ambiente Linux. 

Molte organizzazioni sostengono che gli ostacoli all'agilità e all'innovazione aziendali sono attribuibili a carichi di lavoro, piattaforme alla base e tecnologie tradizionali nonché a processi di sviluppo datati. Il motivo è facilmente intuibile considerando che i sistemi tradizionali precedono la comparsa delle moderne tecnologie quali il cloud computing, le pratiche di sviluppo cloud native, i container Linux e le ultime innovazioni tecnologiche. In molti casi però sostituire o dismettere quei carichi di lavoro non è fattibile perché, per quanto obsoleti, rivestono un ruolo centrale per l'azienda e costituiscono investimenti a lungo termine.

Le organizzazioni si trovano quindi nella difficile posizione di dover trovare un equilibrio fra la necessità di mantenere in funzione i sistemi aziendali critici esistenti e quella di dedicarsi all'innovazione per soddisfare le crescenti aspettative dei clienti e cogliere nuove occasioni. Accade però che le applicazioni tradizionali assorbano una quantità di tempo, denaro e risorse tale da far passare l'innovazione in secondo piano.

L'obiettivo della modernizzazione dei carichi di lavoro è quello di integrare il vecchio al nuovo. Ciò significa restituire agilità ai carichi di lavoro tradizionali trasferendoli su piattaforme moderne, ripartire le applicazioni monolitiche in unità più piccole e facili da gestire come i microservizi e applicare pratiche moderne di sviluppo e deployment del software.

Vantaggi

L'adattamento dei carichi di lavoro .NET esistenti a una piattaforma più moderna dipende dal tempo e dalle risorse che gli sviluppatori possono dedicare all'attività e dalla capacità dei team di allinearsi ai nuovi processi. Tenendo conto di questi fattori, è bene sottolineare i vantaggi immediatamente tangibili offerti dai carichi di lavoro modernizzati:

  • Migliore scalabilità: i carichi di lavoro .NET sono ora scalabili in funzione della domanda. 
  • Più affidabilità: l'esecuzione dei carichi di lavoro .NET è più affidabile in un ambiente più stabile e resiliente. 
  • Sicurezza avanzata: i carichi di lavoro .NET possono avvalersi delle procedure cloud esistenti per aggiungere un ulteriore livello di sicurezza.
  • Riduzione dei costi: aggiungendo l'automazione ai fattori citati, le organizzazioni possono ridurre i costi. 

L'avanzato sviluppo della containerizzazione e di Kubernetes consente l'esecuzione di .NET come container su qualsiasi server, scegliendo la strategia di modernizzazione più adeguata alle proprie esigenze aziendali. Vincoli di tempo e budget possono richiedere strategie differenti per i diversi carichi di lavoro. Per ottenere tutti i vantaggi dell'iniziativa, a volte è più appropriato un approccio graduale che preveda la raccolta del feedback degli utenti e la giustificazione di quanto investito in modernizzazione.
Per modernizzare le applicazioni .NET esistenti sono possibili tre percorsi:

  1. Rehosting: anche detto approccio "lift and shift", prevede la migrazione di un'applicazione on premise verso una piattaforma predisposta all'infrastruttura cloud. Questo approccio prevede la migrazione o il rehosting delle applicazioni attualmente on premise su una piattaforma Infrastructure-as-a-service (IaaS). Le applicazioni mantengono la stessa composizione ma il loro deployment viene eseguito su macchine virtuali nel cloud. Questa strategia viene utilizzata principalmente per eseguire la migrazione di applicazioni scalabili che soddisfano specifici obiettivi aziendali, come l'introduzione di un prodotto con tempistiche abbreviate o la dismissione di un data center on premise.
  2. Cambio di piattaforma: questo approccio prevede l'ottimizzazione delle app per il cloud che possono essere eseguite con tecnologie moderne come i container e ulteriori servizi cloud gestiti, senza alterare significativamente il codice. Questo modello di maturità consente il deployment su IaaS o Platform-as-a-Service (PaaS) utilizzando al contempo servizi gestiti cloud aggiuntivi inerenti a database, cache as a service, monitoraggio e pipeline di integrazione e distribuzione continue (CI/CD). Il replatforming di un'applicazione .NET a container Windows offre i vantaggi delle tecnologie container senza modificare l'architettura core di un'applicazione .NET.
  3. Riprogettazione: con questo approccio, i servizi PaaS vengono utilizzati per trasferire le applicazioni su piattaforme di elaborazione PaaS. L'adozione delle applicazioni cloud native e di un'architettura di microservizi permette di ottenere agilità nel lungo termine, rendendole facilmente scalabili in funzione della domanda. In genere, questo tipo di modernizzazione richiede una progettazione specifica per il cloud e la scrittura di nuovo codice. L'approccio garantisce vantaggi altrimenti difficili da ottenere in un ambiente applicativo monolitico e on premise. Suddividendo un'applicazione monolitica in servizi più piccoli, ognuno di questi avrà un'unica finalità e verrà distribuito come un container. Si ottiene inoltre la capacità di seguire un approccio basato su microservizi in cui alcuni componenti sono creati con .NET e altri con Java, ma tutti possono essere eseguiti su una piattaforma comune supportata da RHEL e OpenShift Container Platform.

Se le procedure, gli strumenti e i processi esistenti vengono eseguiti su Windows Server, aggiungere Linux, i container e Kubernetes potrebbe diventare una necessità per il tuo team, non priva però di eventuali ripercussioni sull'intera azienda. 

Red Hat conosce le complessità di un cambiamento tecnologico e aiuta i clienti ad affrontarlo con strategie e soluzioni che permettono ai team di gestire le novità legate agli ambienti, alla tecnologia e ai processi e di realizzare gli obiettivi aziendali.

Qualunque sia la strategia di modernizzazione scelta e i vantaggi ottenibili in base ai vincoli di ogni azienda, Red Hat offre prodotti e servizi come Microsoft Azure Red Hat OpenShift (ARO).

Approfondisci

Articolo

Cosa sono gli operatori Red Hat OpenShift?

Gli operatori Red Hat OpenShift automatizzano la creazione, la configurazione e la gestione delle istanze di applicazioni Kubernetes-native.

Articolo

AI/ML su Red Hat OpenShift

OpenShift offre funzionalità fondamentali per l'accelerazione dei flussi di lavoro AI/ML e per la distribuzione di applicazioni basate sull'intelligenza artificiale.

Articolo

L'edge computing con Red Hat OpenShift

Estendi i servizi applicativi alle sedi remote e analizza gli input in tempo reale con le funzionalità edge computing di OpenShift.

Scopri di più su OpenShift

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Una soluzione di storage software defined che fornisce uno spazio di archiviazione dati permanente durante l'avvio e l'arresto dei container tra gli ambienti.

Una sandbox completamente supportata per lo sviluppare, addestrare e testare i modelli di machine learning (ML) in modo rapido nel cloud pubblico prima di distribuirli in produzione.

Una soluzione che permette di controllare cluster e applicazioni Kubernetes da una singola console dotata di criteri di sicurezza integrati.

Risorse

Serie Open Answers: Cos'è Red Hat OpenShift?

Sviluppo cloud native con Red Hat e Amazon Web Services

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview