Skip to main content

L’importanza di un contratto di assistenza sui prodotti digitali è spesso sottovalutata.

I siti web sono delle “creature” che vivono di vita propria. Anche se i clienti pensano che una volta completati diventino degli asset “statici”, sono degli applicativi che hanno bisogno di continue attenzioni.

Come un bambino appena nato che muove i primi passi, anche i software si evolvono in maniera costante. Scalano, di arricchiscono di nuove funzionalità, accolgono maggiore traffico, e tanto altro. Questa vita così dinamica e fervente rende importante, anzi necessaria, una cura continuativa nel tempo.

Infatti ci sono molti aspetti, che i più ignorano, che caratterizzano il funzionamento di un’applicazione web. Ci sono delle strutture, sia hardware che software, che hanno bisogno di aggiornamenti periodici per poter funzionare al meglio. Alcuni di questi aggiornamenti sono fondamentali per la sicurezza o per ottimizzare le performance.

Infrastruttura Server/Cloud

Hardware

Tutto quello che è accessibile da browser ha bisogno di un server per poter funzionare.

Che sia cloud, hosting condiviso, VPS o di qualsiasi altro tipo, l’infrastruttura è costituita da dei computer (assimilabili ai comuni dispositivi che abbiamo casa) installati in enormi capannoni chiamati Data Center.

Questi server sono accesi e connessi alla rete h24, con downtime davvero ridotti, nell’ordine di qualche ora su ogni anno solare. Ogni provider, cioè il fornitore del servizio, si occupa attraverso i propri tecnici di rendere l’infrastruttura sempre funzionante al 100% per evitare problemi ai clienti.

L’hardware, come sappiamo, è soggetto ad una vita limitata. Dopo alcuni anni di lavoro duro iniziano a mostrare i primi segni di lentezza e cedimento. A differenza di un computer di uso casalingo, acceso per poche ore al giorno, i server si logorano molto più facilmente in quando sono attivi 24 ore al giorno 7 giorni su 7. Per questo motivo deve esserci un ricambio frequente di componenti (dischi, memorie, ecc.) che in alcuni casi comporta alla “migrazione” anche del contenuto. E’ il caso di un cambio completo di server, per permettere al fornitore di dismettere quelli ormai obsoleti. In questi casi si procede ad allineare le due macchine in parallelo, copiare la configurazione e i contenuti, accertarsi che la nuova macchina sia funzionante per poi spegnere definitivamente quella vecchia. Un’operazione delicata, che non lascia spazio all’improvvisazione, specie su web app con un notevole traffico di utenti.

Degli aggiornamenti infrastrutturali se ne occupa solitamente il provider, che avvisa tempestivamente i clienti in caso di interruzioni programmate del servizio. Alcune aziende includono nel pacchetto di assistenza anche un supporto per la migrazione dei contenuti, in modo da aiutare agenzie e softwarehouse di ridurre al minimo gli errori e la possibilità di perdita di dati.

Software

Come abbiamo appena visto, l’hardware si occupa del lavoro “duro”. Il software, invece, permette di fare da tramite tra il linguaggio macchina e il linguaggio umano, attraverso istruzioni e codici. Nel caso specifico si tratta di applicazioni che, installate sui server, permettono di convertire il codice scritto dagli sviluppatori in interfacce grafiche, animazioni, moduli compilabili, salvataggi dei dati e di tutto quello che caratterizza una web application, sia lato “frontend” sia lato “backend”.

Siti internet e Web Application

Backend

Il backend è la parte “nascosta” di un applicativo, da non confondere con il “backoffice” che rappresenta un pannello di amministrazione o di gestione.

Per non usare un linguaggio troppo tecnico, il backend è il “motore” di un’applicazione. Si tratta di una serie di codici e operazioni che permettono di gestire, salvare, modificare, aggiornare, elaborare i dati affinché diventino fruibili attraverso il frontend.

I linguaggi che caratterizzano la parte “sommersa” delle web app sono in costante aggiornamento per ridurre i tempi di caricamento, migliorare le performance, aggiungere nuove funzionalità e rimuovere vecchie funzioni “deprecate” o “obsolete”.

