Il viaggio verso il cloud
Qualsiasi processo di trasformazione del cloud che includa la migrazione delle applicazioni sarà complesso. Eppure, tra questa complessità, ci sono alcune destinazioni chiaramente definite nel viaggio verso il cloud. Una di queste destinazioni implica fino a che punto dobbiamo essere "pronti per il cloud" per realizzare l'applicazione di destinazione. Fino a che punto vuoi/hai bisogno che l'applicazione sia pronta per il cloud per passare al cloud nell'intervallo di tempo desiderato? In questo documento, delineeremo alcune di queste destinazioni ed evidenzieremo le best practice e le lezioni apprese in base al nostro viaggio. La chiave del successo è definire chiaramente in anticipo gli obiettivi di migrazione in modo da poter prendere decisioni mirate su come raggiungerli. Ti troverai di fronte a molti percorsi potenziali. Nel corso della migrazione, sviluppatori, team di consegna e dirigenti dovranno valutare e fare molte scelte su come procedere.
Ti consigliamo di concentrarti sui seguenti driver tecnici e di business per inquadrare le decisioni che devi prendere e raggiungere i tuoi obiettivi di business.
Scalabilità
I servizi cloud forniscono potenza di calcolo su larga scala, ben oltre ciò che è possibile ottenere con le infrastrutture gestite, consentendo così alla tua attività di crescere per soddisfare le opportunità di mercato. L'infrastruttura basata sul cloud come servizio (IaaS) e sulla piattaforma come servizio (PaaS) consente agli ISV di concentrarsi sulla creazione di architetture scalabili utilizzando componenti moderni. Un ulteriore vantaggio della migrazione è che, liberando i team di sviluppo interni dalla gestione e dalla scalabilità delle operazioni IT, è possibile concentrarsi sulla messa a punto e sull'ottimizzazione delle performance.
Modernizzazione
La modernizzazione di set di strumenti, servizi e architetture facilita l'integrazione tra i componenti, aiutando le applicazioni a realizzare il pieno valore degli strumenti e delle tecnologie disponibili nel cloud. Tali strumenti spaziano dagli aggiornamenti dell'infrastruttura alle pipeline di distribuzione automatizzate fino ai modelli di machine learning integrati che migliorano le performance delle applicazioni. La modernizzazione è molto importante laddove i mercati vivono un cambiamento rapido e coerente, poiché le applicazioni devono essere dinamiche per stare al passo. In alcuni casi, i servizi possono essere completamente riscritti e rinominati, sfruttando lo stack tecnologico più recente per offrire costi inferiori oppure opzioni di servizio più snelle. Tali cambiamenti possono aggiornare i prodotti obsoleti e sconvolgere i mercati consolidati in cui le offerte con licenza sono la norma. In altri casi, i prodotti possono essere revisionati con nuovi approcci, migliorando il servizio e preservando al tempo stesso la visibilità del brand e la fidelizzazione del cliente. Ciò non richiede necessariamente una modifica completa della suite di prodotti.
Il passaggio al cloud diventa un fattore scatenante per una spinta alla modernizzazione di più ampio respiro. Poiché il cloud fornisce a te e ai tuoi team l'accesso a servizi, tecnologie e competenze che non erano precedentemente disponibili nella tua organizzazione, diventa possibile raggiungere nuovi obiettivi e offrire nuove funzionalità. I tuoi team possono rinnovare lo stack tecnologico per concentrarsi su nuove funzionalità di prodotto generalmente applicabili piuttosto che su codice personalizzato collegato a implementazioni di clienti specifici. Con il provisioning dei servizi, gli aggiornamenti dei prodotti e l'assistenza clienti a ritmi più veloci rispetto al passato, le risorse possono essere riorientate sullo sviluppo di nuove funzionalità. In questo modo, la migrazione al cloud pone le basi per un'ampia ondata di attività di modernizzazione, trasformando tutto, dall'esecuzione degli aggiornamenti dei prodotti alla qualità del customer service.
"La migrazione a Gen2 Cloud ha consentito a Oracle di garantire la consegna di successo dei nostri servizi tramite un solido modello DevSecOps e ci ha permesso di supportare le trasformazioni aziendali dei nostri clienti. Ora rilasciamo software ogni giorno e abbiamo ridotto i tempi di provisioning di oltre il 98%." — Karthic Murali, Senior Principal Product Strategy Manager, Oracle Global Business Units

