Fra le mille cose che un manager deve conoscere, c’è sicuramente una “infarinatura” relativa a determinate tecnologie, di cui sentirà parlare e che potrebbero influire su scelte che dovrà prendere.

Di alcune di queste tecnologie abbiamo trattato nell’articolo Industria 4.0: tecnologie abilitanti.

Di altre (senza alcuna pretesa di esaurire l’argomento) parliamo in questo articolo: le abbiamo suddivise in due categorie:

  • quelle afferenti allo sviluppo del software e alla gestione dei dati
  • quelle relative alla sistemistica

Nell’area dello sviluppo software e gestione dati

Scrum, Kanban, Agile, DevOps

Negli ultimi anni, c’è stato un cambiamento radicale nell’approccio allo sviluppo del software. Mentre il modello di sviluppo waterfall, uno più utilizzati modelli di sviluppo, rimane ancora in uso, nuovi modelli come Scrum, Kanban, Agile Software Development (ASD) e DevOps stanno emergendo come un modo più efficace di gestire e sviluppare progetti di software.

Scrum e Kanban si basano su un approccio iterativo e incrementale allo sviluppo del software, ma differiscono nel modo in cui sono strutturati.
Scrum prevede sprint di lavoro ben definiti, durante i quali un gruppo di lavoro si dedica a un determinato obiettivo. Al termine dello sprint, il team discute i risultati e i progressi, e pianifica il successivo sprint.

Kanban è un metodo di gestione dei processi più flessibile, che prevede un sistema di gestione del lavoro basato sulla visualizzazione e sull’ottimizzazione del flusso di lavoro.

Entrambi i modelli sono adatti a progetti di sviluppo di software di dimensioni non grandissime e consentono una maggiore flessibilità e una migliore adattabilità ai cambiamenti.

Agile Software Development (ASD) adotta un approccio iterativo allo sviluppo che consente al team di sviluppo di lavorare su piccoli spezzoni di codice, correggere eventuali errori e implementare nuove funzionalità in modo più rapido.

DevOps è una pratica di sviluppo software progettata per aumentare l’efficienza, la velocità e l’affidabilità del processo di sviluppo. Si basa sull’automazione del processo di sviluppo, sulla collaborazione tra team di sviluppo e sulla riduzione dei tempi di sviluppo.

Per concludere, possiamo dire che Scrum, Kanban, ASD e DevOps sono metodologie di sviluppo software più flessibili, efficienti e affidabili rispetto al modello Waterfall. Mentre il modello waterfall è ancora usato, i modelli Scrum, Kanban, ASD e DevOps offrono un modo più rapido e più efficiente di gestire e sviluppare progetti di software.

Forse ti può interessare anche il nostro articolo Waterfall vs Agile nello sviluppo software su misura.

NoSQL

Il NoSQL è un’alternativa ai database relazionali tradizionali (noti anche come database SQL, dei quali e dei sistemi per gestirli parliamo nel nostro articolo Basi di dati, DBMS e sistemi informativi). Utilizza una struttura di dati non relazionale, come ad esempio array associativi, mappe o insiemi, che consente di memorizzare dati in modo più efficiente. La struttura di dati è meno rigida e più facile da modificare. Ciò consente di gestire grandi set di dati e di fornire tempi di accesso molto più veloci.

Una delle principali caratteristiche del NoSQL è la scalabilità. Poiché non è necessario utilizzare un modello relazionale, è possibile aggiungere più server per gestire più richieste. Ciò consente di aumentare la velocità di accesso ai dati e aumentare la capacità del database.

Altra caratteristica del NoSQL è la flessibilità. Poiché non è necessario utilizzare un modello relazionale, è possibile aggiungere o rimuovere campi o modificare le strutture dei dati senza dover modificare tutti i dati esistenti. Ciò consente di adattare rapidamente il database alle esigenze dell’utente.

