A cura di Alois Reitbauer, Chief Technology Strategist di Dynatrace
Il cloud esiste ormai da diverso tempo ed è in quella fase di transizione da essere prerogativa dei player più innovativi a essere una parte integrante di ogni strategia aziendale in ambito IT e applicativo. Il primo passo e quello più ovvio è di gestire la potenza di calcolo non all’interno del proprio datacenter, ma piuttosto sul cloud. Far funzionare un server sul cloud è molto più veloce e, soprattutto per le grandi aziende, l’aggiunta di potenza di calcolo si è sempre rivelato un problema. Sono stato in situazioni in cui “trovare una presa per un nuovo server” era una complicazione posta all’ordine del giorno delle riunioni con gli executive.
Questa strategia si riferisce al lift-and-shift ed è oggi uno dei driver principali per l’adozione del cloud, in quanto i benefici immediati sono evidenti. Anche se non c’è nulla di sbagliato a spostare il carico di lavoro esistente sul cloud, non è in ogni caso la migliore idea. La semplice ragione è che queste applicazioni non sono state progettate per essere eseguite sul cloud. Come potrebbero? Sono state create infatti prima del cloud così come lo conosciamo oggi.
Il cuore del problema è che l’esecuzione di applicazioni non-cloud sul cloud è estremamente inefficiente. Queste applicazioni sono progettate per essere eseguite su grandi macchine che hanno capacità sufficiente per l’intero ciclo di vita dell’applicazione. Sono state inoltre costruite come entità monolitiche che rendono impossibile aggiungere capacità supplementare a piacimento. E tornando indietro a quando sono state progettate, questa non sarebbe stata comunque un’opzione percorribile.
Questo articolo ha catturato la mia attenzione [1]. Ovviamente Azure sembra avere qualche problema di capacità nel Regno Unito e sembra chiedere ai clienti di utilizzare data center in altre località. La parte veramente interessante è che i clienti sembrano in gran parte utilizzare le più grandi macchine disponibili. Questo potrebbe essere per specifiche esigenze di applicazioni che necessitano solo di questo tipo di infrastrutture, come per l’elaborazione massiccia di Big Data. Più probabilmente, tuttavia, le persone hanno bisogno di queste macchine semplicemente perché eseguono carichi di lavoro che sono stati progettati per il data center piuttosto che per il cloud. Questi utilizzerebbero rigorosamente macchine con un footprint enorme.
I carichi di lavoro sul cloud invece sono costruiti sul concetto di Micro Servizi. Si tratta di piccoli pezzi di software con un basso grado di accoppiamento che possono essere scalati velocemente su richiesta e hanno anche un footprint minore.
Oltre a questo ci sono alcuni servizi che solitamente erano distribuiti su server e sono ora erogati as a service in cloud. Le banche dati sono un esempio perfetto. Quando si passa al cloud, non facciamo girare il database su un nodo di cloud computing, ma utilizziamo i servizi database dei provider cloud. I principali fornitori AWS e Azure offrono entrambi questi servizi e incoraggiano i clienti a usarli. L’utilizzo di questi servizi rispetto al proprio ha anche il vantaggio di garantire costi inferiori di operatività in quanto non è necessario preoccuparsi degli aggiornamenti software, della capacità o dei fail over.
Quindi, quando ci si sposta sul cloud, è necessario seguire delle linee guida fondamentali per assicurarsi di trarre veramente beneficio dal cloud e garantirsi anche una crescita futura.
– Mappare i requisiti dell’infrastruttura. Prima di spostarsi sul cloud, occorre mappare il panorama delle applicazioni e comprendere i requisiti di calcolo. Questo aiuta a capire quali sono le applicazioni pronte per girare in cloud.
– Iniziare ad adottare i principi nativi del cloud. Le applicazioni cloud sono realizzate appositamente per operare in piccole unità chiamate Micro Servizi che possono essere facilmente scalate e distribuite. Il paradigma dei 12 fattori delle app [2] offre un buon punto di partenza.
– Riesaminare i requisiti hardware. Usa monitoraggio e programmazione della capacità per capire se hai scelto servizi cloud di dimensione adeguata rispetto alle tue necessità. La maggior parte delle persone vuole giocare sul sicuro e sovrastima di molto la propria necessità di cloud [3].
– Provare a sfruttare i servizi cloud quanto più possibile. Solo perché sei abituato a eseguire determinati servizi applicativi “da zero”, non significa che tu debba fare la stessa cosa sul cloud.
In sintesi, c’è da tenere presente che il passaggio al cloud in realtà implica molto di più. I principali provider offrono supporto e competenza per facilitare la migrazione e aiutare a sfruttare al meglio questo potenziale. Allo stesso tempo, occorre anche avere chiaro che una strategia di migrazione sul cloud non riguarda solo la decisione di dove dislocare i server, ma avrà un impatto più profondo sullo sviluppo delle applicazioni.