Microservices essentials
Rendi l'evoluzione delle tue applicazioni più flessibile e con maggior controllo
Andrea Saltarello Enos Recanati
12/2021 Italiano
Programma
Tra le impostazioni architetturali recenti, quella basata su Microservices (o Microservizi) è sicuramente quella che ha riscosso il maggior successo promettendo flessibilità, maggior controllo e velocità evolutiva rispetto alle pregresse soluzioni analoghe. L'idea di base consiste nell'adozione di una strategia di scomposizione del sistema in componenti realizzati, mantenuti e distribuiti indipendentemente l'uno dall'altro e comunicanti mediante una interfaccia programmatica (API) che essi si impegnano a rispettare. In tal senso, ogni componente potrà essere evoluto in maniera totalmente indipendente da ogni altro.
Tutto ciò sembra aderire perfettamente alla definizione ISO di solution architecture fornita dallo standard ISO/IEC/IEEE 42010:
The fundamental concepts or properties of a system in its environment, embodied in its elements, relationships, and in the principles of its design and evolution.
Teoria e pratica apparentemente messe d'accordo quindi, ma è davvero così?
Mantenere la promessa, in realtà, presenta difficoltà a causa della necessità di competenze multidisciplinari per progettare, prima ancora che implementare, soluzioni basate su questa impostazione. Occorre, infatti, quanto meno delineare delle strategie per effettuare:
- Il partizionamento architetturale della applicazione
- La definizione delle API di ogni microservizio
- L'impacchettamento, ai fini della distribuzione, di ogni partizione
In questo corso, mostreremo come utilizzare i Bounded Context di Domain Driven Design quale strategia di base per il partizionamento; successivamente, analizzeremo la problematica della definizione della API dei nostri microservizi affrontando il tema sia dal punto di vista di design (es: API private e pubbliche), sia dal punto di vista tecnico (es: HTTP, gRPC, sincrono/asincrono). Infine, sarà affrontato il tema della distribuzione dei microservizi analizzando sia l'utilizzo dei container quale strumento di base, sia effettuando una introduzione alle tematiche specifiche alla pubblicazione in cloud.
Docenti
Questo corso è tenuto da uno dei seguenti docenti:
-
Andrea Saltarello
CEO - ImprooveAndrea Saltarello è CTO di Managed Designs e founder di Improove.
È docente della School of Management del Politecnico di Milano, occupandosi dei corsi master dedicati a Big Data ed Intelligenza Artificiale, e relatore presso eventi e conferenze internazionali quali: Codemotion, Microsoft Ignite Tour, WPC.
È autore di articoli tecnici per differenti testate editoriali e co-autore di "Microsoft .NET: Architecting Applications for the Enterprise", pubblicato da Microsoft Press.
In qualità di Microsoft Regional Director, è advisor del senior leadership team di Microsoft Corporation, offrendo ad esso feedback strategico. Per il suo impegno a supporto delle community è stato annualmente premiato quale Microsoft Most Valuable Professional dal 2003 ad oggi.
-
Enos Recanati
Senior Software Developer - Managed Designs