Un’altra caratteristica del NoSQL è la sicurezza. La struttura dei dati è meno rigida e più flessibile, quindi è più difficile hackerare. Inoltre, il NoSQL utilizza abitualmente la crittografia per proteggere i dati.

Le applicazioni pratiche del NoSQL comprendono l’archiviazione di grandi set di dati, come quelli usati in applicazioni di social networking, siti web aziendali, sistemi di gestione dei contenuti (CMS) e sistemi di e-commerce. Il NoSQL è anche utilizzato nei sistemi di analisi dei big data, nella gestione dei dati geografici, nella gestione dei dati scientifici e nella gestione delle informazioni sui dispositivi mobili.

No-Code (e Low-Code)

L’approccio No-Code è una forma di sviluppo di software che offre agli utenti la possibilità di creare applicazioni senza dover scrivere codice. Questo approccio semplifica le procedure di sviluppo rendendole molto più veloci e facili da gestire. Le applicazioni No-Code possono essere utilizzate per la creazione di siti web, gestione di database, creazione di report, creazione di app mobile e persino l’integrazione di sistemi di terze parti. Le applicazioni No-Code, inoltre, sono estremamente flessibili, in quanto non richiedono alcuna esperienza specifica in programmazione. Questo significa che chiunque può creare un’applicazione, anche senza conoscere la programmazione. Un’altra caratteristica dell’approccio No-Code è che le sue applicazioni possono essere facilmente espandibili, in modo da poter adattare la sua funzionalità in base alle esigenze dell’utente. Un’applicazione No-Code può essere utilizzata per lo sviluppo di software, implementare sistemi di gestione dei contenuti, gestire dati e persino creare applicazioni web.
Si sente parlare anche di Low-Code, in quanto per determinate categorie di applicazioni o per applicazioni di complessità maggiore è ancora necessario un approccio per così dire ibrido.

Nell’area dei sistemi

Cloud: IaaS, PaaS, SaaS

Ormai il termine cloud è diventato di uso comune. Ma nello specifico vi sono alcune peculiarità legate a tipologie differenti di servizi cloud.
In particolare ecco tre categorie di servizi Cloud Computing che offrono agli utenti risorse informatiche in modalità on-demand:
IaaS (Infrastructure as a Service) offre agli utenti accesso a piattaforme di virtualizzazione e a risorse hardware come server, storage e network
PaaS (Platform as a Service) offre agli utenti la possibilità di sviluppare, testare, distribuire e gestire applicazioni senza dover gestire l’infrastruttura sottostante
SaaS (Software as a Service) offre invece l’accesso a software pre-configurato, accessibile attraverso una connessione Internet

Queste tre categorie di servizi cloud possono essere utilizzate sia da grandi aziende che da piccole imprese per sfruttare le potenzialità del cloud computing. Ad esempio, un’azienda può utilizzare IaaS per archiviare i propri dati in un ambiente protetto, PaaS per sviluppare nuove applicazioni e SaaS per fornire un’applicazione pre-configurata ai propri clienti.

HA: alta affidabilità

L’alta affidabilità (HA: High Availability) è una caratteristica dei sistemi informatici che assicura un’alta disponibilità dei servizi e dei dati.

In pratica, un sistema di alta affidabilità offre una disponibilità del 99,999%, ossia un tempo di non-disponibilità inferiore a 5 minuti all’anno.

Questa caratteristica è essenziale per garantire la continuità operativa delle aziende in cui i sistemi informatici svolgono un ruolo fondamentale.

Ad esempio, un sistema di alta affidabilità può essere utilizzato per assicurare che una banca abbia sempre accesso ai dati dei propri clienti, anche in caso di guasti o malfunzionamenti. Inoltre, un sistema di alta affidabilità può essere utilizzato anche per assicurare che un sito web rimanga costantemente disponibile, anche in caso di incidenti o attacchi informatici.

