venerdì 5 settembre 2014

Impatti delle applicazioni mobili sui sistemi server

Con l'aumento esponenziale delle APP e più in generale degli accessi al WEB dai dispositivi mobili, sono cresciuti enormemente i volumi delle connessioni e delle richieste verso i sistemi server che effettivamente detengono le informazioni. 



Per fare un esempio, se fino a pochi anni fa chi si collegava al sito del Meteo lo faceva al massimo una volta al giorno dal PC, oggi gli utenti che usano la specifica APP sullo smartphone sono tantissimi e lo fanno con frequenza molto più elevata.

Qualsiasi servizio o tipologia di informazione le aziende mettano a disposizione della propria clientela online, il numero delle transazioni client-server è decuplicato rispetto al passato.

Il trend è in continua ascesa, gli impatti sui sistemi di backend sono importanti e per reggere l'urto le aziende sono costrette a potenziare le proprie infrastrutture hardware ed implementare architetture software più efficienti.



A seconda delle specifiche situazioni, esigenze e disponibilità, si stanno mettendo in campo soluzioni di diversa tipologia (non esclusive).

Soluzione 1 - Potenziamento HW

La cosa che viene più facile ed immediata pensare è quella di incrementare le risorse HW (CPU, RAM, dispositivi di rete) dei sistemi impattati in modo da poterne aumentare performance e stabilità.
Per una attività di approvvigionamento HW, particolare importanza riveste la qualità del Capacity Plan, che deve essere fatto in modo accurato per evitare investimenti inutili, insufficienti o di corto respiro.

Pro:
  • Facilità di realizzazione (basta comprare ed installare)
  • Tempi di realizzazione
Contro:
  • Incrementare l'HW su un numero elevato di sistemi complessi ed eterogenei potrebbe rivelarsi molto costoso
  • Soluzione non risolutiva se in futuro dovesse aumentare il carico oltre quanto stimato nel Capacity Plan.



Soluzione 2 - Ottimizzazioni applicative 

La review funzionale dei sistemi, della architettura di integrazione ed un tuning sistemistico sono sempre attività opportune in questi casi.
Le ottimizzazioni possono essere apportate su più livelli:
  • Processi 
  • Software applicativo 
  • Configurazioni sistemistiche.

Pro:
  • Riprogettare i processi e rendere l'architettura applicativa dei sistemi maggiormente performante e scalabile, potrebbe consentire una corretta ripartizione del carico sulle risorse a disposizione, quindi di fatto risolvere il problema
Contro:
  • Rivedere processi e apportare modifiche al software applicativo potrebbe rivelarsi non fattibile o molto costoso
  • Non sempre le architetture dei sistemi si prestano ad essere estese in modo da implementare correttamente le nuove funzionalità 
  • I tempi di realizzazione sono legati alla quantità ed alla tipologia degli interventi.

Soluzione 3 - Introduzione di un layer applicativo di Data Caching

In caso i volumi siano molto elevati, la soluzione migliore prevede l'introduzione all'interno dell'architettura IT di un nuovo layer applicativo (Data Cache Service Layer), un sistema molto performante in grado di recuperare inizialmente dai sistemi server tutte le informazioni necessarie, memorizzarle all'interno di una propria cache e rispondere velocemente ai client.

Con questa soluzione, le richieste provenienti dai client non arrivano mai ai sistemi server ma vengono gestite direttamente dal Data Cache Service Layer.

Accorgimenti necessari:
  • implementare gli opportuni meccanismi di aggiornamento delle informazioni in caso vengano variate, per mantenerle sempre allineate tra i sistemi e la cache
  • strutturare internamente alla cache un Data Model adatto alla tipologia dei dati che si trattano ed alle modalità di interrogazione da parte dei client.




Pro:
  • Performance al top (non si perde tempo ad interrogare i sistemi di backend ma le informazioni sono già disponibili nella cache)
  • Nessun potenziamento HW sui sistemi
  • Ottimizzazione SW dei sistemi non necessaria
  • Massima predisposizione se in futuro dovesse aumentare ulteriormente il carico (basterà adeguare il Data Cache Service Layer senza dover toccare tutti i sistemi di backend)
Contro:
  • Necessario un investimento iniziale
  • Tempi e costi di realizzazione da valutare a seconda della complessità delle informazioni, dei sistemi e dei processi


Articoli Correlati