News

On premise o cloud native: 5 elementi dello sviluppo software moderno

On premise o cloud native (qui i trend del cloud per il 2022), questo è il dilemma. In verità, il dubbio sembra essere solo nella testa dei responsabili IT delle aziende. Perché i cloud provider, e i partner IT in generale, hanno le idee molto chiare: lo sviluppo applicativo oggi deve essere cloud native, senza se e senza ma.

I “se” e i “ma” essenzialmente sono figli della paura. Paura di perdere il controllo sulle applicazioni. Paura di violazioni dell’infrastruttura. Paura di vedere i dati compromessi. E sono anche paura del futuro, dei nuovi modelli economici che minerebbero certe usanze decennali che, solo perché sono consolidate, dovrebbero essere ancora difese.

In questo articolo cerchiamo di fare un po’ di ordine, ricordando cosa si intende per software on premise e dimostrando in 5 motivi che il cloud native è la scelta migliore per le aziende. E, a ben vedere, non si tratterebbe neanche di una scelta ma, piuttosto, di allinearsi alle esperienze dei grandi. Un social network, una piattaforma di streaming, un sito di ecommerce sono dei servizi. All’utente non viene richiesto di installare nessun software nel proprio computer o smartphone. Quando si scarica e si installa una app sullo smartphone non si sta scaricando un software “vecchia maniera” ma semplicemente tutto il necessario per stabilire una connessione via Internet al servizio richiesto.

Siamo di fronte, insomma, a un modello SaaS in cui si paga una fee fissa per un servizio e non una licenza d’uso, oltre alle spese accessorie (manutenzione e aggiornamenti). Lo sviluppo di un servizio applicativo, inoltre, è gestito con modalità totalmente nuove, e il cloud native sfrutta esattamente queste modalità.

Cosa è il software on premise

Con il termine software on premise (o anche on premises) si fa riferimento alla fornitura di programmi installati e gestiti su computer locali. Deriva dall’inglese “on the premises”: nelle sedi, nei locali (del titolare della licenza).

Il concetto si contrappone all’erogazione di servizi software off premise, in modalità SAAS basati su cloud, in cui la fruizione del programma avviene attraverso l’accesso a un computer (o a un’architettura di hardware) in remoto, grazie a una connessione internet.

Come detto, il software on premise viene installato in un server locale e sfrutta la classica architettura client-server per cui, originariamente, si aveva bisogno di un applicativo server e uno client da installare su tutti i dispositivi dei dipendenti.

I motivi per cui ha ancora senso utilizzare software on premise si possono riassumere in questi cinque punti:

  1. Controllo esclusivo su sistemi e dati
  2. Gestione interna di dati sensibili e core
  3. Flessibilità
  4. Staff di supporto dedicato
  5. Alto investimento iniziale, eventualmente ammortizzabile nel lungo periodo.

Proprio per garantire le stesse rassicurazioni ai responsabili IT delle aziende clienti, eliminando gli svantaggi oggettivi dell’approccio on premise (staff dedicato, alto investimento iniziale, spese non previste, aggiornamenti costosi e conseguenti blocchi di sistema tra gli altri) si è introdotto il modello cloud native.

Cosa è il cloud native

Oggi il software aziendale è la componente essenziale per il business e le aziende devono esserne consapevoli. Attraverso i servizi applicativi, le aziende vendono i prodotti (ecommerce) o comunicano con fornitori e clienti, anche in contesti B2B. I servizi applicativi, inoltre, permettono di gestire l’operatività e la produzione, oggi anche da qualsiasi luogo. Infine, proporre servizi sempre più personalizzati e di aggiornarli con nuove funzionalità è oggi necessario per poter competere con la concorrenza, che queste cose le ha già comprese.

In sintesi, il cloud native è un (nuovo) approccio per l’IT, che rende possibile una maggiore velocità ed efficienza del modello operativo basato sul cloud e permetta alle aziende di configurare, eseguire e migliorare delle applicazioni responsive su qualsiasi tipo di cloud: public, private, hybrid o multi.

Il cloud native è una combinazione di tecnologie e tecniche che permettono di creare sistemi resilienti e monitorabili, con l’obiettivo di sviluppare e distribuire applicativi di qualità e ottenere cicli di vita del software più brevi guidati dai feedback degli utenti. Addirittura, i sistemi cloud native più evoluti garantiscono l’aggiornamento dinamico e automatico delle piattaforme applicative in base all’osservazione dell’esperienza d’uso, senza dover analizzare manualmente i feedback.

Le tecnologie cloud native consentono alle organizzazioni di creare ed eseguire applicazioni scalabili in ambienti moderni e dinamici come sono tutti i cloud.

Vediamo, dunque, i 5 elementi base che definiscono l’approccio cloud native:

  1. DevOps collaborativo. Lo sviluppo DevOps, basato sui principi Agile e Lean, indica una nuova metodologia in cui chi sviluppa codice e chi gestisce le operations collaborino costantemente. Semplificando, si usano delle piattaforme specifiche di sviluppo che annullino la distanza tra il codice applicativo e le funzionalità del servizio visibili agli utenti.
  2. Per snellire lo sviluppo applicativo e orchestrare i carichi di lavoro in modo scalabile si utilizzano i cosiddetti container applicativi. Il container è l’ambiente in cui nasce ed evolve un servizio.
  3. Architettura modulare a microservizi. Lavorare a microservizi permette degli aggiornamenti più rapidi e semplificati. Si agisce sul microservizio per migliorare o correggere una funzione, per costruirne una nuova o per eliminarla. Grazie ai microservizi non è necessario bloccare un intero applicativo, e quindi la produzione, per eseguire un aggiornamento.
  4. Le applicazioni cloud native devono essere messe in comunicazione tra di loro. Questo è possibile grazie alle API. Si tratta di piccoli codici applicativi che mettono in collegamento i servizi. Ciò semplifica la manutenzione e incrementa i livelli di sicurezza
  5. I servizi SaaS lavorano su ambienti cloud. Che siano cloud pubblici, cloud ibridi, multi o cloud privati, questi sono gli ambienti naturali di sviluppo, rilascio e gestione delle applicazioni cloud native.
In particolare, i data center aziendali, in cui veniva installata la parte server del software on premise, oggi si trasformano in cloud privati. In questo modo, spariscono tutte le preoccupazioni dei responsabili IT aziendali e si adegua l’azienda a un’architettura applicativa innovativa e concorrenziale.