Standardizzazione
La standardizzazione tra IaaS e PaaS consente di ridurre le spese generali e di rendere i team più flessibili e sostituibili. Man mano che le organizzazioni crescono, i tuoi team adotteranno strumenti di vari livelli di maturità. Il consolidamento di questi set di strumenti all'interno del servizio cloud astrae gran parte della complessità associata a questo livello di gestione IT. Consente lo sviluppo e l'uso di pratiche operative standard per attività che possono essere mappate in tutto il portfolio. La standardizzazione rende anche le attività di routine più semplici e prevedibili, riducendo la domanda di manodopera per le attività di base. Le risorse precedentemente impegnate nella navigazione di processi vari e possibilmente incompatibili tra le applicazioni sono ora libere di concentrarsi su problemi più importanti, incluso lo sviluppo di prodotti e servizi di prossima generazione per i clienti.
In particolare, la standardizzazione semplifica l'applicazione di policy e pratiche globali in materia di sicurezza, rischio, compliance e altre attività operative che i tuoi team possono facilmente applicare ai prodotti esistenti e nuovi. Di fatto, molte delle capacità intrinseche della piattaforma IaaS, come le certificazioni di compliance accreditate, possono essere ereditate dall'applicazione.
Ottimizzazione dei ricavi
L'ottimizzazione dei ricavi può essere ottenuta in due modi principali. Il primo, e più ovvio, è la riduzione dei costi. L'eliminazione dei data center utilizzando soluzioni IaaS non solo sposta il modello finanziario da CapEx a OpEx, ma in genere si traduce anche in significativi risparmi sul TCO. Ciò che potrebbe non essere così ovvio sono i risparmi sui costi ottenuti razionalizzando lo stack tecnologico utilizzato in un portfolio di applicazioni che sono state migrate al cloud. I set di strumenti comuni creano conoscenza istituzionale ed eliminano le spese associate alla formazione ad hoc per strumenti non standardizzati. In questo modo, i set di strumenti comuni che trattano l'infrastruttura come codice forniscono un'automazione che alla fine consente di risparmiare tempo e costi di manodopera. Infine, i team specializzati in aree fondamentali che si applicano a tutto il portfolio, come la sicurezza, eliminano la necessità di creare esperti all'interno di ogni singolo team di prodotto.
In secondo luogo, il passaggio al cloud può in definitiva ottimizzare le entrate aiutandoti a raggiungere il mercato più rapidamente, poiché i tempi di sviluppo del prodotto vengono generalmente ridotti, se un'applicazione è pronta per il cloud o è nativa per il cloud. Entrare nel mercato più rapidamente significa ottenere ricavi in tempi più rapidi. Se un'applicazione è pronta per il cloud, può essere distribuita ovunque nel mondo in pochi minuti.
Se abbinati, i principi discussi finora dovrebbero tradursi in architetture di prodotti e servizi standardizzati, nonché in una migliore velocità e qualità di implementazione. Ridimensionare i risultati della progettazione per modelli ripetuti contribuisce all'ottimizzazione dei ricavi, a un time-to-value più rapido e alla conseguente capacità di riorientare le risorse sul miglioramento della qualità e dell'integrità del servizio per i clienti.
"Abbiamo ottenuto una performance finanziaria che ci ha permesso subito di risparmiare dal 30 al 35% di spese CapEx e, grazie alle ottime performance di OCI, il ROI che forniamo con la nostra suite continua a migliorare sempre di più." —Mike Morini, Chief Executive Officer, WorkForce Software
Per saperne di più
Percorsi verso il valore nel cloud
Il cloud computing può includere una serie di risorse IaaS e PaaS, nonché molteplici modelli di implementazione del software, che vanno dall'accesso a istanze bare metal ad ambienti containerizzati integrati a stack di servizi completamente funzionali. Al livello più elementare, il cloud computing si riferisce alla sostituzione dei componenti dell'infrastruttura fisica con risorse IaaS di base.
La maggior parte delle applicazioni aziendali non è stata originariamente creata per il cloud. Per molte applicazioni, la conversione o la conformità ai modelli cloud richiede tempo e difficoltà. La conversione della piattaforma può essere costosa sia dal punto di vista del tempo che del lavoro, quindi non sorprende che a volte possa essere più semplice progettare da zero i componenti principali nativi nel cloud. Tenendo presente questo aspetto, quando considerano una migrazione al cloud, le aziende in genere si trovano in uno dei seguenti tre scenari principali.
- Abbandono di data center legacy: la gestione di un data center è costosa. Edifici, persone, alimentazione, raffreddamento, manutenzione e aggiornamenti sono solo alcune delle responsabilità quotidiane. Molte aziende stanno lavorando attivamente per ridurre o eliminare la loro dipendenza dai data center, valutando i portafogli di applicazioni affinché i candidati possano trasferirsi fuori sede. La priorità è spostare le applicazioni al di fuori di un hosting collocato nello stesso punto e gestito o dai data center on-premise nel tentativo di ridurre o eliminare le spese di capitale. Spesso viene utilizzata una strategia lift-and-shift in base alla quale l'applicazione viene migrata così com'è su un server bare metal o su una macchina virtuale nel cloud.
- Evoluzione dello stack tecnologico: in questo caso, le aziende iniziano ad apportare modifiche incrementali alle applicazioni che richiedono investimenti aggiuntivi, ma ci si aspetta anche che col tempo apportino più valore. Un esempio potrebbe essere la sostituzione delle versioni on-premise di Oracle Database con Oracle Autonomous Database basato su cloud senza apportare modifiche importanti all'applicazione stessa. Questa è a volte indicata come una strategia move-and-improve.
- Migrazione dell'intero stack al cloud nativo: i vantaggi della riprogettazione totale di un'applicazione per fare in modo che sia pronta per il cloud potrebbero superare i costi di mantenere intatta un'applicazione meno matura durante l'implementazione di uno degli scenari sopra menzionati. Le applicazioni cloud native sono altamente distribuite in natura e spesso sono costruite utilizzando principi a 12 fattori e sono quindi progettate per essere indipendenti dall'architettura sottostante, il che significa che le applicazioni continuano a funzionare anche quando l'infrastruttura sottostante si danneggia. In breve, vale la pena valutare se questo percorso ha senso per l'applicazione di destinazione, poiché il passaggio al cloud sarà sicuramente più semplice rispetto allo spostamento di un'applicazione strettamente collegata alla propria infrastruttura sottostante.
Per scoprire come Oracle definisce il cloud nativo, le origini delle app cloud native e le best practice da seguire durante la loro creazione, ti invitiamo a leggere questo e-book.
Un altro modo per immaginare questi scenari è esaminare lo spettro di azioni che potresti intraprendere per migrare un'applicazione aziendale a un'architettura cloud nativa mentre la trasferisci a Oracle Cloud Infrastructure. Vedere la Figura 1 qui di seguito.

