The next edition of the workshop will be held in Italian. Join the Early access List to know when we will schedule an English edition of the workshop, or visit the Italian page of the Microservices Practical Workshop.
Microservices: the panacea for all ills, or the worst thing to do?
In reality, neither one nor the other. They are one of the many possible architectures, there are contexts in which they provide great advantages and others in which they bring only death and destruction.
In the Microservices Practical Workshop with Gianluca Padovani, we will learn to build a microservices architecture, recognize variations and differences and choose the best one for our context.
One of the first steps to fully understand Microservices is to analyze them from a Domain-Driven Design perspective, also to understand if an architecture of this type is suitable for our business.
The mental predisposition in the analysis of the domain in which one is going to operate, even before writing the code, is fundamental to start analyzing the problem from the correct point of view and in all its complexity, and EventStorming is a fundamental tool with regards to this.
We will understand what the different “nuances” of architecture and microservices are, when it is appropriate to push on a certain feature or when it is better to push on the opposite feature.
Target Audience
Have you read a lot about microservices but don’t feel like trying to get your hands on it? Want to see some real implementation cases? Do you want to compare yourself with someone who has experience in the field? It’s your time.
Have you tried microservices, do you still bear the scars and want to understand why there are still people who persist in doing these crazy things? This is the course for you.
Have you already used microservices, do you like them and want to see if you did them well, or how you could do them better? This course is for you.
This workshop is specifically aimed at:
- Software Architect
- Software Developer
- CTO.
Basic knowledge of Domain-Driven Design and EventStorming is required.
Anyone who enrolls in the course will receive a digital copy of the book Cronache di Domain-Driven Design (published by Avanscoperta).
Reading the first part of the book is a requirement to access and participate in the course.
We will develop an architecture making HTTP calls, and sending messages on queues, so you will need to have some familiarity with these. You need to know what a DB is and what a docker image is.
Program
In this course we will develop a microservices architecture. We will start by analyzing an example domain with EventStorming, a technique that will help us dissect the domain in all its complexity. We will find what our service boundaries are, decide which microservices we want to focus on, and develop them.
During this 5 session journey, we will decide which communication method to use, how to deploy our microservices and how to evolve them.
We will also work on a monolith, from which to “extract” some functionality.
We will understand how to manage load situations, and how to be sufficiently resilient to the crash of one or more microservices.
We will work both in groups and individually, as if we were “a real company”. We will address various issues and alternate moments of practice with those of theory, in order to understand which principles and which heuristics support our decisions.
Agenda
Session 1: Microservices: What they are and where to find them
- What are microservices and why use them
- Macro, Micro, Nano: does size matter
- In search of microservices in DDD sauce: EventStorming
Session 2: Let’s develop the first microservice
- How microservices communicate
- Events, commands, messages
- How to organize persistence and how many databases to have
- How to manage foreign keys and transactions
Session 3: Let’s build a complex system
- Couplings between the various microservices
- The concept of Saga
- How to change the interface of my microservices
- Versioning, synchronized deployments, breaking changes.
Session 4: The monolith is not a problem but an opportunity
- The luck of having a monolith
- How to break down a monolith
- One step at a time (which is the first?)
Session 5 – Let’s put it all together
- UI & Reporting: How do I put it all together
- Sleep peacefully: how to understand what is happening
- Common Microservices Problems
- A bit of theory…
Q&A – Follow-up (2 h) one month after the workshop is finished.
Learning objectives – What are we gonna learn
- After seeing how EventStorming works, we will learn to analyze a complex domain step-by-step, ensuring that everyone has a shared understanding of the context in which we will operate our microservices
- We will learn about microservices, what they are, how they are found and how to make them communicate and how to put them into production.
- What are the key features of a microservices architecture and what could happen if some of them fail.
- How to introduce them into an existing environment.
- What should I expect when I put something into production, and traffic increases or something simply “breaks”.
Expect to get your hands dirty – How does it work
The course is structured in 5 half days + 2 hours of follow-up.
During the four sessions we will develop a microservice architecture and make it work, we will put it under stress and make it evolve during the various days.
The workshop will be online and live, for a maximum of 16 people: the teacher and all participants will be in video conference and will have a series of digital tools available to interact with each other and work hands-on.
Despite the online mode, the course maintains its interactive and participatory approach.
For this reason, it is required that all participants have their cameras turned on for the entire duration of the workshop for better enjoyment and communication.
It will not be a passive course, made only of slides and pre-recorded videos.
We will apply some principles of the Training from the back of the room method, with a prevalence of activities over lectures.
The few theoretical definitions are accompanied by numerous exercises and practical activities.
Sharing between participants and the support of the trainer complete the training framework.
Why should you buy a ticket
At the end of the course you will have increased your knowledge of microservices.
If you have never put any microservices into production you will be able to identify the first ones to put into production.
If you have microservice scars, we’ll try to ease your pain and give you the tools to give it a second try.
If you already have microservices in production, the intent is to give you all the possible ideas to make a leap in quality and improve your development process.