Edo, l’antica Tokyo: come l’acqua e il fuoco ci insegnano a costruire software resiliente

Abstract

Attraverso la visione del documentario “Alle origini di Tokyo”, il team ha esplorato come la storia di Edo, l’antica Tokyo, offra preziose lezioni per progettare architetture software resilienti. Due forze, l’acqua e il fuoco, hanno plasmato la città e ispirato riflessioni su adattabilità, semplicità, gestione del cambiamento e spirito di comunità. Il percorso, articolato in due incontri, ha evidenziato l’importanza di creare sistemi vivi e modulari, capaci di evolversi senza rompersi, dove il vero valore non risiede solo nella tecnologia, ma nel mindset e nella collaborazione tra le persone. Attraverso Edo, il team ha riscoperto principi fondamentali per costruire software flessibile, robusto e capace di prosperare nel cambiamento.

Continue reading Edo, l’antica Tokyo: come l’acqua e il fuoco ci insegnano a costruire software resiliente

Che cosa sono i microservizi?

Contesto

Dagli anni ‘90 il modello multi-strato (multi-tier architecture) è stato considerato un pattern architetturale fondamentale per costruire un sistema software. Secondo tale modello le varie funzionalità software sono logicamente separate su più strati che comunicano tra di loro. Ogni strato comunica con gli strati adiacenti in modo diretto richiedendo ed offrendo servizi. In effetti in questa architettura il sistema software, sia pure se logicamente suddiviso in strati, risulta essere un unico sistema monolitico.

L’avvento e la diffusione del cloud computing, le pratiche di continuous delivery, l’approccio alla gestione della complessità del software basato sul DDD (Domain-Driven Design), l’organizzazione agile delle aziende in team di sviluppo piccoli ed autonomi (3-7 persone) sono il contesto in cui è emerso il modello dell’architettura a microservizi.

Che cosa sono i microservizi?

In breve i microservizi sono dei servizi “piccoli” ed autonomi che interagiscono tra di loro e che hanno come finalità quella di fare una cosa e di farla bene; sono a tutti gli effetti dei sistemi distribuiti. Per dare una definizione più precisa possiamo riprendere le parole di Martin Fowler che afferma:

Lo stile architetturale a microservizi è un approccio allo sviluppo di una singola applicazione come insieme di piccoli servizi, ciascuno dei quali viene eseguito da un proprio processo e comunica con un meccanismo snello, spesso una HTTP API.

Continue reading Che cosa sono i microservizi?