Avanscoperta
Microservices Practical Workshop

Microservices Practical Workshop

Come utilizzare i microservizi e vivere sereni

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 questo 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.
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.

Programma

In questo corso svilupperemo un’architettura a microservizi. Partiremo analizzando un dominio di esempio, 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
  • 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)

  • 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?

  • Un minimo di dimestichezza con il Domain-Driven Design e con EventStorming. Svilupperemo un’architettura facendo chiamate HTTP, ed inviando messaggi su code per cui devi avere un minimo di dimestichezza con esse. 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…).

Come posso prepararmi per partecipare al corso? Letture consigliate? Altro?
Tra le varie risorse presenti online, consigliamo un tutorial su RabbitMQ. È richiesta una conoscenza minima di EventStorming e Domain-Driven Design. Per la parte di Microservizi, i libri di Sam Newman sono un ottimo punto di partenza.

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 due settimane prima del workshop al più tardi.

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. A iscrizione avvenuta, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.

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.

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!