Perché la corretta selezione del modello cloud e del relativo provider è fondamentale per imprese e professionisti che si occupano di sviluppo software?
A prescindere dalla dimensione aziendale e dalla industry di riferimento, oggi buona parte dell’operatività aziendale si basa su servizi SaaS (Software as-a-service): dall’ERP al CRM, dalle piattaforme di collaboration ai contact center, molti processi aziendali (anche mission-critical) vengono gestiti con software erogati da infrastrutture cloud. L’Osservatorio Cloud Transformation del Politecnico di Milano, esaminando i dati del 2021, registra una crescita dei servizi SaaS del 13% e un valore complessivo molto rilevante, pari a 1,1 miliardi di euro.
Il ruolo e il valore del cloud per lo sviluppo software
Le imprese sono disponibili ad affidare i propri processi, anche quelli critici, ad applicativi SaaS. Le aziende che li sviluppano sono tenute a proporre ai clienti non solo software di qualità allineato con le loro esigenze di business, ma anche in grado di sfruttare tutti i benefici che le aziende si aspettano dal cloud: uptime continuo, prestazioni di alto livello a prescindere dalla quantità di utenti, massima sicurezza, aggiornamenti costanti e un approccio orientato all’evoluzione continua.
Per tutti questi motivi, sono nate nel corso del tempo delle metodologie e degli approcci di sviluppo software finalizzati proprio a sfruttare appieno le caratteristiche infrastrutturali e tecnologiche del cloud (cloud native).
Le imprese che sviluppano – per sé o per proporle sul mercato – soluzioni SaaS possono erogarle attraverso le proprie infrastrutture oppure avvalersi di quelle di un cloud provider: il primo caso è riservato a grandi aziende che possono farsi carico, in termini di investimenti e di competenze, di tutta la complessità tecnica legata a una gestione infrastrutturale in grado di garantire scalabilità ed elevati livelli di servizio.
In alternativa, questi player possono sviluppare il software su una piattaforma tecnologica (cloud) di proprietà di un provider, che di conseguenza diventa responsabile dei servizi disponibili e delle performance della piattaforma stessa. In tale caso, ovviamente, la scelta del cloud provider diventa fondamentale per il successo del proprio business.
Cloud pubblico, la destinazione tipica degli applicativi SaaS
Il primo aspetto che una software house deve valutare è “quale” cloud adottare per gli applicativi SaaS che proporrà sul mercato. L’ipotesi più comune, cui buona parte delle imprese di sviluppo software si rivolge, è il cloud pubblico, quello dei grandi hyperscaler come Amazon, Google, Microsoft e IBM.
L’identificazione del cloud con la sua componente pubblica è ancora molto forte e alcuni benefici sono indubbi: il cloud pubblico può vantare una scalabilità straordinaria, e ciò rappresenta un elemento critico di successo per chi sviluppa, pubblica e distribuisce software. Affidarsi al cloud pubblico dà modo di azzerare gli investimenti in hardware e delegare al cloud provider la gestione dell’infrastruttura, con un legame definito da accordi sui livelli di servizio (SLA). Affidare le proprie applicazioni al cloud pubblico significa poter garantire ai clienti/utenti finali ampia disponibilità e ottime prestazioni, a patto di contare su competenze gestionali dedicate: se è vero che la parte infrastrutturale è responsabilità del provider, tutte le configurazioni sono a carico del cliente che sviluppa e distribuisce il software.
Gli hyperscaler, inoltre, forniscono ai propri clienti non soltanto risorse infrastrutturali (IaaS), ma una vera e propria piattaforma di servizi cloud (PaaS) dedicati allo sviluppo di software moderno, basato cioè su architetture a microservizi e container nonché su approcci agile come DevOps.
Infine, ma non per importanza, utilizzare il cloud pubblico per lo sviluppo software richiede attente considerazioni sui costi. Salvo accordi specifici o promozioni, i servizi di cloud pubblico vengono erogati in modalità as-a-service: in termini pratici, la tariffazione è proporzionale al consumo delle risorse e dei servizi stessi. Nonostante la semplicità del principio, il tema dei costi dei cloud è molto complesso poiché vi è estrema granularità nelle voci e nei parametri che determinano la tariffa da corrispondere periodicamente. Il cliente del provider – in questo caso, la software house – ha quindi più difficoltà nel prevedere il costo del prodotto rispetto ai modelli tradizionali.
Il rapporto tra SaaS, cloud privato e ibrido
Le imprese che sviluppano software moderno (cloud-native) non necessariamente si devono avvalere dei servizi di cloud pubblico, o “soltanto” del cloud pubblico. Possono infatti realizzare un cloud privato (interno) dedicato a sé e ai propri clienti, oppure adottare sempre il paradigma privato ma attraverso un’infrastruttura realizzata e gestita da un provider esterno. In quest’ultimo caso, si parla di hosted private cloud. Infine, il modello più evoluto, performante e complesso è l’hybrid (multi)cloud, che si manifesta in una sinergia tra componenti private e pubbliche e tra cloud di provider diversi.
A prescindere dalla soluzione ideale per la software house, che dipende dai requisiti e dalle esigenze dei clienti, in generale la soluzione privata offre una scalabilità – e quindi una flessibilità – inferiore rispetto alla declinazione pubblica, ma anche un controllo del dato pressoché totale, cosa che rende questi modelli (così come quelli ibridi) ideali per applicativi dedicati a settori soggetti a regolamentazione stringente (es. pharma, finance, healthcare…).
Sviluppo software e il ruolo del cloud provider
Se l’infrastruttura non è completamente interna, la sua gestione ricade in tutto o in parte sul provider, la cui scelta è determinante ai fini delle prestazioni del software e, di conseguenza, del successo del business.
Tale valutazione dipende dalle capacità prestazionali dell’infrastruttura del provider, dalla resilienza che può garantire e, cosa tutt’altro che secondaria, dai servizi (gestiti) che essa offre agli sviluppatori. Le metodologie di sviluppo cloud-native portano svariati benefici alle aziende, ma non si può negare un incremento di complessità rispetto alle metodologie passate: per questo, è un preciso onere dei cloud provider (pubblici o meno) fornire – all’interno delle proprie piattaforme PaaS – servizi e strumenti che semplifichino i processi di sviluppo e di gestione del ciclo di vita del software. Anche di questo va tenuto conto.