Quale IaaS scegliere per applicazioni Cloud Native?

Full stack Cloud Native IaaS
Per saperne di più
Vuoi approfondire qualche argomento?
Contattaci

L’esperienza utente è sempre più la caratteristica di maggiore rilievo della tecnologia cloud. Molte realtà, di diverse dimensioni e settori, stanno via via implementando servizi digitali a supporto dei propri clienti migliorando velocità, scalabilità e resilienza a lungo termine della propria offerta.

Tutto ciò, come puoi immaginare, si traduce in una maggior complessità e distribuzione delle infrastrutture IT e, per accompagnare questo processo di cambiamento, diventa assolutamente necessario ottimizzare le risorse e la loro gestione utilizzando strumenti e strategie specifiche per quasi la totalità dei flussi aziendali.

É qui che entrano in gioco le strategie e tecnologie Cloud Native.

Che cosa si intende per Cloud Native?

In questo articolo non è mia intenzione approfondire il mondo delle applicazioni Cloud Native nella sua completezza, ma evidenziare ciò che può esserci alla sua base. Ecco perché credo sia importante, in estrema sintesi, definire il termine Cloud Native come l’approccio allo sviluppo software che, attraverso risorse di cloud computing, crea ed esegue applicazioni scalabili in ambienti moderni e dinamici quali Cloud Pubblici, Privati o Ibridi.

Questo metodo, supportando il processo di sviluppo grazie ai microservizi, consente alle aziende di modificare rapidamente e frequentemente risorse, funzionalità e molto altro delle applicazioni stesse. Il tutto senza influire sull’erogazione del servizio, anzi, migliorandone l’efficienza e garantendo una disponibilità e resilienza del servizio stesso.

Magnifying glass: Cloud Native

L'architettura di applicazioni Cloud Native

L’architettura delle applicazioni Cloud Native, per sua natura, è differente rispetto all’architettura di applicazioni tradizionali. Infatti, se queste ultime seguono una struttura più monolitica, le applicazioni moderne seguono una serie di principi che abilitano la possibilità di ottimizzare scalabilità, flessibilità e resilienza nel cloud.

Le odierne applicazioni sono sempre in movimento, sia per le costanti modifiche tra diversi ambienti di elaborazione e sviluppo, sia, soprattutto, poiché dipendono anche dall’infrastruttura sottostante che può cambiare e aggiornarsi. Per rendere flessibile tali risorse vengono disaccoppiate le applicazioni dall’infrastruttura sottostante, attraverso stack e tecnologie quali container, microservizi e serverless.

In linea generale il paradigma cloud-native astrae l'infrastruttura sottostante, esponendola tramite API (Application Programming Interface). In questo modo si semplifica la scalabilità e lo spostamento delle applicazioni stesse, migliorando indirettamente anche la loro disponibilità e resilienza. L’infrastruttura, in questo contesto, è considerata immutabile e di breve durata piuttosto che permanente, ciò significa che se un server si interrompe, può essere istantaneamente distrutto e sostituito con uno nuovo.

Grazie a questo approccio, le applicazioni cloud native sono in grado di adattarsi meglio ai requisiti e ai flussi di business mutevoli, rimanendo stabili anche quando l’infrastruttura sottostante è in evoluzione o presenta difficoltà, migliorandone la robustezza e flessibilità complessive.

Per concretizzare questi concetti, nella figura di seguito vedi un potenziale full stack utile alla creazione ed esecuzione di un’applicazione cloud native. Ciò include:

  • il metodo DevOps, cioè il processo di collaborazione adottabile per accelerare i processi di sviluppo ed esecuzione di una app;
  • le tecnologie in grado di abilitare la containerizzazione e astrazione di risorse in una infrastruttura distribuita in cloud quali Docker e Kubernetes;
  • e soprattutto, il livello inferiore che rappresenta la base di una strategia Cloud Native: la sua infrastruttura.

Andiamo ora ad approfondire proprio questo ultimo punto e quali opzioni sono disponibili proprio nel livello alla base di uno stack per applicazioni Cloud Native.

Potenziale Full stack utile alla creazione ed esecuzione di un’applicazione Cloud Native.

