Migrazione in Cloud: i Cloud Blocker - Come individuarli con CAST Highlight

By on
 

Introduzione

La migrazione di un’applicazione al cloud è un processo di spostamento di un'applicazione software da un server locale all'ambiente di un provider cloud. Questo processo di migrazione al cloud include il trasferimento di database, dati, applicazioni e processi IT.

Per migrare un’applicazione ci sono diversi passi da seguire, il primo di questi è senz’altro quello di individuare l’applicazione e farne un assessment per analizzare e verificare:

- Quanto l’applicazione è ‘pronta’ per essere migrata al cloud,

-  L'architettura,

- Le sue dipendenze da altri sistemi,

- Il sistema operativo sottostante,

- L'hardware,

- L'archiviazione, i servizi di supporto e quanti dati dovranno essere spostati nel cloud.

- ecc.

Cloud Blockers/Roadblocks

Nel caso di applicazioni che possono essere migrate (cloud-ready), che quindi nella definizione delle 5R non sono classificate come Rebuild (vanno completamente riscritte) o Retire (da scartare ed eventualmente sostituire), la prima cosa da fare è andare a vedere se nel codice ci sono degli ostacoli, i Cloud Blocker, che potrebbero compromettere il funzionamento dell’applicazione nel cloud.

Già nel lontano 2014 Kyle Brown e Mike Capern segnalavano in un loro articolo le 9 principali regole per le applicazioni cloud in cui elencavano le cose da fare e da non fare per rendere un'applicazione pronta per il cloud; riporto di seguito l’elenco dei cloud blocker che Brown e Capern hanno riassunto molto bene in 9 regole:

  1.  Don’t code your application directly to a specific topology
  2.  Don’t assume the local file system is permanent
  3.  Don’t keep session state in your application
  4.  Don’t log to the file system
  5.  Don’t assume any specific infrastructure dependency
  6.  Don’t use infrastructure APIs from within your application
  7.  Don’t use obscure protocols
  8.  Don’t rely on OS-specific features
  9.  Don’t manually install your application

Ebbene negli ultimi 25 anni, CAST ha sfruttato conoscenze uniche sulla misurazione della qualità del software analizzando migliaia di applicazioni e miliardi di righe di codice. Sulla base di questa esperienza e degli standard sulle migliori pratiche di programmazione, CAST ha implementato nel suo tool Highlight centinaia di Insight sul codice in varie tecnologie (C#, C/C++, Clojure, Cobol, Java, JavaScript, Kotlin, PHP, Python, Scala, Swift, T/Sql, Typescript, VB/VB.Net) al fine di valutare lo stato di salute del software e quindi determinare anche tutto ciò che è Blocker per il passaggio in cloud.

In CAST Highlight i blockers, denominati Roadblocks, sono determinati in base alla tecnologia. In alcuni casi specifici sono rilevati anche blocker che possono determinarsi migrando verso specifici servizi dei Cloud Vendor Provider supportati (AWS, Azure, Google Cloud Platform e IBM Cloud).

Vediamo nella figura di seguito come sono riportati i Roadblock in CAST Highlight:

Lista dei RoadblockFigura 1: Lista dei Roadblocks

Dall'immagine si può vedere il dettaglio dei blocker rilevati in una applicazione.
Per ogni blocker vengono fornite le seguenti informazioni:

  • Tipo di Blocker: selezionando l’icona ‘?’ viene aperto un popup (vedi Figura 2) che riporta una serie di informazioni sul blocker tra cui: il razionale, la criticità, dove ha impatto (Codice, Architettura, Framework), come viene determinato nelle diverse tecnologie in cui è applicabile
    Dettaglio della tipologia dei Roadblock

Figura 2: Dettaglio della tipologia di Roadblock

  • La tecnologia dell’applicazione dove è stato rilevato il blocker;
  • Dove ha impatto il blocker: possibili valori sono: C (Code), F (Framework), A (Architecture);
  • La Criticità: Critical, High, Medium, Low;
  • La Contribution, un indicatore di quanto pesa in negativo il blocker calcolato sulla base del numero di blocker di quella tipologia presenti, pesati sulla base di un fattore di negatività dipendendente dal tipo di blocker;
  • Roadblocks, indica il numero di roadblock trovati nell’applicativo. Selezionando il numero, compare la lista dei file dove sono stati rilevati i blocker (vedi figura 3).

    Lista dei file in cui è presnte il roadblock
                                                                                               Figura 3: Lista dei file in cui è presente il Roadblock
  • Stima, in giorni uomo, del tempo necessario per risolvere i blocker rilevati. I valori con cui viene stimato l’effort sono preimpostati ma possono essere modificati.

Da notare che l’ultima tipologia di blocker riportatoin Figura 1 “Using function ALTER DATABASE - Unsupported in Azure SQL Database” è specifico del servizio Azure SQL Database.

Conclusioni

Ci sono vari passaggi per migrare un'applicazione, tra i primi mettiamo senz’altro quello di fix di tutti i blocker che è condizione necessaria per potere migrare un’applicazione con successo. CAST Highlight è il tool in grado di trovare questi blocker e contarli, vedere dove hanno impatto, misurarne la criticità ed indicare dove sono presenti.