Avanscoperta
Microservices Practical Workshop

Microservices Practical Workshop

Come utilizzare i microservizi in salsa DDD e vivere serenamente

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 4 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

  • Cosa sono i microservizi e perché usarli
  • Macro, Micro, Nano: le dimensioni contano?
  • Alla ricerca dei microservizi in salsa DDD: EventStorming
  • Come comunicano i microservizi
  • Eventi, comandi, messaggi.

Sessione 2

  • Come organizzare la persistenza e quanti database avere
  • Come gestire le foreign key e le transazioni
  • Sviluppiamo il primo microservizio, facciamolo parlare con gli altri, mettiamolo in produzione.

Sessione 3

  • La fortuna di avere un monolite
  • Come scomporre un monolite
  • Un passo alla volta (qual è il primo?)
  • Evoluzione dei microservizi
  • Come cambiare l’interfaccia dei miei microservizi
  • Versionamento, deploy sincronizzati, breaking Changes.

Sessione 4

  • UI & Reportistica: come faccio a mettere tutto assieme
  • Dormire sereni: come capire cosa sta succedendo
  • Come evitare che tutto crolli
  • Problemi comuni dei Microservizi

Q&A – Follow-up (2 h) a distanza di una/due settimane dalla chiusura del corso.

Cosa impareremo (Learning Objectives)

  • 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”.

Expect to get your hands dirty

Svilupperemo un’architettura a microservizi e la faremo funzionare, la metteremo sotto stress e la faremo evolvere durante le varie giornate.
Il corso è strutturato in 4 mezze giornate + 2 ore di follow-up.

Come si svolge

Il workshop si svolgerà 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.

F.A.Q.

Sono previsti requisiti minimi per poter partecipare a questo corso?

  • È richiesta una conoscenza base di Domain-Driven Design ed EventStorming.
    A tal fine, e per far sì che arriviamo in aula con le basi ben chiare, a tutti i partecipanti verrà inviata in omaggio la versione digitale del libro Cronache di Domain-Driven Design.
    È richiesta la lettura della prima parte del libro prima dell’inizio del 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.
  • Pubblicheremo un esempio di codice che devi essere in grado di capire, se è già scritto nel linguaggio che usi, altrimenti riscriverlo nel linguaggio che usi di solito.
  • Non ci sono vincoli sul linguaggio che vuoi usare (è il bello dei Microservizi…).

Altre letture o risorse consigliate?
Domain-Driven Design in 2020, un articolo di Alberto Brandolini.
Per la parte di Microservizi, i libri di Sam Newman sono un ottimo punto di partenza. Guarda anche il video del meetup di Gianluca Intro ai Microservizi.
Tra le varie risorse presenti online, consigliamo un tutorial su RabbitMQ per la parte tecnica.

Cosa devo assolutamente avere per potermi iscrivere a questo corso online?
Se possiedi un computer/tablet, una rete stabile (almeno 20 Mbps in download e 10 Mbps in upload), cuffie, microfono e videocamera, allora puoi iscriverti al corso senza problemi. Un paio di settimane prima del corso ti invieremo tutte le informazioni sugli strumenti che useremo e come accedervi.
Per la rete, prova a fare uno Speed Test.
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.

N.B.

Il workshop verrà confermato al raggiungimento dei numeri minimi di partecipanti utili alla sua attivazione. Invieremo comunicazione agli iscritti 10-15 giorni prima del workshop.

Info pratiche sul workshop

Lingua: italiano.
Numero massimo di partecipanti: 16.
Strumenti e postazione: il corso si svolgerà online e in diretta, attraverso l’uso di alcuni strumenti digitali. Una volta confermato, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.
È consigliato che ciascun partecipante segua il corso dalla sua postazione: è preferibile non condividere il laptop e la stanza con altre persone e colleghi per una migliore esperienza da remoto.

Vuoi saperne di più sui nostri biglietti?

Biglietti

Under_Cover_LearnerSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto, che potrai ottenere inserendo il codice Under_Cover_Learner su Eventbrite qui sopra, dove trovi "Enter promo code" (prima di premere il tasto "checkout").

N.B.: Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.

Testimonials…

I Microservizi fanno paura, se non hai una buona guida. E questo corso è decisamente una buona guida.Edoardo Parlato

Workshop illuminante, con una buona componente teorica, qualche esercizio pratico per sporcarsi le mani e tante, tantissime conversazioni interessanti che hanno dato gran valore alla mia esperienza!Pietro Martinelli

Gianluca Padovani

Gianluca è uno sviluppatore software, TDD-addicted e coach agile.
Grande appassionato dei linguaggi funzionali, in particolare di Elixir/Erlang, e di Ruby, NodeJs e C++.
Gianluca è CTO di Coders51.

APPROFONDIMENTI

VIDEO

Functional Programming: chiacchierata tra Matteo Baglini e Gianluca Padovani.

Chi siamo, in breve :)

Avanscoperta è un ecosistema in espansione fatto di professionisti con una grande passione per l’apprendimento: ci piace imparare cose nuove e scambiare esperienze e idee, esplorando territori finora inesplorati in ambito software, nella sua accezione più ampia possibile.

Selezioniamo con attenzione gli argomenti più rilevanti e i migliori docenti da tutto il mondo, e diamo particolare importanza alle tecniche di insegnamento, preferendo approcci pratici e coinvolgenti.
Unisciti a noi!

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







    NEWSLETTER

    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

    ISCRIVITI ALLA NEWSLETTER :-)

    Iscriviti alla newsletter!