Avanscoperta
Reasoned Microservices Workshop

Reasoned Microservices Workshop

Dal monolite ai microservizi (and back?): come progettare un’orchestra, non un’architettura!

«Gather together those things that change for the same reason, and separate those things that change for different reasons.» Robert C. Martin

Molte organizzazioni si stanno spostando verso un’architettura a microservizi attirate da promesse di scalabilità, efficienza e maggiore velocità al cambiamento. Quando si parla di microservizi però non esiste una soluzione unica.

Reasoned Microservices Workshop è il corso hands-on che ti mette a disposizione diverse strategie per rifattorizzare un monolite verso un’architettura a microservizi, oltre a un set di strumenti per decidere se e quando farlo.

Durante le due giornate analizzeremo insieme i pro e contro di diversi approcci, cercando di evitare gli errori più comuni, per progettare un software che risponda alle nuove funzionalità, evitando alcune delle insidie ​​che portano al monolite distribuito.

Target Audience

Reasoned Microservices Workshop è un workshop pratico per architetti hands-on, che hanno una buona esperienza nello sviluppo di sistemi complessi, o che nel loro day-by-day si sono scontrati o si scontrano con tematiche quali evoluzioni difficoltose, necessità di scalabilità, deploy complessi.

Il corso si rivolge anche a tutti quegli architetti o sviluppatori che vorrebbero provare a sporcarsi le mani nel modo dei microservizi ma che hanno bisogno di esempi pratici per iniziare o vogliono confrontarsi con chi lo ha già fatto.

  • Software Developers
  • Software Development Tech Leads
  • Software Architects.

Come si svolge

Durante le due giornate i due docenti, Alessandro Melchiori e Gianluca Padonavi, alterneranno parti teoriche a parti pratiche, esercizi a spiegazioni, dando spazio a momenti di Q&A.

Nella parte pratica del corso lavoreremo su un monolite che farà da “caso studio” e, mani sulla tastiera, insieme lo partizioneremo.

Obiettivi

Obiettivo principale del corso è permettere un’evoluzione del sistema, da un monolite mono-tecnologia a un sistema aperto, alle evoluzioni sia in termini funzionali sia in termini tecnologici.

Dopo i due giorni di workshop sarai sia in grado di mettere in pratica come partizionare un’applicazione monolitica introducendo dei microservizi,  sia di sviluppare da zero un’architettura distribuita.

Agenda

Giorno 1

  • Comunicazione sincrona vs comunicazione asincrona: le conseguenze dell’adozione di un determinato paradigma.
  • Persistenza: come isolare la persistenza del microservizio, transizione da modelli relazionali a modelli non relazionali. Come ridefinire il contesto transazionale.
  • Availability vs consistency: gestione del compromesso tra sogni business e concretezza architetturale. Non si può avere tutto. Partizionamenti e disallineamenti parziali.
  • Dipendenze: come evolvono le dipendenze in architettura a microservizi? Da cosa dipendo e quanto?

Giorno 2

  • Come identificare contesti di microservizi differenti
  • Interazione tra microservizi: come orchestrare un workflow
  • Versioning dei messaggi: come evolvere il sistema
  • Monitoraggio e debugging: come capire se e dove qualcosa non va
  • Q&A

Cosa impareremo

Alla fine dei due giorni ci porteremo a casa:

  • Pro e contro di un’architettura distribuita
  • Tecniche per individuare i diversi contesti logici in cui suddividere un’applicazione
  • Come inserire un’architettura a microservizi su un’architettura preesistente
  • Come gestire le nuove problematiche che potrai incontrare nel momento in cui userai questo tipo di architettura.

Requisiti

Non ci sarà alcun vincolo sull’aspetto tecnologico. Gli esercizi saranno implementabili con diverse tecnologie, quali .Net, Java, Node.js, Elixir, ecc.

FAQ

  • Uso la tecnologia XYZ. È un problema? Posso seguire con profitto il corso e le sue esercitazioni?
    Certamente sì. L’idea del corso non è presentare la soluzione con una tecnologia specifica, ma capire i vantaggi dell’approccio metodologico, declinandolo con la tecnologia “preferita”.
  • Cosa devo fare o installare prima del corso?
    Prepareremo un repo Github con il README per il setup richiesto. Qualora la tecnologia utilizzata dai partecipanti non fosse presente tra quelle supportate è necessario saperlo per tempo in modo da poter fornire il dettaglio per il setup.

Info pratiche sul workshop

Lingua: italiano.
Orari: 9.30 – 17.30
Laptop: assicurati di avere il laptop con te
Numero massimo di partecipanti: 12
Il biglietto comprende: coffee break e i pranzi insieme al docente e agli altri corsisti. Perché anche il networking è importante! :-)

Come raggiungere la venue del corso

Il corso si terrà presso l’Istituto Piero Pirelli, in viale Fulvio Testi, 223 a Milano.
Trovi tutte le informazioni su come raggiungere l’Istituto e dove alloggiare alla pagina Venue Istituto Pirelli.

Domande? Dubbi? Scrivici a info@avanscoperta.it.

Alessandro Melchiori

Artigiano del software, marito, padre, ex-sportivo e curioso lettore. Fin da piccolo ho amato smontare e rimontare le cose, per capire come funzionassero. Ora questa passione è diventata il mio lavoro: dai lego allo sviluppo software il passo è stato breve.

Gianluca Padovani

Software craftsman, TDD addicted, agile coach.

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!