{"id":306,"date":"2023-06-13T13:34:19","date_gmt":"2023-06-13T13:34:19","guid":{"rendered":"https:\/\/www.enrichia.it\/?p=306"},"modified":"2024-01-25T23:33:25","modified_gmt":"2024-01-25T23:33:25","slug":"la-resilienza","status":"publish","type":"post","link":"https:\/\/www.enrichia.it\/index.php\/2023\/06\/13\/la-resilienza\/","title":{"rendered":"La Resilienza nei sistemi informatici"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilient-g047e420f1_1280-1024x768.jpg\" alt=\"\" class=\"wp-image-378\" style=\"width:441px;height:331px\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilient-g047e420f1_1280-1024x768.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilient-g047e420f1_1280-300x225.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilient-g047e420f1_1280-768x576.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilient-g047e420f1_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Nell&#8217;ultimo periodo mi sono trovato ad affrontare la progettazione di vari sistemi informatici, ed in particolare tra i vari aspetti a considerarne la <strong>resilienza.<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ho deciso di scrivere questo articolo perch\u00e9, quando mi sono imbattuto per la prima volta in questo esercizio, mi sarebbe stato di aiuto leggere da qualche parte le dimensioni da considerare per pensare ad un sistema resiliente. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In queste righe descrivo tutti gli aspetti principali che ho considerato, e che potete utilizzare come guida per avere sottomano le aree da tenere a mente per indirizzare le vostre decisioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ma cos&#8217;\u00e8 la Resilienza ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Partiamo dal concetto stesso della parola resilienza, termine di cui sentiamo sempre di pi\u00f9 parlare e che viene  applicato in vari ambiti, non solo tecnologica ma in generale alla vita di tutti i giorni. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cosa significa in pratica essere resilienti ? <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>SIGNIFICATO&nbsp;<\/strong>Resistenza alla rottura, capacit\u00e0 di affrontare e superare le avversit\u00e0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ETIMOLOGIA&nbsp;<\/strong>dal latino:&nbsp;<em>resilire<\/em>&nbsp;rimbalzare, saltare indietro.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Spesso il concetto di resilienza \u00e8 associato all&#8217;immagine del fiore che cresce nell&#8217;asfalto, perch\u00e9 rappresenta la capacit\u00e0 che la pianta sviluppa di crescere anche in ambienti ostili, come appunto in mezzo al cemento dell&#8217;asfalto nelle strade. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/resilienza-696x425-1.jpg\" alt=\"\" class=\"wp-image-307\" style=\"width:493px;height:301px\"\/><figcaption class=\"wp-element-caption\">Resilienza<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Perch\u00e8 \u00e8 importante per un sistema essere resiliente ?  <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Molto spesso si sottovalutano i rischi che si corrono in caso di guasto o compromissione di un sistema informatico. Immaginate di avere un sistema che gestisce i servizi e dati critici della vostra azienda, come  dati finanziari, dati degli utenti finali, servizi per gli ospedali o per le banche, ecc. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Queste sono solo alcune delle situazioni che potrebbe capitarvi di dover affrontare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Calamit\u00e0 naturali<\/strong> come un terremoto, un alluvione che possono compromettere i vostri sistemi, non rendendoli pi\u00f9 disponibili e con il rischio di perdere i dati<\/li>\n\n\n\n<li><strong>Attacchi informatici<\/strong>, uno dei comuni \u00e8 l&#8217;ormai noto ransomware, un tipo di malware che infetta i sistemi informatici e crittografa i dati in modo che diventino inaccessibili. Gli hacker richiedono poi  un riscatto per fornire la chiave di decrittazione che permette di recuperarli. Ma questo non \u00e8 l&#8217;unico!<\/li>\n\n\n\n<li><strong>Picchi imprevisti<\/strong>, qualsiasi servizio pu\u00f2 trovarsi ad affrontare un carico di lavoro imprevisto, che se non gestito pu\u00f2 comportare un fermo del servizio stesso<\/li>\n\n\n\n<li><strong>Down dei servizi<\/strong>, sono tante le casistiche che possono comportare il guasto di una componente di un sistema, un errore umano, un virus, un problema di rete, un aggiornamento sbagliato, un problema software, una matrice di compatibilit\u00e0 sbagliata, ecc <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se non pensate e gestite correttamente, queste o altre situazioni si possono tradurre con la compromissione completa dei vostri dati e servizi, con danni irreversibili per la vostra azienda. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In linea generale i principali rischi derivanti da un sistema non resiliente possono essere: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Interruzioni operative<\/strong> delle operazioni aziendali<\/li>\n\n\n\n<li><strong>Perdita di dati critici<\/strong> con conseguenze che possono essere finanziarie, legali e reputazionali<\/li>\n\n\n\n<li><strong>Vulnerabilit\u00e0 alla sicurezza<\/strong>, esponendo il sistema a gravi vulnerabilit\u00e0 di sicurezza<\/li>\n\n\n\n<li><strong>Difficolt\u00e0 nell&#8217;adattarsi ai cambiamenti<\/strong>, come alle nuove tecnologie o nuove esigenze aziendali<\/li>\n\n\n\n<li><strong>Costi operativi maggiori<\/strong>, a causa delle riparazioni frequenti e gestione di conseguenze di errori o attacchi informatici.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Semplificando, le conseguenze potrebbero essere quelle di portare la vostra azienda a chiudere i battenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 fondamentale comprendere che <strong>investire <\/strong>nella resilienza \u00e8 fondamentale per garantire un funzionamento senza interruzioni, proteggere i dati, mitigare le minacce e <strong>adattarsi alle mutevoli esigenze aziendali e nuovi sfide sia tecnologiche che di business. <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Come rendere un sistema informatico resiliente ?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La risposta a questa domanda non \u00e8 semplice, ne immediata, perch\u00e9 sono tanti gli aspetti che entrano in gioco nella progettazione di un sistema informatico. Essendo un tema non esclusivamente tecnico, provo a delineare le aree, sulla base della mia esperienza, su cui concentrarsi in fase di progettazione per garantire stabilit\u00e0, sicurezza e continuit\u00e0 operativa di un sistema informatico anche in presenza di errori, guasti o attacchi informatici. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le aree principali su cui concentrarsi sono: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Architettura <\/strong><\/li>\n\n\n\n<li><strong>Ridondanza e Failover<\/strong> <\/li>\n\n\n\n<li><strong>Monitoraggio<\/strong><\/li>\n\n\n\n<li><strong>Backup e Ripristino dei dati<\/strong><\/li>\n\n\n\n<li><strong>Sicurezza <\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Nei prossimi paragrafi le vediamo pi\u00f9 da vicino.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. <strong>Architettura<\/strong><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/electrician-g88c3e33a8_1280-1024x682.jpg\" alt=\"\" class=\"wp-image-380\" style=\"width:384px;height:256px\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/electrician-g88c3e33a8_1280-1024x682.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/electrician-g88c3e33a8_1280-300x200.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/electrician-g88c3e33a8_1280-768x512.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/electrician-g88c3e33a8_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">L&#8217;architettura di un sistema rappresenta l&#8217;organizzazione delle sue componenti, sia hardware che software, messe insieme per far si che il sistema funzioni in modo efficiente. Per fare un esempio \u00e8 come pensare ad una struttura da gioco LEGO, in cui ogni blocco rappresenta una parte diversa del sistema e mettendo insieme i vari blocchi possiamo creare una macchina funzionante.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per progettare un&#8217;architettura resiliente, \u00e8 importante seguire alcuni principi:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Modularit\u00e0<\/strong>: progettare le componenti in modo modulare e indipendente. Per fare un esempio, considerando un&#8217;applicazione e-commerce si pu\u00f2 pensare ad un modulo dei pagamenti progettato unicamente per occuparsi della gestione di transazioni economiche, senza occuparsi di fare altro. Oppure un modulo per gestire l&#8217;autenticazione degli utenti. Un sistema modulare permette maggiore facilit\u00e0 di manutenzione e riutilizzo del codice, poich\u00e9 ogni componente pu\u00f2 essere sviluppato, testato e gestito separatamente dal resto del sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Scalabilit\u00e0<\/strong>: progettare le componenti in modo da essere in grado di gestire esigenze di crescita o picco di utilizzo. Di seguito alcuni esempi e casi di utilizzo di scalabilit\u00e0: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>scalabilit\u00e0 orizzontale<\/strong>: supponiamo un&#8217;azienda online che deve gestire un aumento improvviso del traffico durante una vendita speciale. Invece di potenziare un singolo server, l&#8217;azienda pu\u00f2 aggiungere pi\u00f9 server identici e distribuire il carico tra di essi. In questo modo, il sistema pu\u00f2 gestire un maggior numero di richieste senza subire rallentamenti. <\/li>\n\n\n\n<li><strong>scalabilit\u00e0 verticale<\/strong>: supponiamo un&#8217;applicazione che deve gestire un crescente volume di dati. Piuttosto che aggiungere pi\u00f9 server, si pu\u00f2 potenziare il server esistente aumentando la capacit\u00e0 di elaborazione, la memoria o le risorse di archiviazione. In questo modo, il sistema pu\u00f2 gestire un maggiore carico di lavoro senza dover distribuire la richiesta su pi\u00f9 server. <\/li>\n\n\n\n<li><strong>scalabilit\u00e0 dei servizi<\/strong>: supponiamo una piattaforma di streaming video che deve gestire un numero crescente di utenti contemporaneamente. Per evitare sovraccarichi, pu\u00f2 separare i servizi in componenti indipendenti. In questo modo, ogni servizio pu\u00f2 essere scalato in modo indipendente per gestire il carico specifico che richiede.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In fase di progettazione, avendo a mente l&#8217;applicazione che dobbiamo realizzare, per quanto riguarda la scalabilit\u00e0 \u00e8 importante porsi tutte le domande per identificare i punti critici che possono subire significative variazioni di carico di lavoro, e per ognuno scegliere la soluzione che meglio si adatta al nostro contesto. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella scelta dell&#8217;architettura e delle sue componenti, in generale il mio suggerimento, che vale non solo per la parte architetturale ma per tutte le dimensioni descritte in avanti nell&#8217;articolo, \u00e8 quello di fare riferimento a <strong>soluzioni tecnologiche di mercato<\/strong> <strong>consolidate<\/strong> e <strong><em>best practice <\/em><\/strong>comuni, evitando per quanto possibile di creare soluzioni fatte in casa, come abiti sartoriali, che si adattano sicuramente meglio al contesto nell&#8217;immediato, ma che creano tutta una serie di problemi che vi troverete ad affrontare nel lungo termine. Problemi che si creeranno perch\u00e9 nel corso del tempo i requisiti della vostra applicazione cambieranno, come le richieste del business, della sicurezza e le applicazioni esterne con cui il vostro sistema deve interagire per fare solo alcuni esempi pratici. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con questo non voglio dire che creare soluzioni ad hoc sia sbagliato, al contrario a volte \u00e8 necessario quando ad esempio dobbiamo gestire una qualche unicit\u00e0 che non \u00e8 possibile indirizzare con soluzioni di mercato. Ci sono delle casistiche uniche nel loro genere, come ad esempio la gestione degli aspetti fiscali di un paese, che hanno particolarit\u00e0 uniche non assimilabili a situazioni di altri contesti o paesi. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel fare queste scelte, \u00e8 bene avere una conoscenza dei principali <strong>trend tecnologici presenti sul mercato<\/strong>, oltre che conoscere anche <strong>cosa fanno altre aziende<\/strong>, ovvero come gli altri hanno affrontato lo stesso problema o situazione che stiamo considerando noi, e come lo hanno risolto. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In questo \u00e8 utile studiare i vari report delle societ\u00e0 di analisi e consulenza pi\u00f9 note nel settore delle tecnologie dell&#8217;informazione, che offrono una gamma di ricerche specifiche per supportare le decisioni strategiche delle organizzazioni in vari settori. Di queste quelle che utilizzo maggiormente sono <a rel=\"noreferrer noopener\" href=\"https:\/\/www.gartner.com\/\" target=\"_blank\">Gartner<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/www.idc.com\/\" target=\"_blank\">IDC<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/www.forrester.com\/\" target=\"_blank\">Forrester Group<\/a>, e ultimamente anche <a rel=\"noreferrer noopener\" href=\"https:\/\/www.accenture.com\/\" target=\"_blank\">Accenture<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Ridondanza e Failover<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/carabiner-gfbb845489_1280-1024x768.jpg\" alt=\"\" class=\"wp-image-382\" style=\"width:374px;height:281px\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/carabiner-gfbb845489_1280-1024x768.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/carabiner-gfbb845489_1280-300x225.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/carabiner-gfbb845489_1280-768x576.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/carabiner-gfbb845489_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La <strong>ridondanza <\/strong>rappresenta la presenza di risorse duplicate all&#8217;interno del sistema, configurate in modo tale che in presenza di guasto di una componente principale la sua copia ne prende il posto, continuando a rendere il servizio fruibile agli utenti finali.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Direttamente collegato alla ridondanza, c&#8217;\u00e8 il concetto di <strong>Failover<\/strong>, ovvero il processo o l&#8217;insieme di procedure che permette ad un sistema di passare automaticamente da una componente principale in  errore ad una copia di backup funzionante. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Di seguito alcuni dei principali ambiti in cui vengono utilizzate tecniche di failover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cluster di serve<\/strong>r: si tratta di un insieme di risorse (server appunto) che lavorano insieme per fornire servizi ad alta disponibilit\u00e0. In una configurazione del cluster con failover, se un server fallisce, gli altri possono assumere il carico di lavoro per garantire la continuit\u00e0 del servizio. Durante il failover, le applicazioni e i servizi vengono ripristinati nel nuovo nodo principale, e gli utenti possono continuare a utilizzarli senza interruzioni significative.<\/li>\n\n\n\n<li><strong>Bilanciamento del carico<\/strong>: si tratta di apparati hardware o software che distribuiscono il carico di lavoro tra diverse risorse (ad esempio server o sistemi di backup). Queste soluzioni sono pensate per accorgersi se una risorsa diventa inaccessibile, e redistribuire il carico tra le risorse funzionanti rimanenti. <\/li>\n\n\n\n<li><strong>Virtualizzazione<\/strong>: tecnica che consente di eseguire pi\u00f9 macchine virtuali (VM) su un singolo server fisico. Nell&#8217;ambito di queste tecnologie, se una VM o un server fisico fallisce, le altre VM possono essere automaticamente spostate su altri server disponibili.<\/li>\n\n\n\n<li><strong>Storage con failover:<\/strong> si tratta di sistemi che consentono la replicazione dei dati tra diversi dispositivi di storage. Se un dispositivo di storage fallisce, i dati possono essere recuperati da un altro dispositivo senza interruzioni significative.<\/li>\n\n\n\n<li><strong>Database replicati<\/strong>: I database in replica mantengono copie identiche dei dati. In caso di guasto la replica assume il ruolo principale, garantendo la continuit\u00e0 dei servizi.<\/li>\n\n\n\n<li><strong>Servizi Cloud Computing: <\/strong>I fornitori di servizi cloud come Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) e Oracle Cloud Infrastructure (OCI) offrono gran parte dei loro servizi in modo da gestire automaticamente il failover.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Monitoraggio <\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/space-center-g516b41287_1280-1024x597.jpg\" alt=\"\" class=\"wp-image-383\" style=\"width:412px;height:240px\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/space-center-g516b41287_1280-1024x597.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/space-center-g516b41287_1280-300x175.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/space-center-g516b41287_1280-768x448.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/space-center-g516b41287_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Gli strumenti di monitoraggio consentono di rilevare anomalie, guasti o comportamenti anomali all&#8217;interno di un sistema informatico, permettendo di poter intervenire tempestivamente in caso di problemi. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In ottica di resilienza, \u00e8 importante prevedere nella progettazione una tipologia di <strong>monitoraggio proattivo<\/strong>, che consiste nell&#8217;osservare e analizzare costantemente un sistema al fine di individuare potenziali problemi o anomalie prima che si verifichino effettivamente. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per fare un esempio, immagina di avere un server web che ospita un&#8217;applicazione critica per il tuo business. Il software di monitoraggio proattivo monitora costantemente le metriche chiave del server, come l&#8217;utilizzo della CPU, la memoria, il traffico di rete e i tempi di risposta delle pagine web. Se il software di monitoraggio rileva che l&#8217;utilizzo della CPU sta raggiungendo valori critici o che i tempi di risposta delle pagine stanno aumentando, invia un avviso agli amministratori consentendo loro di intervenire prima che il problema si verifiche concretamente. Il monitoraggio delle prestazioni, dei log di sistema e della sicurezza permette di identificare e rispondere rapidamente ai problemi, prevenendo interruzioni o danni maggiori. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il monitoraggio \u00e8 direttamente collegato all&#8217;<strong>autoscaling<\/strong>, una tecnica che permette di adattare dinamicamente le risorse di calcolo in base al carico di lavoro in tempo reale. Quando il carico di lavoro aumenta, l&#8217;autoscaling pu\u00f2 automaticamente aumentare le risorse per gestire la domanda aggiuntiva. Al contrario, quando il carico di lavoro diminuisce, le istanze non necessarie vengono ridotte per ridurre i costi e l&#8217;utilizzo delle risorse. L&#8217;autoscaling si basa su metriche di monitoraggio che possono essere configurate a piacimento ma che in genere sono basate su l&#8217;utilizzo della CPU, la memoria o il numero di richieste al secondo.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Backup e ripristino dei dati<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/data-carrier-g24b8b6899_1280-1024x682.jpg\" alt=\"\" class=\"wp-image-386\" style=\"width:405px;height:269px\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/data-carrier-g24b8b6899_1280-1024x682.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/data-carrier-g24b8b6899_1280-300x200.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/data-carrier-g24b8b6899_1280-768x512.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/data-carrier-g24b8b6899_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La protezione dei dati \u00e8 fondamentale per la resilienza. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 necessario implementare politiche di backup regolari per garantire che i dati critici siano protetti da perdite accidentali o danni causati da attacchi informatici. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Il backup<\/strong> dei dati comporta la creazione di copie dei dati, in particolare quelli definiti critici, e la loro memorizzazione in un&#8217;area separata e sicura, diversa dalla posizione originale. Il backup regolare dei dati garantisce che, in caso di perdita, corruzione o eliminazione accidentale dei dati, sia possibile recuperarli dalle copie di backup. Ci\u00f2 aiuta a mitigare il rischio di perdita irreversibile di informazioni critiche e contribuisce alla continuit\u00e0 operativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sono disponibili un&#8217;infinit\u00e0 di tecnologie per fare il backup, in linea di massima si possono considerare le tre seguenti strategie per proteggere i dati: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Backup completo:<\/strong> che consiste nella copia di tutti i dati selezionati da un sistema e che vengono salvati in un&#8217;unit\u00e0 di archiviazione separata. Ogni volta che viene eseguito un backup completo, vengono copiati tutti i dati, indipendentemente dal fatto che siano stati modificati o meno. Ci\u00f2 significa che il backup pu\u00f2 richiedere pi\u00f9 tempo e spazio di archiviazione rispetto ad altre strategie. Tuttavia, i backup completi sono facili da ripristinare poich\u00e9 contengono tutte le informazioni necessarie per ripristinare completamente il sistema<\/li>\n\n\n\n<li><strong>Backup incrementale<\/strong>: strategia che copia solo i dati che sono stati modificati o aggiunti dal momento dell&#8217;ultimo backup eseguito. Questo tipo di backup \u00e8 pi\u00f9 veloce ed efficiente in termini di tempo e spazio di archiviazione rispetto ai backup completi, poich\u00e9 copre solo le modifiche recenti. Tuttavia, il ripristino dei dati pu\u00f2 richiedere pi\u00f9 tempo poich\u00e9 \u00e8 necessario ripristinare il backup completo pi\u00f9 l&#8217;ultimo backup incrementale<\/li>\n\n\n\n<li><strong>Backup differenziale:<\/strong> strategia che copia solo i dati che sono stati modificati o aggiunti dal momento dell&#8217;ultimo backup completo. A differenza del backup incrementale, che tiene conto solo delle modifiche dall&#8217;ultimo backup incrementale o completo, il backup differenziale tiene traccia delle modifiche dal momento dell&#8217;ultimo backup completo. Questo significa che i backup differenziali possono richiedere pi\u00f9 spazio di archiviazione rispetto ai backup incrementali, ma il ripristino dei dati \u00e8 pi\u00f9 rapido poich\u00e9 \u00e8 necessario ripristinare solo il backup completo e l&#8217;ultimo backup differenziale.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Il ripristino <\/strong>dei dati \u00e8 il processo di recupero delle copie di backup e il loro reintegro nel sistema originale. Quando si verifica un guasto o un incidente che provoca la perdita o la compromissione dei dati, il ripristino consente di recuperare i dati dal backup e ripristinare il sistema al suo stato precedente. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il backup e il ripristino dei dati devono essere pianificati e implementati in modo appropriato per garantire la resilienza. Ci\u00f2 include la valutazione delle esigenze di backup, come la frequenza e la tipologia dei dati da proteggere, l&#8217;utilizzo di metodi di backup adeguati, la verifica regolare dell&#8217;integrit\u00e0 dei backup e la definizione di procedure di ripristino testate. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Sicurezza <\/h3>\n\n\n\n<div class=\"wp-block-cover alignleft is-light has-custom-content-position is-position-top-center\" style=\"min-height:292px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\"><\/span><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" class=\"wp-block-cover__image-background wp-image-389\" alt=\"\" src=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/cyber-security-g1f8ed2d09_1280-1024x614.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/cyber-security-g1f8ed2d09_1280-1024x614.jpg 1024w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/cyber-security-g1f8ed2d09_1280-300x180.jpg 300w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/cyber-security-g1f8ed2d09_1280-768x461.jpg 768w, https:\/\/www.enrichia.it\/wp-content\/uploads\/2023\/06\/cyber-security-g1f8ed2d09_1280.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-white-color has-text-color has-large-font-size wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">La sicurezza \u00e8 un elemento imprescindibile per la resilienza di un sistema informatico. Di seguito le principali aree da considerare per adeguare la sicurezza di un sistema informatico e renderlo resiliente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Valutazione dei rischi:<\/strong> \u00e8 importante identificare le potenziali minacce e vulnerabilit\u00e0 del sistema e considerare le conseguenze che potrebbero scaturirsi in seguito ad un evento di interruzione del servizio, come un attacco informatico, una calamit\u00e0 naturale o un errore umano. Utilizzare quindi queste valutazioni per guidare le decisioni di sicurezza<\/li>\n\n\n\n<li><strong>Protezione dei punti di accesso:<\/strong> bisogna identificare tutti i punti di accesso al sistema informatico e assicurarsi che siano adeguatamente protetti. Questo include l&#8217;utilizzo di firewall, antivirus, antispyware e altre soluzioni di sicurezza per prevenire l&#8217;accesso non autorizzato e proteggere il sistema da malware e attacchi esterni<\/li>\n\n\n\n<li><strong>Organizzazione del backup e ripristino dei dati:<\/strong> come descritto precedentemente nell&#8217;articolo, \u00e8 buona norma eseguire regolarmente il backup dei dati considerati critici e mantenerli in posizioni sicure e separate dal sistema principale, \u00e8 altrettanto importante testare periodicamente il processo di ripristino per verificare che funzioni correttamente<\/li>\n\n\n\n<li><strong>Ridondanza e failover:<\/strong> come descritto precedentemente implementare una strategia di ridondanza per garantire che i servizi critici siano disponibili anche in caso di guasti o interruzioni. Utilizzare anche soluzioni di failover automatico per consentire il passaggio immediato a un sistema di backup in caso di interruzione<\/li>\n\n\n\n<li><strong>Monitorare e rilevare le minacce: <\/strong>le soluzioni di monitoraggio devono prevedere strumenti in grado di rilevare attivit\u00e0 sospette o comportamenti anomali nel sistema. Ad esempio le soluzioni di rilevamento delle intrusioni (IDS <em>Intrusion Detection System<\/em>) e di prevenzione delle intrusioni (IPS, <em>Intrusion Prevention System<\/em>) sono utilizzate per identificare e rispondere alle minacce in tempo reale. Monitorare regolarmente i log di sistema e utilizzare l&#8217;intelligence sulle minacce per identificare nuovi modelli di attacco<\/li>\n\n\n\n<li><strong>Gestione degli accessi:<\/strong> implementare una solida gestione degli accessi per garantire che solo gli utenti autorizzati possano accedere al sistema e alle risorse sensibili. Utilizzare politiche di autenticazione robuste, come l&#8217;autenticazione a pi\u00f9 fattori, e assegnare privilegi di accesso in base al principio del privilegio minimo. Questo principio serve ad assicurare che ogni utente, account o processo abbia solo i privilegi e le autorizzazioni necessarie per svolgere le proprie attivit\u00e0 specifiche senza avere accesso a risorse o funzionalit\u00e0 non necessarie per il suo lavoro<\/li>\n\n\n\n<li><strong>Pianificare la continuit\u00e0 operativa:<\/strong> deve essere creato un piano di continuit\u00e0 operativa per definire le azioni da intraprendere in caso di interruzione del sistema. La pianificazione deve descrivere le procedure di ripristino, assegnazione delle responsabilit\u00e0, procedure di comunicazione e fornire istruzioni dettagliate per garantire una risposta rapida alle interruzioni<\/li>\n\n\n\n<li><strong>Mantenere i sistemi aggiornati:<\/strong> i sistemi devono essere sempre aggiornati con gli ultimi aggiornamenti di sicurezza e patch. Le vulnerabilit\u00e0 note vengono spesso sfruttate dagli attaccanti, quindi \u00e8 importante applicare regolarmente le correzioni per mitigare i rischi<\/li>\n\n\n\n<li><strong>Controllare periodicamente la sicurezza: <\/strong>effettuare regolarmente test di sicurezza per identificare eventuali falle o vulnerabilit\u00e0 nel sistema. Questi test possono includere penetration test, vulnerability scanning per valutare l&#8217;efficacia delle misure di sicurezza e individuare eventuali punti deboli<\/li>\n\n\n\n<li><strong>Formazione e consapevolezza degli utenti:<\/strong> questo a volte \u00e8 un aspetto sottovalutato, ma \u00e8 importante educare gli utenti sulle migliori pratiche di sicurezza informatica e sulla consapevolezza delle minacce. I dipendenti dovrebbero essere informati sulle minacce comuni, come ad esempio il phishing, la necessit\u00e0 di utilizzare password sicure, evitare di cliccare su link sospetti o di scaricare file non attendibili.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusioni <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La resilienza di un sistema informatico deve essere progettata come risultato di un <strong>approccio olistico<\/strong>, perch\u00e9 \u00e8 importante concentrarsi sull&#8217;intero sistema nel suo insieme anzich\u00e9 solo su singoli elementi o componenti isolati. In quest&#8217;ottica \u00e8 fondamentale avere sempre in mente tutte le aree che compongono un sistema, che ho descritto nell&#8217;articolo, per fare in modo di creare un sistema robusto e in grado di affrontare sfide impreviste, mantenendo la continuit\u00e0 operativa e la protezione dei dati critici. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel preparare quest&#8217;articolo, mi sono tenuto volutamente ad un livello alto per descrivere l&#8217;approccio che nella mia esperienza ho seguito per progettare sistemi resilienti, per avere una vista complessiva d&#8217;insieme. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ognuna delle aree descritte necessita di approfondimenti che ovviamente dipendono dalla realt\u00e0 in cui bisogna calarsi, e dalle esigenze da considerare, perch\u00e9 non esiste una soluzione che vada bene per tutte le stagioni. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sul mercato sono disponibili un&#8217;infinit\u00e0 di prodotti e soluzioni per indirizzare al meglio per ogni area le specificit\u00e0 che devono essere prese in esame, le scelte devono essere ponderate rispetto al contesto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lasciatemi pure un commento se avete trovato utile questo articolo, o avete commenti e\/o riflessioni, o se avete curiosit\u00e0 su qualche approfondimento.  <\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La resilienza, cos&#8217;\u00e8 e perch\u00e9 \u00e8 importante per i sistemi informatici ? <\/p>\n","protected":false},"author":1,"featured_media":378,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[11],"tags":[35,40,41,42,34,43,38],"class_list":["post-306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia","tag-architettura","tag-backup","tag-failover","tag-monitoraggio","tag-resilienza","tag-scalabilita","tag-sicurezza"],"_links":{"self":[{"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/posts\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/comments?post=306"}],"version-history":[{"count":43,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/posts\/306\/revisions"}],"predecessor-version":[{"id":1149,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/posts\/306\/revisions\/1149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/media\/378"}],"wp:attachment":[{"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/media?parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/categories?post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enrichia.it\/index.php\/wp-json\/wp\/v2\/tags?post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}