- I nativi delle nuvole non sono tutti uguali
Se due decenni fa parlassi di “nuvola”, le persone guarderebbero il cielo. Oggi, la maggior parte delle persone nel mondo connesso digitalmente comprende che “il cloud” si riferisce a una server farm lontana in cui sono archiviati i dati. Ma ora c’è un altro termine con cui fare i conti: cloud native.
Non è un ragazzo con un perizoma e una lancia fluttuante in un firmamento sfocato, ma piuttosto un’infrastruttura di computer e applicazioni costruite principalmente nel cloud, in remoto, scrivendo codice su server virtuali su Internet.
La capacità di creare applicazioni (pezzi di software che fanno di tutto, dal trasferimento di denaro al monitoraggio dell’apporto calorico) su un laptop senza mai installare una sala server o affittare un rack in un data center ha rivoluzionato lo sviluppo di applicazioni e ha portato a una serie vertiginosa di nuove prodotti e servizi.
Ma non tutti vogliono diventare nativi allo stesso modo. Molti sviluppatori insistono nel creare le loro applicazioni su macchine virtuali nel cloud che controllano, mentre CTO e CEO sono più inclini a trarre vantaggio dalla moltitudine di servizi back-end basati su cloud ora forniti dalle interfacce di programmazione delle applicazioni o API.
Il mercato “nascosto” su cui siedono le aziende, ma non lo sanno
Per avere successo negli affari, lasciare la larghezza di banda aperta per opportunità durante questo periodo di crisi
“Costruire applicazioni cloud native significa creare software progettato tenendo conto dei vantaggi e degli svantaggi del cloud”, ha affermato Klint Finley, ex reporter di Wired e autore di un recente report della società di piattaforme applicative Lightbend – Cloud Native Adoption Trends 2020-2021 .
Risulta che la maggior parte degli sviluppatori preferisce ancora i sistemi che possono mantenere e scalare personalmente, mentre il lato aziendale preferisce chiaramente i sistemi forniti “come servizio” tramite API, afferma il sondaggio. Consumare servizi di back-end tramite API piuttosto che creare e mantenere i propri è la caratteristica distintiva del cloud emergente.
“Significa sfruttare il fatto che è possibile esternalizzare intere categorie di funzionalità, come i database e l’autenticazione, a servizi di cloud pubblico e pianificare il fatto che la comunicazione tra questi componenti cloud potrebbe essere inaffidabile”, ha affermato Finley.
Vent’anni fa, grandi aziende tecnologiche come IBM, Sun Microsystems, HP, Cisco e Intel hanno iniziato a parlare di reti distribuite, chiamandole “utility computing” o “grid computing”. Poi, nel 2007, Amazon ha lanciato Elastic Compute Cloud, il primo grande cloud pubblico, che consente agli ingegneri di gestire i computer virtuali tramite un’interfaccia Internet. Sul back-end, tuttavia, Amazon ha suddiviso le funzionalità e le ha inviate a data center sparsi in tutto il mondo.
Inizialmente, le aziende utilizzavano il cloud per l’archiviazione di backup, ma hanno rapidamente iniziato a migrare l’infrastruttura primaria sulle macchine virtuali. Oggi il business cloud di Amazon, Amazon Web Services, è una società di ricerche di mercato e di affari annuali da $ 40 miliardi Gartner stima che il mercato globale del cloud valga fino a $ 263 miliardi oggi.
Le aziende ora sono specializzate nella creazione di microservizi a cui gli sviluppatori di software possono accedere tramite il cloud e assemblare in applicazioni. Il co-fondatore di Ligthbend e CTO Jonas Bonér ha affermato che gli sviluppatori diventeranno più simili a general contractor, “riunendo i pezzi che sono stati costruiti dai subappaltatori in un prodotto coerente”.
Considera New Egg , una società di e-commerce di elettronica il cui sito web è tra i primi 200 siti web negli Stati Uniti classificati per traffico Internet e coinvolgimento, secondo Alexa, sussidiaria di analisi del traffico web di Amazon .
Montque Hou, CTO di New Egg, afferma che mentre la sua azienda sviluppa applicazioni nel proprio data center, integra servizi basati su cloud come Google Translate e Google Cloud Vision nelle loro app utilizzando le API.
“Il cloud è molto più costoso del nostro data center on-premise”, ha affermato Hou, aggiungendo che il suo sito gestisce 100 milioni di prodotti singoli. “Ma ci piacciono alcune offerte cloud, che sono uniche, come supplemento alla nostra attività”.
Consumare servizi di back-end tramite API piuttosto che costruirli e mantenerli internamente, sia con server in sede che nel cloud, è un approccio molto diverso dalla mentalità lato server della vecchia scuola che controlla ancora vasti sistemi legacy nella maggior parte delle grandi aziende .
Il sondaggio Lightbend condotto su oltre 1.000 sviluppatori, architetti software e leader IT ha rilevato che tre quarti degli intervistati ospitano già la maggior parte delle proprie applicazioni in una sorta di infrastruttura cloud. Il sondaggio suggerisce che mentre la direzione preferisce esternalizzare quanta più manutenzione possibile, gli sviluppatori preferiscono non perdere troppo controllo.
Un vantaggio della creazione di un’applicazione nel cloud è che l’infrastruttura e l’applicazione possono scalare con la domanda, in espansione e contrazione, senza interrompere la capacità di risposta dell’utente. Sebbene il cloud possa essere più costoso, disporre di tale capacità in un data center, in locale o meno, richiede la creazione di picchi di traffico e di lasciare le macchine inattive quando il traffico diminuisce.
La flessibilità del cloud consente inoltre agli sviluppatori di distribuire gli aggiornamenti in modo molto più semplice invece di arrestare l’intero sistema per eseguire un’implementazione come è necessario in un mondo non nativo del cloud. Il servizio di streaming Netflix distribuisce il nuovo codice fino a 4.000 volte al giorno.
“Approfitta di quello che c’è là fuori”, ha detto Bonér di Lightbend. “Se esiste un servizio di autenticazione e identificazione utente che soddisfa le tue esigenze, dovresti assolutamente utilizzarlo.”