A cura di Lori MacVittie, Principal Technical Evangelist, F5 Networks
Consistency, ovvero coerenza. Secondo la definizione più comune un sistema è coerente quando è in grado di garantire che una volta memorizzato un nuovo stato nel sistema, questo sia utilizzato in ogni operazione successiva fino alla seguente modifica dello stesso. Anche nel mondo della tecnologia usiamo questo termine per descrivere la caratteristica di equivalenza: qualcosa è coerente se si comporta sempre nello stesso modo nel tempo o con condizioni variabili.
Oggi la coerenza in ambito tecnologico continua a rappresentare un aspetto problematico per le aziende che operano in un contesto sempre più multi-cloud.
In base alla nostra ricerca 2019 State of Application Services report si tratta di una criticità fondamentale che riguarda la maggior parte delle aziende intervistate (circa l’87%).
Certamente, il cambiamento repentino nella velocità dei deployment dei servizi applicativi nel data center e nel cloud porta in primo piano sempre la stessa conseguenza: il rischio di avere servizi applicativi che non siano distribuiti in modo coerente.
Non si tratta però dell’unica causa della mancanza di coerenza. Secondo quanto dichiarato nella nostra indagine, molte aziende che stanno implementando servizi applicativi on-premise e nel cloud pubblico faticano ancora a ottenere un sistema coerente; in particolare dal punto di vista della sicurezza.
Tutto questo richiede di approfondire meglio il significato stesso del termine “coerenza”; il sospetto è che parte del problema risieda nel non riconoscere che esistono due diversi livelli di coerenza ed entrambi sono importanti.
Una premessa indispensabile: i servizi applicativi non sono degli application delivery controller (ADC)
Prima di calarci nella discussione sul significato di coerenza è fondamentale precisare qual è la differenza tra un application delivery controller (ADC) e un servizio applicativo.
L’ADC è una piattaforma che offre servizi applicativi, un sistema a sé stante, pensato per garantire il deploying e le operation dei servizi applicativi.
Si tratta di una differenza molto importante, perché le piattaforme (o i sistemi, se si preferisce) portano con sé una nozione diversa di coerenza rispetto alle “cose” (i servizi) che implementano e gestiscono. Nel caso degli ADC parliamo di coerenza a livello operativo, vale a dire, la gestione e il funzionamento della piattaforma e dei servizi applicativi che offre.
La coerenza funzionale
Si tratta di un concetto radicalmente diverso da quello di coerenza funzionale, che viene offerta da ciascun servizio applicativo. La coerenza funzionale comprende le capacità del servizio applicativo ed è quella a cui le persone in genere fanno riferimento quando indicano una sfida che ha a che fare con la coerenza del multi-cloud, perché rappresenta l’aspetto più visibile.
La coerenza funzionale è particolarmente difficile da ottenere quando si distribuiscono servizi applicativi a partire da diversi provider. Un servizio WAF o Anti-bot di un fornitore, ad esempio, non è necessariamente equivalente dal punto di vista funzionale a un servizio WAF o Anti-bot di un altro fornitore.
Uno dei motivi per cui le organizzazioni faticano a ottenere la coerenza multi-cloud non è perché non distribuiscono i servizi applicativi nel cloud, ma perché distribuiscono diversi servizi applicativi con capacità funzionali non coerenti. In questo caso, la standardizzazione basata sull’equivalenza funzionale aiuterà le aziende a ottenere maggiore coerenza.
La coerenza operativa
La seconda tipologia di coerenza, meno citata, è a livello di piattaforma. Qui, per un numero significativo di organizzazioni aziendali, entra in gioco l’ADC.
Quando si migra sul cloud pubblico, molte aziende scelgono (deliberatamente o casualmente) di utilizzare delle opzioni cloud-native per i servizi applicativi. Tale scelta introduce immediatamente un’incoerenza operativa a livello di piattaforma: il modo in cui è possibile eseguire il provisioning, l’onboarding e l’operatività di tali servizi applicativi introduce un debito operativo fin dal momento in cui si collega alla prima API.
Di solito non si utilizzano servizi applicativi cloud-native on premise e questo si traduce nell’avere a che fare con due diverse piattaforme di servizi applicativi, che adottano diverse metodologie di gestione, analisi, monitoraggio e altro.
È come usare due diversi ADC on-premise: alcune organizzazioni molto grandi riescono a farli funzionare ma nel corso degli anni abbiamo notato come la maggior parte delle aziende scelga di adottare come standard un’unica piattaforma ADC. La coerenza operativa e la capacità di replicare le policy dei servizi applicativi per tutte le applicazioni è stata il fattore trainante in questa decisione.
Ma quando ci si sposta sul cloud, molti sembrano dimenticare i motivi per cui avevano scelto di adottare come standard un’unica piattaforma ADC: la coerenza operativa e il supporto. L’introduzione di piattaforme aggiuntive aumenta necessariamente l’onere per le operation e compromette la ricerca di coerenza.
Perché la coerenza richiede l’adozione di standard
“Standardizzazione”: questa parola può sembrare spaventosa a chi la interpreta come livellazione verso il basso, capace di soffocare l’innovazione. Ancora più preoccupante però è quell’approccio libero e incontrollato che incoraggia l’innovazione ma che a lungo termine diventa insostenibile, creando un ambiente operativo caotico.
Con un team IT sotto pressione, che deve fornire valore all’azienda, essere costretti ad aumentare gli sforzi del personale operativo per gestire più piattaforme e una miriade di servizi applicativi sembra essere diametralmente opposto all’obiettivo di raggiungere la coerenza multi-cloud.
La standardizzazione, specialmente a livello operativo, è una componente chiave dell’innovazione perché riduce l’onere del personale focalizzato sulle piattaforme operative e incoraggia invece la collaborazione rispetto alle policy e all’architettura. Garantendo sia la coerenza operativa sia quella funzionale tra le proprietà, le organizzazioni potranno raggiungere la completa coerenza delle policy a cui aspirano senza dover prevedere nuovi costi e investimenti.