Microservizi: la panacea di tutti i mali, o la cosa peggiore da fare?
In realtà, né uno né l’altro. Sono una delle tante architetture possibili, esistono dei contesti in cui danno grandi vantaggi e altri in cui portano solo morte e distruzione.
In Microservices Practical Workshop con Gianluca Padovani impareremo a costruire un’architettura a microservizi, a riconoscere varianti e differenze e a scegliere la migliore per il nostro contesto.
Uno dei primi step per comprendere a fondo i Microservizi è quello di analizzarli nell’ottica di Domain-Driven Design, anche per capire se un’architettura di questo tipo è adatta al nostro business.
La predisposizione mentale nell’analisi del dominio in cui si va a operare, prima ancora della scrittura del codice, è fondamentale per iniziare ad analizzare la problematica dal punto di vista corretto e in tutta la sua complessità, ed EventStorming è uno strumento fondamentale in quest’ottica.
Capiremo quali sono le diverse “nuance” dell’architettura e dei microservizi, quando è opportuno spingere su una determinata caratteristica o quando è meglio spingere sulla caratteristica opposta.
Target Audience
Hai letto molto sui microservizi ma non te la senti di provare a metterci le mani? Vuoi vedere alcuni casi reali di implementazione? Vuoi confrontarti con qualcuno che ha esperienza sul campo? È il tuo momento.
Hai provato i microservizi, ne porti ancora le cicatrici e vuoi capire come mai c’è ancora gente che si ostina a fare queste pazzie? Questo è il corso che fa per te.
Hai già usato i microservizi, ti piacciono e vuoi vedere se li hai fatti bene, o come potresti farli meglio? Questo corso è per te.
Il corso si rivolge in particolare a:
- Software Architect
- Software Developer
- CTO.
È richiesta una conoscenza base di Domain-Driven Design ed EventStorming.
A chi si iscriverà al corso verrà regalata una copia digitale del libro Cronache di Domain-Driven Design (pubblicato da Avanscoperta).
La lettura della prima parte del libro è un requisito per poter accedere e partecipare al corso.
Svilupperemo un’architettura facendo chiamate HTTP, e inviando messaggi su code, per cui devi avere un minimo di dimestichezza con queste. Devi sapere cos’è un DB e cos’è un’immagine docker.
Programma
In questo corso svilupperemo un’architettura a microservizi. Partiremo analizzando un dominio di esempio con EventStorming, tecnica che ci aiuterà a sviscerare il dominio in tutta la sua complessità. Troveremo quali sono i nostri “service boundary”, decideremo su quali microservizi vogliamo concentrarci, e li svilupperemo.
Durante questo percorso di 5 sessioni, decideremo che metodo di comunicazione utilizzare, come deployare i nostri microservizi e come evolverli.
Lavoreremo anche su un monolite, da cui “estrarre” alcune funzionalità.
Capiremo come gestire situazioni di carico, e come essere sufficientemente resilienti al crash di uno o più microservizi.
Lavoreremo sia in gruppo sia individualmente, come se fossimo “una vera azienda”. Affronteremo varie problematiche e alterneremo i momenti di pratica con quelli di teoria, in modo da capire quali principi e quali euristiche supportano le nostre decisioni.
Agenda
Sessione 1: Microservizi: cosa sono e dove trovarli
- Cosa sono i microservizi e perché usarli
- Macro, Micro, Nano: le dimensioni contano?
- Alla ricerca dei microservizi in salsa DDD: EventStorming.
Sessione 2: Sviluppiamo il primo microservizio
- Come comunicano i microservizi
- Eventi, comandi, messaggi
- Come organizzare la persistenza e quanti database avere
- Come gestire le foreign key e le transazioni.
Sessione 3: Costruiamo un sistema complesso
- Accoppiamenti tra i vari Microservizi
- Il concetto di Saga
- Come cambiare l’interfaccia dei miei microservizi
- Versionamento, deploy sincronizzati, breaking Changes.
Sessione 4: Il monolite non è un problema ma un’opportunità
- La fortuna di avere un monolite
- Come scomporre un monolite
- Un passo alla volta (qual è il primo?)
Sessione 5 – Mettiamo tutto insieme
- UI & Reportistica: come faccio a mettere tutto assieme
- Dormire sereni: come capire cosa sta succedendo
- Problemi comuni dei Microservizi
- Un po’ di teoria…
Q&A – Follow-up (2 h) a distanza di una/due settimane dalla chiusura del corso.
Cosa impareremo
- Dopo aver visto come funziona EventStorming, impareremo ad analizzare un dominio complesso step-by-step, assicurandoci che tutti abbiano una comprensione condivisa del contesto in cui andremo a operare con i nostri microservizi
- Impareremo a conoscere i microservizi, cosa sono, come si trovano e in che modo è opportuno farli comunicare e come metterli in produzione
- Quali sono le caratteristiche chiave di un’architettura a microservizi e cosa potrebbe succedere nel caso in cui alcune di esse venissero meno
- Come introdurli in un ambiente già esistente
- Cosa aspettarsi nel momento in cui si mette in produzione qualcosa, e il traffico aumenta o semplicemente qualcosa “si rompe”.
Come si svolge
Il corso è strutturato in 5 mezze giornate + 2 ore di follow-up.
Durante le quattro sessioni svilupperemo un’architettura a microservizi e la faremo funzionare, la metteremo sotto stress e la faremo evolvere durante le varie giornate.
Il workshop sarà online e in diretta, per un massimo di 16 persone: il docente e tutti i partecipanti saranno in video conferenza e avranno a disposizione una serie di strumenti digitali per interagire tra di loro e lavorare hands-on.
Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo.
Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.
Non sarà un corso passivo, fatto solo di slide e video pre-registrati.
Applicheremo alcuni principi del metodo Training from the back of the room, con prevalenza di attività su lectures.
Alle poche definizioni teoriche si affiancano numerosi esercizi ed attività pratiche.
La condivisione tra i partecipanti ed il supporto del trainer completano il quadro formativo.
Perché partecipare
A fine del corso avrai aumentato la tua conoscenza sui microservizi.
Se non hai mai messo in produzione nessun microservizio sarai in grado di identificare i primi da mettere in produzione.
Se hai cicatrici da microservizi, cercheremo di lenire le tue pene e fornirti gli strumenti per fare un secondo tentativo.
Se hai già in produzione dei microservizi l’intento è di darti tutti gli spunti possibili per fare un salto di qualità e migliorare il tuo processo di sviluppo.