Microservices essentials
Rendi l'evoluzione delle tue applicazioni più flessibile e con maggior controllo
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.
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
- Durata (ore)
- 8
- Max posti
- 12
- Lingua
- Italiano