Figura 1: cambiamento della migrazione al cloud e livelli di investimento
Il lato sinistro della Figura 1 rappresenta la quantità minima di cambiamento, il time to value più breve e l'investimento iniziale più basso. Il livello di cambiamento, investimento e tempo generalmente aumentano man mano che ci si sposta verso destra, ma anche il valore ottenuto è maggiore. Questo modello ti aiuta a definire un modo per prevedere quali tipi di investimenti considerare durante la fase di migrazione. Da notare che gli scenari non sono necessariamente distinti e sono leggermente sovrapposti, poiché le applicazioni sono costruite in tantissimi modi diversi.
Gli scenari sopra descritti diventano punti di riferimento chiave per valutare i livelli di maturità esistenti e gli obiettivi di transizione al cloud. Il divario tra lo stato attuale e lo stato di destinazione fornisce una stima approssimativa dell'ambito delle modifiche tecniche e di processo necessarie per la transizione al cloud. In un mondo perfetto, la transizione al cloud dovrebbe portare tutte le applicazioni a passare a modelli di distribuzione nativi nel cloud. Tuttavia, dati i vincoli di tempo e risorse, poche organizzazioni sono in grado di trasferire l'intero portfolio a un modello nativo nel cloud in un unico processo. Anche i semplici sforzi di trasformazione della piattaforma esistente possono richiedere molte risorse e investimenti significativi, anche solo per replicare le funzionalità legacy.
La transizione al cloud consiste quindi nell'identificare i compromessi tra il livello di maturità cloud ottimale (in cui le applicazioni si trovano nel continuum da ospitato nel cloud al cloud nativo mostrato sopra) e l'investimento ingegneristico necessario per riprogettare il prodotto e i processi di business associati. In questa fase, il passaggio chiave è identificare i livelli di maturità attuali e target di ogni applicazione con una stima approssimativa degli investimenti di sviluppo necessari per colmare il divario.
Le applicazioni che cambiano i livelli di maturità durante la migrazione devono anche modificare i modelli operativi e le aspettative. La modifica dei livelli di maturità influisce sui team, sui processi e sulle politiche che supportano il servizio.