Quando queste funzioni vengono dichiarate deprecate da chi distribuisce il linguaggio di programmazione, c’è un lasso di tempo di retrocompatibilità. Ciò vuol dire che queste funzioni sono ancora disponibili, ma verranno dismesse a breve. Questa modalità, definita “legacy”, serve agli sviluppatori per adattarsi alle nuove direttive, adeguando il codice prima della prossima versione. Se questo passaggio non avviene, le vecchie funzioni cessano di esistere e l’applicativo può interrompere il suo funzionamento da un momento all’altro, con simpatici messaggi di errore o schermate bianche. Per rimettere tutto a posto e tornare a farlo funzionare, può essere necessario mettere in atto una procedura lunga e delicata.

Frontend

Il frontend, da non confondere con il “front office” (come sopra) è l’interfaccia grafica dell’applicativo, quella che cioè permette agli utenti di utilizzarla in maniera fruibile e comprensibile.

Dietro a questo lavoro ci sono professionisti che ogni giorno lavorano su User Interface e User eXperience (UI/UX), materie che studiano le interfacce grafiche e la loro usabilità. Questi professionisti lavorano per rendere il frontend semplice da usare, alla portata di tutti, gradevole, non invasivo ed esteticamente rispondente a determinati canoni stabiliti in fase di progettazione.

Anche in questo caso i canoni estetici sono in continua evoluzione: le animazioni, le grafiche, la fruibilità dei moduli e dei contenuti e talto altro. Tutto cambia e i linguaggi si evolvono molto velocemente. Frontend e backend lavorano a stretto contatto, uno si occupa di elaborare e fornire i dati, l’altro li raccoglie e li impagina a video.

Sembrano operazioni lente e macchinose, ma avvengono in una frazione di secondo (salvo connessioni lente), ad esempio quando si clicca su un bottone per cambiare pagina.

Database

Il Database è un grosso contenitore dove vengono immagazzinati i dati contenuti nel sito web o nell’applicazione. Lo si può immaginare come un grosso scaffale dove vengono posizionate informazioni come: i dati degli utenti iscritti, i prodotti di un e-commerce, i contratti di un CRM, gli articoli di un blog e tanto altro.

Queste informazioni vengono richiamate attraverso delle “query” che non sono altro che delle ricerche strutturate. Una query può restituire cose del tipo: tutti gli utenti il cui nome inizia per “A”, gli articoli del blog dell’ultimo mese, gli articoli del negozio con quantità minore di 10 pezzi e così via.

I database subiscono costantemente aggiornamenti da parte dei loro creatori, per garantire performance sempre migliori, sfruttare le nuove tecnologie disponibili sul mercato (sia hardware che software) e adeguarsi agli standard di sicurezza. Un database non funzionante, corrotto o non accessibile rende il nostro sito web una vera e propria scatola vuota, priva di contenuti.

Framework e librerie di terze parti

Tra sviluppatori è d’uso comune la domanda “a che serve reinventare ogni volta la ruota?”.

E’ il motivo per cui si fa un uso di framework e librerie di terze parti.

I framework sono delle strutture che permettono di avere a disposizione una serie di pacchetti base già pronti, in modo da velocizzare operazioni frequenti come la gestione degli accessi (registrazione, login, recupero password), la connessione al database, la gestione dello storage e tanto altro.

Come appena accennato, i framework forniscono solo degli elementi base di uso frequente. Quando si ha bisogno di qualcosa di più complesso si ricorre a pacchetti di terze parti: soluzioni ben collaudate a problemi già risolti (da altri).

Sia i framework che le librerie sono gestite dai rispettivi creatori, che quotidianamente lavorano alla manutenzione del loro codice per adeguarsi a tutti i cambiamenti che abbiamo visto nei punti precedenti. I rilasci sono costanti, ignorare questi aggiornamenti per diversi mesi potrebbe portare ad un malfunzionamento di alcuni moduli o addirittura di tutta l’applicazione.

CMS – Content Management System

