Cerca
Close this search box.
Cerca
Close this search box.

Robustezza e resilienza: imperativi strategici per proteggere e far crescere il business

Come la piattaforma low-code di Mendix ci aiuta a prevenire il rischio tecnologico  

In che modo il team IT può assicurarsi la fornitura di sistemi e applicazioni che rispettano i requisiti di robustezza e resilienza.

Avere un parco applicativo che rispetta i requisiti di robustezza e resilienza è una questione strategica cruciale, legata alla protezione e alla crescita del business. Quando parliamo di robustezza e resilienza, facciamo riferimento a due aspetti distinti che influenzano la capacità di un sistema di affrontare problemi e garantire un funzionamento affidabile nel tempo 

  • La robustezza si riferisce alla capacità di un’applicazione di funzionare correttamente anche in presenza di condizioni anomale o imprevisti interni al sistema stesso. È un fattore interno perché riguarda come il sistema è progettato e implementato: è legata alla qualità del codice, alla gestione delle eccezioni e alla capacità del sistema di autolimitare i danni derivanti da malfunzionamenti interni. In sintesi, possiamo dire che un’applicazione robusta è “forte dentro”: quindi riesce a gestire errori interni (come bug, accessi non validi alla memoria), a resistere a malfunzionamenti (ad es. fallimenti parziali di alcune componenti software) e a comportarsi in modo prevedibile in presenza di condizioni di input anomale.
  • La resilienza invece si riferisce alla capacità dell’applicazione di riprendersi da eventi esterni avversi e di continuare a funzionare in modo accettabile, ripristinando le funzionalità e riducendo al minimo il down-time. Gli eventi esterni possono essere di vario tipo: guasti hardware (interruzione di corrente, server che si spengono improvvisamente), problemi di rete, attacchi informatici, overload di richieste ma anche imprevisti non prevedibili come disastri naturali o condizioni operative avverse. La resilienza è un fattore esterno, in quanto dipende dall’interazione del sistema con l’ambiente circostante. In sintesi, possiamo dire che un sistema applicativo resiliente non si limita a evitare guasti, ma è in grado di “ritornare indietro” e recuperare uno stato funzionante anche dopo che si è verificato un evento critico.  

     

Ignorare questi aspetti crea un rischio tecnologico, ma soprattutto aziendale 


Un
parco applicativo che non rispetta i requisiti di robustezza e resilienza crea un ambiente fragile, in cui anche i piccoli guasti e imprevisti possono avere effetti a catena devastanti per il business. I motivi per cui si viene a creare questa situazione possono essere molteplici:  

  • il fatto che nel proprio ambiente IT ci siano applicazioni datate (e quindi non progettate per gestire le esigenze moderne in termini di scalabilità, sicurezza, affidabilità) e che sia difficile garantire la loro manutenzione e il loro aggiornamento. Questo aspetto è legato a stretto giro con il budget e le risorse tecniche disponibili: spesso ci sono vincoli di tempi, costi e risorse che non permettono di imbarcarsi in progetti di rinnovo delle applicazioni 
  • il fatto che le applicazioni rientrino in architetture e integrazioni complesse: l’interdipendenza dei componenti, se non gestita correttamente, crea un effetto a catena che può danneggiare l’intero ecosistema. Un approccio tradizionale, diciamo monolitico, rende più difficile isolare i problemi e scalare i singoli moduli. Questo rischio si riduce con le moderne architetture a microservizi, che permettono di suddividere le applicazioni in componenti più piccoli, indipendenti e facilmente mantenibili.


Il rischio tecnologico può diventare un rischio per l’intera azienda fino a: 

  • danneggiare i flussi di entrate: interruzioni o problemi possono ridurre la capacità dell’azienda di generare reddito 
  • danneggiare la reputazione aziendale: se l’azienda non viene percepita da clienti e partner come affidabile e in grado di fornire servizi continui senza intoppi c’è un danno reputazionale 
  • bloccare l’operatività aziendale fino a compromettere la produzione stessa


In un contesto in cui le applicazioni devono essere sempre più affidabili e disponibili, l’IT deve essere in grado di fornire al business garanzie sul fatto che
le applicazioni rimangano operative in ogni circostanza e che possano riprendersi rapidamente quando si verifica un guasto.  

Come possiamo evitare che i sistemi crollino come castelli di carta

Molte organizzazioni stanno guardando al low-code come a una soluzione per garantire resilienza e robustezza: tempi di sviluppo e iterazione più rapidi (quindi anche più possibilità di fare test), utilizzo di blocchi predefiniti e già predisposti di meccanismi integrati di monitoraggio e gestione delle eccezioni, possibilità di gestire in modo centralizzato e automatizzato gli aggiornamenti per i componenti utilizzati, visto che il codice sottostante è gestito dalla piattaforma low-code stessa.  

Quest’ultimo punto, il fatto che le applicazioni possano continuare a funzionare senza interruzioni anche dopo un aggiornamento, è un aspetto fondamentale al giorno d’oggi. Ricordiamo il caso Crowdstrike, dove un aggiornamento difettoso ha causato un’interruzione globale: questo sottolinea quanto sia cruciale avere un sistema di aggiornamenti che possa garantire la continuità operativa anche durante i processi di patching o update.

Il rischio legato all’utilizzo di piattaforme low-code è legato non tanto alla produzione – che è molto semplificata per via di interfacce grafiche e componenti predefiniti che possono essere assemblati senza la necessità di scrivere grandi quantità di codice manualmente – quanto al design dei processi e delle integrazioni  