Quindi, quali infrastruttura cloud scegliere?

Una volta capito da quali tecnologie può essere composto uno stack per applicazioni Cloud Native, ti chiederai probabilmente tra quali Infrastrutture Compute, cloud o on premise, puoi ospitare il tutto.

Nonostante le opzioni a tua disposizione siano diverse e varino chiaramente in base alle esigenze del tuo business, ecco una comparison tra ciò che puoi scegliere:

Hyper-Scaler: Public Cloud

Qui stiamo parlando dei Big nel settore Cloud Provider: Amazon Web Service, Azure, GCP. La scelta tra servizi, risorse infrastrutturali e software a disposizione nel loro “universo” è sicuramente vasta e completa per ogni esigenza. Ed è ovvio che tale scalabilità illimitata può garantire potenzialmente un'elevata resilienza e disponibilità per le tue applicazioni.

I limiti legati a soluzioni di questo tipo sono principalmente relativi all’interoperabilità tra servizi di diversi cloud provider e, molto spesso, alle loro azioni di lock-in. Non è infatti raro che, proprio per la vasta gamma di soluzioni nei rispettivi ecosistemi di servizi, risulti difficile integrarsi o scegliere altri provider con altrettante soluzioni efficienti.

Un ulteriore limite è legato alla sovranità del dato. Seppure siano in atto cambiamenti normativi e regolamentazioni in questo ambito, risulta oggi ancora nebuloso il trasferimento del dato stesso al di fuori dell’Unione Europea.

Private Cloud: VMware o On-premise

Se invece opti per un’infrastruttura privata, soprattutto in Cloud o e in parte anche l’opzione on-premise, ciò che sicuramente hai garantito sono risorse potenti e dedicate alle tue esigenze. Puoi in questo modo trarre i vantaggi e i punti di forza di un’infrastruttura dedicata, e non condivisa, e in completa libertà aumentare l’efficienza delle tue applicazioni. Chiaramente, soprattutto se la scelta ricade sull'on-premise, ciò che limita questa tipologia di infrastruttura è proprio la sua scalabilità, che rimane elevata ma non illimitata.

CloudFire: Public Cloud

A differenza delle proposte precedenti, quest’ultima rappresenta una soluzione alternativa alle limitazioni di scalabilità di un’infrastruttura privata, all’interoperabilità di servizi tra più cloud provider e alla gestione della sovranità del dato degli hyper-scaler.

Innanzitutto, CloudFire con il servizio Public Cloud, in maniera simile a Scaleway e OVH, propone un servizio di Infrastructure as a Service basato su Openstack. Ciò permette all’utente di disporre di un pool di risorse dinamico e gestibile da un’interfaccia di risorse on demand. Inoltre, essendo un software opensource, Openstack non limita integrazioni con ulteriori soluzioni. Sono proprio i concetti di community e opensource che scorrono nelle vene di questa tecnologia che rendono la soluzione altamente integrabile con altre.

Lato sovranità del dato invece, grazie allo svincolo dai grandi Cloud Provider citati nel primo punto, con Public Cloud di CloudFire hai la garanzia che i tuoi dati siano in Italia e in Europa, garantendoti la totale libertà di limitarne il trasferimento al di fuori.

Concludendo

Scegliere la propria infrastruttura Cloud per un’applicazione Cloud Native, e non solo, può essere un’operazione critica e delicata. Lato tecnico, non tutte le infrastrutture con determinati componenti compute, network e storage sono adatti all’utilizzo di applicazioni Cloud Native. In secondo luogo, non bisogna sottovalutare il margine di scelta nelle integrazioni e interoperabilità con altri provider.

Accogliere il cambiamento di paradigma per accelerare i cicli di implementazione e sviluppo di applicazioni Cloud Native è ormai imperativo, e la domanda a cui occorre dare risposta sembra essere: sono pronto? Se la risposta è no o se vuoi confrontarti con chi ha già dovuto affrontare questa transizione, scrivici! 🥰

Abbiamo affrontato questi temi in modo più approfondito nel nostro ultimo Tech Talk Public Cloud: Iaas for Cloud Native Platform!