Come possiamo dimenticare i cari, vecchi, CMS?
Di uso molto comune, i CMS non sono altro che degli strumenti completi che permettono di rispondere a delle esigenze abbastanza comuni, fornendo strutture modulari espandibili e personalizzabili tramite plugin, moduli e temi.

Mai sentito parlare di WordPress, Prestashop, Magento, Drupal? Sono tutti CMS, magari adeguati ad utilizzi diversi, ma con lo stesso concetto alla base.

Anche i CMS hanno bisogno di una manutenzione costante nel tempo per aggiornare moduli, temi, integrazioni e plugin, in maniera analoga a quanto descritto nel paragrafo precedente.

Incompatibilità

Questo è un problema abbastanza delicato, ma per fortuna non così comune. Si verifica soprattutto su piattaforme “abbandonate” da tempo, quando le richieste del cliente necessitano di tecnologie nuove, non disponibili su quel determinato server. In alcuni casi si parla di retrocompatibilità, ma sono soluzioni temporanee che potrebbero durare diversi mesi o qualche giorno prima di rendersi di nuovo inutilizzabili.

Per questo motivo è necessaria una continua revisione di tutti gli aspetti trattati da questo articolo. I tecnici sono sempre attenti a valutare in autonomia le scelte da fare per ridurre al minimo i disservizi al cliente, lavorando dietro le quinte in totale discrezione per fare in modo che dall’esterno nessuno riscontri discontinuità o disservizi. Se manca un pacchetto di assistenza, questo approccio proattivo non è purtroppo possibile.

Bug

Le applicazioni web, indipendentemente dal talento dello sviluppatore e dalla complessità del sistema, possono essere soggette a dei BUG, che sono dei piccoli “errori” che spesso restano nascosti per anni e sono causa di piccoli malfunzionamenti. Questi bug vanno “fixati”, cioè corretti, nel minor tempo possibile, per evitare che possano causare l’interruzione del servizio per gli utenti. Anche un semplice pulsante che non risponde, una pagina che carica a vuoto, un’immagine che scompare, sono tutti bug che vanno sistemati. L’assistenza tecnica serve anche a fornire supporto continuo su queste piccole problematiche, con la possibilità di risolvere nel più breve tempo possibile.

Attacchi dall’esterno

E’ una delle piaghe degli ultimi anni, che vede come vittime sia piccole che grandi aziende. Si tratta degli attacchi da parte di gruppi di malviventi (comunemente chiamati hacker) che si infiltrano nelle falle dei sistemi informatici per sottrarre denaro o informazioni sensibili. Questi dati vengono “tenuti in ostaggio” in attesa di un riscatto da parte del danneggiato (solitamente le cifre richieste sono elevate) in una qualsiasi criptovaluta che permetta l’anonimato delle operazioni. Senza l’avvenuto riscatto queste informazioni vengono vendute nel dark web (una rete parallela “underground” inaccessibile dai normali browser) per scopi illegali, come contraffazione, truffe, e tanto altro.

Gli aggiornamenti di sicurezza costanti non limitano del tutto queste perdite di informazioni, ma quantomeno garantiscono una certa tutela su “falle” di uso comune, costantemente monitorate con dei rilasci frequenti.

Pensi ancora che un contratto di assistenza non sia necessario?

Dopo tutto questo assurdo spiegone, tra l’altro anche abbastanza superficiale (per evitare di citare tutta la letteratura informatica dell’ultimo secolo), veniamo al dunque.

In questo articolo abbiamo elencato alcuni degli aspetti che sottolineano l’importanza dell’assistenza continuativa. Un guasto improvviso potrebbe essere l’insieme di tutti i fattori descritti nei paragrafi precedenti. La manutenzione costante dei sistemi permette ai tecnici di agire tempestivamente in caso di imprevisti, partendo già da una base solida e sempre aggiornata.

In caso di interventi sporadici, infatti, le azioni che solitamente si diluiscono durante l’arco dell’anno solare, dovranno essere concentrate in un’unica soluzione. In questo modo si allungano i tempi di disservizio, specie in caso di un accumulo di imprevisti.

Fabio De Notariis
Autore Fabio De Notariis

Full Stack Web Developer