In WEGG siamo consulenti esperti di analisi dei processi aziendali, al fine di ottimizzarli:

  • identifichiamo le inefficienze nei processi esistenti e proponiamo soluzioni che sfruttano funzionalità low-code per essere implementate velocemente 
  • progettiamo processi su misura per creare soluzioni personalizzabili e adattabili alle specifiche esigenze aziendali. La capacità di produzione del low-code riduce la necessità di dover adattare i processi alle tecnologie esistenti  
  • ma soprattutto siamo in grado di orchestrare l’integrazione tra le varie applicazioni aziendali, siano esse legacy o moderne, creando un ecosistema fluido che sfrutta al massimo le capacità della tecnologia low-code  


Nel
nostro scouting di tecnologie low-code abbiamo individuato la scelta migliore nella piattaforma Mendix, di proprietà Siemens, in quanto ci sono funzionalità che garantiscono robustezza e resilienza by design. Essa è riconosciuta nel quadrante di Gartner per il settimo anno consecutivo tra le migliori piattaforme low-code sul mercato e ha soluzioni verticali anche per settori che richiedono elevata complessità, come quello finanziario, manufatturiero e sanitario.  

Creare applicazioni robuste e resilienti con Mendix 


Prendiamo come esempio
un sistema di gestione degli ordini: un’architettura tradizionale e monolitica rende difficili o impossibili i rapidi cambiamenti necessari per stare al passo con un ambiente aziendale in continua evoluzione. I frequenti aumenti della domanda, la necessità di aggiornare rapidamente il software, talvolta in tempo reale, la capacità di gestire la dimensione o la durata della coda prima che diventi un problema, l’essere in grado di ripristinarsi rapidamente se un server va giù… sono tutti elementi che incidono sul modello di business e sulla sua capacità di soddisfare richieste e aspettative degli utenti.  

Metodi di sviluppo alternativi come il low-code sono sicuramente efficaci quando si tratta di muoversi più rapidamente e di preparare l’organizzazione al futuro, ma devono avere funzionalità native di robustezza e resilienza per poter ri-architettare sistemi monolitici in più moderne architetture di microservizi. La creazione e replicazione di questa rete di applicazioni è molto più semplice rispetto alla programmazione e alla duplicazione tradizionale.  

Ma il vantaggio di Mendix è quello di poter gestire e ottimizzare regolarmente questi microservizi senza tempi morti grazie a funzionalità CI/CD (Continuous Integration/Continuous Delivery) che distribuiscono applicazioni in modo automatizzato e ben collaudato. Per dirla in breve, se è necessario apportare una modifica, questa può essere fatta senza influenzare il resto del panorama in quanto è sufficiente distribuire una nuova applicazione. Quali sono i vantaggi? 

  • È possibile distribuire nuovi aggiornamenti e funzionalità senza dover interrompere l’operatività delle applicazioni esistenti. Questo garantisceresilienza, poiché le applicazioni possono evolversi rapidamente in risposta a nuove esigenze o correzioni di bug senza causare down-time.

     

  • Una pipeline CI/CD automatizza i test, identificando eventuali problemi prima che arrivino in produzione. Questo migliora la robustezzadell’applicazione, riducendo il rischio di errori critici grazie alla rapida individuazione di anomalie o conflitti. 


Il
Version Control nativo di Mendix, inoltre, garantisce anche la tracciabilità nella gestione delle versioni del codice. Ogni modifica al codice può essere facilmente recuperata in caso di problemi: quindi questo influisce sia sulla stabilità dell’applicazione sia sulla resilienza operativa perché facilita il roll-back a una versione precedente e funzionante.  

 

High Availability/Disaster Recovery integrati nella progettazione di applicazioni 


Mendix ha come elemento differenziante un’infrastruttura modulare che permette
la creazione di moduli componibili, ognuno dei quali può sfruttare le funzionalità di alta disponibilità e disaster recovery fornite dalla piattaforma, senza che sia necessario aggiungere ulteriori livelli di gestione manuale. Questo significa che sia i microservizi sia le applicazioni più grandi, distribuite come una serie di moduli, sono protetti da queste soluzioni di resilienza. 

  • Quando si parla di alta disponibilità (HA), facciamo riferimento alla capacità di Mendix di distribuire le applicazioni su più server e data center, garantendo che siano sempre accessibili, anche in caso di guasto di un singolo nodo o server. I moduli creati e distribuiti, infatti, sono supportati da infrastrutture con ridondanza incorporata e i tempi di inattività sono ridotti al minimo grazie alla distribuzione dei carichi su server multipli

     

  • Quando si parla di Disaster Recovery (DR), facciamo riferimento alla capacità di Mendix di fornire un robusto sistema di backup e ripristino che garantisce il recupero rapido delle applicazioni e dei dati. Ciò significa che ogni componente o servizio, indipendentemente dalla sua complessità o funzione, è protetto da strategie di backup che permettono di recuperare velocemente lo stato operativo. 


Inoltre, come abbiamo già detto, ogni modulo può essere aggiornato o distribuito in modo automatico e sicuro, con piani di continuità operativa che tengono conto delle
strategie di HA/DR. Questo garantisce che i moduli siano disponibili, facilmente recuperabili in caso di guasto e modificati e aggiornati senza compromettere la resilienza dell’intero sistema. 

Un percorso di revisione delle proprie architetture allo scopo di offrire maggiori garanzie di robustezza e resilienza passa per un’analisi degli input/output e dei processi che si vuole ottimizzare e la distribuzione di una rete di applicazioni configurate ad hoc su tecnologia Mendix con funzionalità native che ne assicurano la disponibilità e il ripristino in caso di imprevisti. Ricordiamoci che la pipeline CI/CD permette anche la gestione proattiva di eventuali problematiche, con la possibilità di aggiornare e rivedere processi tra le maglie del sistema mentre esso è in funzione. 

02-s pattern02

Vorresti aumentare la robustezza e la resilienza del tuo parco applicativo?

Contattaci per una consulenza!