Nella pratica spesso i sistemi ad alta affidabilità hanno la caratteristica di disporre di un numero superiore (almeno doppio) di dispositivi o linee di comunicazione, tali da permettere, in caso di guasto bloccante del sistema principale, di operare con il sistema ausiliario.

WAF: Web Application Firewall

Un Web Application Firewall (WAF) è una tecnologia che protegge i servizi web da attacchi informatici. Un WAF è in grado di identificare le richieste http sospette e bloccarle prima che raggiungano il server web.

Nella pratica può essere impiegato ad esempio anche per incrementare la protezione di un sistema che non sia aggiornato all’ultima patch disponibile, come nel caso di sistemi sviluppati diversi anni fa e che non siano stati aggiornati di continuo, come oggi richiede ogni sistema in produzione. Rimane sottointeso che in questo modo non si risolve il problema, ma si limitano i danni mentre si procede ai necessari aggiornamenti.

UC: Unified Communication

Unified Communication (UC) è una tecnologia di comunicazione che consente ai dispositivi di comunicare in modo integrato. Si tratta di un sistema di comunicazione che unisce le funzionalità di telefonia, messaggistica istantanea, chat, audio e video conferenze, e-mail, calendari, condivisione di file e molto altro. Le caratteristiche principali di UC includono una migliore collaborazione, maggiore produttività, maggiori risparmi sui costi, una migliore comunicazione tra i dipendenti e un minor tempo di inattività.

Una delle applicazioni pratiche più comuni di UC è la collaborazione tra dipendenti che lavorano da remoto. Con UC, i dipendenti possono partecipare a riunioni online, condividere documenti, discutere di progetti, presentare presentazioni, tenere traccia dei tempi e molto altro. Inoltre, con UC i dipendenti possono comunicare in modo più rapido e ottimizzare i processi aziendali.

In pratica con Unified Communication si dispone di un sistema unico integrato, rispetto ad avere un sistema per l’email, uno per la messaggistica, uno per condividere i calendari e così via.

Virtualizzazione

La virtualizzazione è una tecnologia che consente di creare un ambiente informatico virtuale, in cui le risorse fisiche come CPU, memoria, storage e dispositivi di rete vengono condivise tra più macchine. Le caratteristiche principali della virtualizzazione comprendono una maggiore scalabilità, una riduzione dei costi di gestione, una maggiore flessibilità e una più rapida implementazione.

Una delle applicazioni pratiche più comuni della virtualizzazione è l’utilizzo di un’infrastruttura cloud. Con la virtualizzazione, le aziende possono facilmente scalare le proprie risorse per soddisfare le esigenze di archiviazione e processo più elevate. Inoltre, con la virtualizzazione è possibile gestire più ambienti virtuali su una singola macchina fisica, riducendo al contempo i costi di acquisto di nuove risorse.

In pratica con la virtualizzazione invece di avere una macchina per ogni server, è possibile che più server stiano sulla stessa macchina. Inoltre non appena se ne ha la necessità è possibile allocare le risorse fisiche (come la RAM) in maniera da spostarle verso i server che ne abbisognino in quel dato momento, liberandola ad esempio da server che ne richiedano meno.

HCI: Hyper-Converged Infrastructure

Hyper-Converged Infrastructure (HCI) è una tecnologia che combina storage, calcolo, networking e gestione in un’unica infrastruttura. Le principali caratteristiche di HCI includono

  • una maggiore scalabilità,
  • una riduzione dei costi di gestione,
  • una maggiore semplicità di implementazione
  • una maggiore flessibilità.

Una delle applicazioni pratiche più comuni di un’infrastruttura iperconvergente è l’utilizzo in un ambiente cloud. Con HCI, le aziende possono gestire l’intero stack di tecnologie, dal storage al calcolo, in un’unica infrastruttura, offrendo una maggiore scalabilità e una riduzione dei costi di gestione. Inoltre, con HCI è possibile gestire più ambienti virtuali su una singola infrastruttura, consentendo una maggiore flessibilità.

 

Foto di Moose Photos da Pexels